feat(demo): LakeTS Live streaming demo on Lakebase Autoscaling#34
Merged
Conversation
A living end-to-end demo: synthetic ticks stream into a Lakebase Autoscaling project while serverless jobs drive partitioning, DAG-ordered RollUp refresh, CDF-gated tiering, and retention; Lakebase CDF replicates to Unity Catalog. Adapted from the standalone lakets-live-demo to current capabilities: - autoscale M2M OAuth (w.postgres endpoint resolution) + psycopg3 - reuses the shipped databricks/workflows/* maintenance jobs (no drift); the demo adds only stream_ticks - cold tier via lakets.enable_sync (Lakebase CDF, shadow in lakets_cdf) - create_rollup without the removed p_refresh_mode arg - tiering_job (CDF durability gate) instead of a Spark compression step Also fixes the repo RollUp job to refresh in DAG order: - rollup_refresh.py now calls lakets.refresh_rollup_cascade() instead of an alphabetical refresh_rollup() loop that refreshed parents before children (1day before 1hour before 1min). Guard test added. Demos are no longer gitignored (demo/ + the any-depth grafana/ pattern removed; .env.example un-ignored). Old local demos archived out of the repo. New Docusaurus guide: guides/live-demo (step-by-step setup) under a Demos sidebar category. Grafana stack (hot Lakebase + cold UC datasources) included.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Brings the standalone
lakets-live-demointo the repo asdemo/live/, adapted to current LakeTS capabilities, plus a published step-by-step setup guide. A living end-to-end demo: synthetic ticks stream into a Lakebase Autoscaling project while serverless jobs drive partitioning, DAG-ordered RollUp refresh, CDF-gated tiering, and retention; Lakebase CDF replicates to Unity Catalog.What's adapted to current capabilities
stream_ticksresolves the project's primary read-write endpoint viaw.postgresand mints a per-connection OAuth credential (mirrorslakebase_utils.py). No static passwords.databricks/workflows/*.py(single source of truth, no drift). The demo adds onlystream_ticks.lakets.enable_sync(Lakebase CDF; shadow inlakets_cdf) instead of a manual UI sync.create_rollupwithout the removedp_refresh_modearg;tiering_job(CDF durability gate) instead of a Spark compression step.Repo fix (folded in)
rollup_refresh.pynow refreshes in DAG order vialakets.refresh_rollup_cascade()instead of an alphabeticalrefresh_rollup()loop (which refreshed1daybefore1hourbefore1min). New guard testtest_refreshes_in_dag_order.Convention change
demo/is no longer gitignored (and the any-depthgrafana/pattern that would have re-ignoreddemo/live/grafana/is removed;.env.exampleun-ignored). Old local demos were archived out of the repo; only this demo ships.Docs
New Docusaurus guide Guides → Demos → Live Demo (
guides/live-demo): prerequisites (incl. CDF), install,setup.sql, bundle deploy (dev + prod SP), mid-demo knobs, Grafana, teardown.Test plan
tests/test_python_patterns.pypasses (14, incl. new DAG-order guard)bundle validate -t devOK against the autoscale project;setup.sqlcross-checked against current function signatureslakets-tiering-test— next step