The Kitchen Table
Explore the product knowledge we've built up together
Types of AlertsKnowledge Drop
Last tested: Mar 17, 2020 There are three main types of alerts. Single value- only used on single value visualizations.- should alert based on the value used in the vis (first row only)Time Series- used when there is a date/time dimension on the result- checks all new rows that have not been seen before (based on the time series dimension)Categorical- used when not single value or time series.- checks all rows and pivot values unless a specific row or pivot value was selected when the alert was created. This content is subject to limited support.
Last tested: Sep 14, 2020 If the PDT build was initiated by the regenerator (sql_trigger_value or datagroup_trigger, the current build will be cancelled, along with the current regenerator cycle. The PDT will remain triggered and the regenerator will initiate another build/rebuild the next regenerator cycle. If your PDT build was initiated by an explore query (persist_for, dev mode PDTs, trigger PDTs that have not been built yet), Looker will wait until the next time the table is used in a query to rebuild it or in the case of a trigger PDT, the regenerator will attempt to build the next regenerator cycle. If your PDT build was initiated via the Rebuild Derived Tables and Run option, the existing PDT will be used. A rebuild will not be initiated until it is triggered for rebuild. This content is subject to limited support.
Upload to SFTP host [host] failed due to error: NoMethodError. message: undefined method `write' for nil:NilClassKnowledge Drop
Last tested: Oct 18, 2019 The Problem:Error: Upload to SFTP host [host] failed due to error: NoMethodError. message: undefined method `write' for nil:NilClassTroubleshooting steps:This error can happen when some part of the connection and transferring of data to the SFTP server failed for schedules that send with "All Results" selected. In order to get a better error message, try sending again with "Results in Table" selected.Some good things to check in general for SFTP issues:- Trailing slash on the path - the path should always end in a trailing / and should point to a specific directory on the SFTP server.- Have our IP Addresses been whitelisted on the server?- Did the schedules work previously and broke? Or have they not been able to successfully set up?Also check for a / in the schedule name. This content is subject to limited support.
What is funnel analysis?Knowledge Drop
Last tested: Dec 30, 2019 Funnel analysis enables you to visualize a customer journey, aggregating user behavior in stages across a workflow toward a specific outcome.All businesses have a target outcome (or many), so funnel analysis is applicable for any product/service being sold. Google Analytics (GA), the main leaders in use of funnels, refer to these outcomes as goals that they want users to gravitate toward, (e.g. making a purchase or signing up for a service). The set of steps taken to reach that goal (e.g. the app events or page views) is referred to as a “funnel”. This is because the typical shape created when we visualize the flow of users is similar to a funnel, with users dropping off in each step.Therefore with funnel analysis, you can see at which step users mostly drop off and use that data to optimize per stage and increase the funnel conversion rate, the % of users who make it through the funnel from the start to the end goal.Read the following tutorials to get a bette
Last tested: Apr 27, 2020 Nope!This is outlined in our docs here. Specifically:This is a good option when the same team owns both projects and can validate changes in both places before pushing to production.This means that errors will only surface in their respective projects, so devs will want access to both the base_project as well as the destination_project to validate LookML changes in both places before pushing to production. This content is subject to limited support.
Last tested: Aug 20, 2019 Will the break-the-field-reference-to-find-and-replace-in-Content-Validator method not work for your use case because we want to change specific content in specific explores? Try adding a fields parameter like:fields: [ALL_FIELDS*,-view_name.field_name_we_want_to_break] This will surface "Unknown field" errors in the Content Validator, but only for the specific explores you break (as opposed to breaking the field reference in the view file and having the reference break everywhere). This content is subject to limited support.
Last tested: Sep 3, 2019 Yes! If you create a report with a custom filter and save it as a Look, you can change other filters in the Schedule modal without affecting the custom filter logic. It acts as a "constant" filter that you can only change by editing the Look itself. This content is subject to limited support.
Can I start Looker with java -jar looker.jar start?Knowledge Drop
Last tested: Sep 5, 2019 You can but it doesn't mean you should. Using java -jar looker.jar start instead of our startup scripts in our docs means that the Looker process boots with Java's default memory allocation. And Java's memory allocation is much smaller than what we recommend in our docs. Because of this, the Looker process can crash and yield 502 errors with:NoMethodError : undefined method `exception' for java.lang.OutOfMemoryError: GC overhead limit exceeded:Java::JavaLang::OutOfMemoryErrormessages in the logs. For best results, always recommend using the startup scripts! This content is subject to limited support.
Can I use "git:" at the beginning of my repository URL?Knowledge Drop
Last tested: Nov 14, 2019 In other words, can I have something like:git://github.com/example/repo_name.gitShort answer: Not if you want to write to your repoUsing this pattern creates a read-only connection to the repo. If you are connecting to the repo via this method, go to Step 2 of this section in our git docs where our supported patterns exist. Because git: doesn't use SSH or HTTPS protocol, you won't be able to write to your repo from Looker, and thus will see READ-ONLY next to the branch name in the top left corner of the project IDE. This content is subject to limited support.
Error creating new branch: cannot specify a base branch when checking out an existing branchKnowledge Drop
Last tested: Jan 28, 2021 This error means that the name of the new branch that you're trying to create already exist. Make sure that the name is new and unique. This content is subject to limited support.
How do I import/export looks into Google Sheets?Knowledge Drop
Last tested: May 31, 2019 Starting in Looker 7.4, the best way to do this is to use the Google Sheets action in the Action Hub!Prior to Looker 7.4, there were a few ways to get data from Looker into Google Sheets, described below. All of these methods come with their own security concerns, which is one reason that the Google Sheets action will be the best choice for most use cases. However, these methods may still be useful for you with specific requirements that the Google Sheets action doesn't cover.ImportXML formula with the public URL. There are some issues with ImportXML, so you might want to reference this Help Center article to set up a custom script if you run into those.However, there are still timeouts on the Google Sheets side that we can't change, so queries that take longer than a minute to run in the UI will still error in Google Sheets (you could set a caching policy to avoid this). There are a couple of other options:Run looks from the API: This option allows you to acc
How do I return a specific nested field (subfield) in a response from an interactive API docs call?Knowledge Drop
Last tested: Oct 22, 2018 Write the name of the outer block followed by the nested fields desired in parentheses, like this: field(subfield)Example:What about from an Sdk?Example for Ruby scripts:space(447, :fields => 'id, name, looks(id, title), dashboards(id, title)')Note that all of the field names are contained in a comma-separated list in a string. This content is subject to limited support.
Status code 000 after starting LookerKnowledge Drop
Last tested: Oct 9, 2020 A status code of 000 means no HTTP code was received. You may see this response when hitting the alive endpoint after starting a Looker instance because it takes a few minutes before the Looker instance is ready to receive HTTP requests. Note that running systemctl status looker may show that the Looker instance is active even if it is not yet ready to receive HTTP requests. This content is subject to limited support.
Last tested: Apr 5, 2021 The signature is used to authenticate that the URL used in the embed context comes from an authorized party and has not been tampered with. If you edit the URL, it won't match the signature that was generated, and the URL won't work.The signature is essentially the embed URL parameters signed with the embed secret -- so when a request is made to Looker in the form of a full embed URL (parameters + signature), Looker will compute its own signature with the embed secret and the URL parameters and compare that to the signature offered in the URL. if they don't match, the URL is invalid and will be rejected with a 401 error response.The signature provides the following cryptographic proofs / safeguards:Proof of Origin That the signature in the URL was created with the embed secret, therefore the URL originated from someone who possesses the embed secret, and therefore we can trust them. Proof of Fidelity That the URL parameters have not been modified in transit. E
Why am I seeing "Looker instance is not configured for backups" on the Admin - Backup page?Knowledge Drop
Last tested: Oct 24, 2018 This means that the instance is on a MySQL internal db, and the product doesn't do S3 backups for MySQL.If you are Looker-hosted, we automatically create backups using a process outside of the Looker app, so you don't need to worry about this message.If you host your own instance, you'll need to create your own backups. This content is subject to limited support.
Why is my webhook schedule timing out at 30 minutes?Knowledge Drop
Last tested: Apr 26, 2019 Because that is the timeout set in Looker's internal code. This includes all Action Hub scheduled jobs, which are done through webhooks. This timeout is not currently documented anywhere else.It's possible that the action can still be successful, even if this error is being shown. This error represents Looker's connection to the Action Hub timing out.Error message:The scheduled job "Schedule Name"[scheduled job number] failed for . Please visit your content ([content URL]) to view and resolve the error, or contact your Looker administrator if you need further assistance. Error: Could not send webhook to "[action hub URL]". Net::ReadTimeout: Net::ReadTimeout. (Webhook ID: [webhook id]) This content is subject to limited support.
Why am I getting a 403 on all pages in Looker?Knowledge Drop
Last tested: Oct 2, 2020 When trying to access pages on your Looker instance, you may get a mostly blank page with a 403 and the error message You are not authorized to view this page:This most likely means you started an embed user session in this browser window. Looker can't maintain multiple user sessions in the same window, so starting the embed user session ended your regular user session. Since embed users cannot view non-embed pages in the UI, you will see a 403 error if you attempt to navigate to those pages. You can log in as your regular user again by entering [base_url]/login into the browser bar, which will take you directly to the login page.This is a common situation for users who are trying out SSO embed for the first time, especially when testing using the Preview in Fabio's tool. It is recommended to do your SSO embed testing in a different browser or incognito window to avoid interrupting your regular Looker user session. This content is subject to limited support.
LookML Error: Invalid property for model: project_nameKnowledge Drop
Last tested: Sep 30, 2020According to docs, the manifest.lkml file must be located at the root level of your project’s directory structure. If it is not, Looker will interpret it as a model file, which does not accept the project_name parameter of the manifest.lkml file. This content is subject to limited support.
Last tested: Aug 22, 2018 No. The "Send Test" button will always send the look, whether or not you have "Send if there are results" or "and results have changed since last run" selected.If you want to test whether these options are working as expected, you should save a schedule that runs in the next five minutes. This content is subject to limited support.
If there are raw results but "Hide No's" is hiding all the rows, does a schedule with "Send if there are results" send?Knowledge Drop
Last tested: Aug 22, 2018 As of version 5.8, schedules using the "Send if there are results option" and "Apply visualization options will NOT send the look if the "Hide No's from Visualization" table calc option is hiding all of the rows. The Admin - Scheduler panel will show the message `no delivery - data required but not present`—just as if there were no data in the results at all. This content is subject to limited support.
What determines access to embed spaces/folders?Knowledge Drop
Last tested: Jun 17, 2019 Navigating and saving content to folders in the embed context works a bit differently from doing so in the UI. The first thing to note is that folder pages cannot be embedded directly. Instead, embed users access the folder menu through the "four squares" icon at the top right corner of an embedded look, dashboard, or explore: Note that this applies only to Legacy dashboards; folder navigation has not yet been built out for Dashboards-Next dashboards.The embed_browse_spaces permission gives embed users access to this embed folder menu. Non-embed users, even with the embed_browse_spaces permission, are not supposed to see the embed folder menu on embedded content. As of May 2021, the folder menu is not yet available on Dashboards-Next. The three icons on the left represent three main folders that the embed user can navigate:Personal - All embed users with the embed_browse_spaces permission are automatically given Manage Access / Edit permission on a personal
In SQL, do I use double quotes or single quotes for string literals? What about for column names?Knowledge Drop
Last tested: Mar 14, 2019 It depends on the dialect. In some dialects, such as MySQL, you can use single and double quotes interchangeably for string literals or column names. In other dialects, such as BigQuery Standard, you can use them interchangeably for string literals, but must use double quotes for column names. In still other dialects, such as Snowflake and Redshift, you must use single quotes for strings and double quotes for column names.In general, using single quotes for strings and double quotes for column names is accepted for all SQL dialects, so that approach is the best practice. Remember this mnemonic:[S]ingle quotes are for [S]trings ; [D]ouble quotes are for [D]atabase identifiers. SourceExamples of errors you may see if you do not adhere to this standard:SELECT "1"Snowflake: SQL compilation error: error line 1 at position 7 invalid identifier '"1"'Redshift: ERROR: column "1" does not existSELECT 1 AS '1'Snowflake: SQL compilation error: syntax error line 1 at posit
Using Looker on AWS CloudFormationKnowledge Drop
Last tested: Feb 20, 2019 At the moment, we don't have any formal docs written up on using CloudFormation.The easiest would be to create a linux host, get it all setup by following our installation guide, then create an AMI from it, and create a CloudFormation template to launch a host using that template. However, there might be some difficulties with the data Looker stores on the local disk here when you're migrating an existing Looker implementation (see below). If you're starting with a blank implementation of Looker, the requirements are softer.For migrating Looker implementations, the looker.jar and the looker startup script are stored on the local drive, plus possibly lookerstart.cfg and a db credentials file if you're using MySQL as the internal database. If you're not using MySQL, you'll be on HyperSQL as internal database for which the file system is stored locally and contains the running state and config of looker. There are also ssh keys and models directories (the full di
Last tested: Mar 30, 2020 Go the Configure Git settings in your Looker Instance For Repository URL put in the URL of the repository you want to use starting with ssh://... You can generate this by clicking Clone and selecting SSH Authentication in your Cloud Source Repositories. Make sure to cut off the 'git clone ' bit from the link. It should have a format like the below ssh://<USERNAME>@source.developers.google.com:2022/p/<PROJECT NAME>/r/<REPOSITORY NAME> For Git Hosting Service select 'Custom Git Configuration' and click continue Copy the SSH key that Looker generates in the next screen for you. In Cloud Source Repositories open the Manage SSH Keys page, click Register SSH key. Here you give the key a unique name and paste the key value from Looker and click Register. Once the key is registered you go back to your Looker instance and click Test and Finalize Setup. This content is subject to limited support.
Already have an account? Login
Login to the community
No account yet? Create an account
Enter your username or e-mail address. We'll send you an e-mail with instructions to reset your password.