Title: Support fetching very large extracts via CSV/download export (beyond query.maxLimit) · Issue #26 · lightdash/python-sdk · GitHub
Open Graph Title: Support fetching very large extracts via CSV/download export (beyond query.maxLimit) · Issue #26 · lightdash/python-sdk
X Title: Support fetching very large extracts via CSV/download export (beyond query.maxLimit) · Issue #26 · lightdash/python-sdk
Description: Background Follow-up to #19. That issue/PR (#25) fixed the SDK's incorrect 50k cap so the query results endpoint can now return up to the instance's configured query.maxLimit (e.g. 100,000 on Cloud). However, the interactive query result...
Open Graph Description: Background Follow-up to #19. That issue/PR (#25) fixed the SDK's incorrect 50k cap so the query results endpoint can now return up to the instance's configured query.maxLimit (e.g. 100,000 on Cloud...
X Description: Background Follow-up to #19. That issue/PR (#25) fixed the SDK's incorrect 50k cap so the query results endpoint can now return up to the instance's configured query.maxLimit (e.g. 100,000 ...
Opengraph URL: https://github.com/lightdash/python-sdk/issues/26
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Support fetching very large extracts via CSV/download export (beyond query.maxLimit)","articleBody":"## Background\n\nFollow-up to #19. That issue/PR (#25) fixed the SDK's incorrect 50k cap so the query results endpoint can now return up to the instance's configured `query.maxLimit` (e.g. 100,000 on Cloud).\n\nHowever, the **interactive query results endpoint is itself capped at `query.maxLimit`**. Data-extraction / pipeline workflows that need *millions* of rows (the use case that motivated #19) can't be served by that endpoint — the Lightdash UI uses a separate **CSV/download export** path for those, governed by `query.csvCellsLimit` / `query.csvMaxLimit` (default ceiling 5,000,000 cells).\n\n## Proposed solution\n\nAdd an export-based fetch path to the SDK for result sets larger than `query.maxLimit`, e.g.:\n\n```python\nresult = query.to_df(via=\"export\") # or query.export() / result.download()\n```\n\nThis would POST to the CSV/scheduler-style export endpoint, poll for the generated file, and stream it back (CSV → DataFrame), rather than paging the interactive results API.\n\n### Notes / open questions\n- Confirm the exact endpoint(s): the download/`/csv` or scheduler export API used by the UI's \"Export\" / \"Download results\".\n- Respect `query.csvCellsLimit` (rows × columns) and surface a clear error when exceeded, consistent with the no-silent-truncation behaviour added in #19.\n- Decide on the surface area: a flag on `to_df()`/`to_records()` vs. a dedicated `export()` method.\n\n### References\n- #19 (row-limit fix) and PR #25\n- Lightdash limits: `query.maxLimit`, `query.csvCellsLimit`, `query.csvMaxLimit` (see `docs/export-limits.md` in lightdash/lightdash)","author":{"url":"https://github.com/jpetey75","@type":"Person","name":"jpetey75"},"datePublished":"2026-06-17T02:25:21.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":2},"url":"https://github.com/26/python-sdk/issues/26"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:7347397a-3763-fc5b-1b72-ecf6809e25a9 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | A9C8:129DF4:FD431:16E5C1:6A4DFC40 |
| html-safe-nonce | 78ca590ebfd6bd41501df9a85c4978dd8e565a6868ed6d92b9f0f0646ceb9d3c |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBOUM4OjEyOURGNDpGRDQzMToxNkU1QzE6NkE0REZDNDAiLCJ2aXNpdG9yX2lkIjoiNzY4MzU3MDczMzM5MDEwMTU2OCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | e409bda5b0af702e44eafd2dc1d7e831cee989f796d9b6c93cd3860b1ace3681 |
| hovercard-subject-tag | issue:4679473836 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/lightdash/python-sdk/26/issue_layout |
| twitter:image | https://opengraph.githubassets.com/573ce6cf48541924d57e2284c98e1f59f0554c1fc622bf2092f6a52a87a40a7d/lightdash/python-sdk/issues/26 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/573ce6cf48541924d57e2284c98e1f59f0554c1fc622bf2092f6a52a87a40a7d/lightdash/python-sdk/issues/26 |
| og:image:alt | Background Follow-up to #19. That issue/PR (#25) fixed the SDK's incorrect 50k cap so the query results endpoint can now return up to the instance's configured query.maxLimit (e.g. 100,000 on Cloud... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | jpetey75 |
| hostname | github.com |
| expected-hostname | github.com |
| None | 5818716c93c6a2925b815402541a32814e43a7b1261c322b0c2df75224289566 |
| turbo-cache-control | no-preview |
| go-import | github.com/lightdash/python-sdk git https://github.com/lightdash/python-sdk.git |
| octolytics-dimension-user_id | 65912827 |
| octolytics-dimension-user_login | lightdash |
| octolytics-dimension-repository_id | 932695849 |
| octolytics-dimension-repository_nwo | lightdash/python-sdk |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 932695849 |
| octolytics-dimension-repository_network_root_nwo | lightdash/python-sdk |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 4314b1df11fa8a565684f3a72dc971e3785da365 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width