This article lists the different row limits that can be found across Looker. The rule of thumb is:
- If results are being displayed in the browser, the row limit is 5,000.
- If results are being exported from Looker, users can choose to export All Results as long as the results stream.
- We'll go into more detail about streaming at the end of the article. Table calculations are the most common reason that a result set doesn't stream, so removing table calculations usually allows for an unlimited download. The All Results option can also be unavailable when any of the conditions described in the documentation are met.
Row Limits
Explores, Looks, Dashboards, SQL Runner
Queries created via the Explore page will have a maximum limit of 5,000 rows. This limit also applies to Looks and dashboards, and to queries created in SQL Runner.
Downloading
In most cases, it is possible to download the unlimited result set from an Explore, Look, or dashboard. It is only possible to download All Results if the result set streams, and if the user downloading has the download_without_limit
permission.
If these conditions are not met, then a custom limit can be set in the download modal instead. This custom limit has a default maximum of 100,000 rows.
Note: Downloading specifically for dashboards is discussed in greater detail in the documentation for Viewing Dashboards in Looker.
Scheduling and Sending
Email schedules can send up to 20 MB or 15 MB of data for emails with inline content or email with attachments, respectively, as long as the results stream. All emails with the All Results option applied are subject to the 20 MB or 15 MB size limits.
Schedules sent via webhook, S3, or SFTP can send an unlimited result set as long as the result set streams.
File Format Matters
When downloading, sending and scheduling content, PDF and PNG file formats will maintain the browser row limit of 5,000. The All Results option is typically only available for Markdown, Text, CSV, JSON - Simple, XLSX, or HTML formats for scheduling, sending and downloading. The data formats available for sending and scheduling data depend on the destination. The documentation on Scheduling Data Deliveries lists each scheduling destination option in greater detail, and the options for sending are available in the documentation about Sending Data Now. The Downloading Data documentation provides more information about file format options for downloading.
API
API calls are subject to the same row limits of the context they are called in. API calls based on an Explore, Look, or dashboard are subject to the 5,000 row limit, while certain download and schedule file formats can be unlimited.
To download unlimited results via API, use the appropriate Run call (such as Run Inline Query or Run Look) with the limit
parameter set to -1
(negative one). -1
is the number that Looker uses to represent unlimited results.
Check the limits referenced in the sections above as appropriate to the type of API call you're using.
Streaming
Streaming refers to Looker's ability to process data in chunks, rather than all at once. If Looker can stream a result set, then unlimited downloads are possible. There are only two cases where streaming is not possible:
Table Calculations
Table Calculations cannot be streamed. Therefore, to download unlimited results for a query, table calculations must be removed from the query.
Database Limitations
Some databases cannot stream if pivots are included in the query. For these databases, pivots must be removed in order to download unlimited results.
Some databases can't stream any results, which means that unlimited downloads are not possible. Below is a list of the databases that support streaming, as well as databases that support streaming with pivots applied: