ArrowLake
ArrowLake is SAMSKARA’s built-in lakehouse: Apache Iceberg tables on your own object storage, queried through DuckDB. There’s no separate service to run — it’s part of the same backend that executes your notebooks.
Writing a table
Section titled “Writing a table”sm.write_arrowdelta(df, "bronze.weather.readings", mode="append")mode accepts "append" or "overwrite". The table reference is namespace.schema.table (or catalog.namespace.table when a project is linked to more than one ArrowLake profile).
Reading a table
Section titled “Reading a table”df = sm.read_arrowdelta("bronze.weather.readings")
# Time traveldf_yesterday = sm.read_arrowdelta("bronze.weather.readings", as_of="2026-07-31")df_snapshot = sm.read_arrowdelta("bronze.weather.readings", snapshot_id=1234567890)Querying with SQL
Section titled “Querying with SQL”sm.sql_arrowdelta("SELECT station, avg(temp_c) FROM bronze.weather.readings GROUP BY station")The same tables are browsable and queryable directly from SQL Workbench’s schema tree.
Merging (upserts)
Section titled “Merging (upserts)”sm.merge_arrowdelta(df, "bronze.weather.readings", merge_key="station_id")Other operations
Section titled “Other operations”sm.delete_arrowdelta("namespace.table", where="temp_c IS NULL")— conditional deletesm.list_arrowdelta(namespace="bronze.weather")— list tables in a namespacesm.table_exists_arrowdelta("bronze.weather.readings")— existence checksm.create_namespace_arrowdelta("bronze.weather")— create a namespacesm.create_catalog("name")— create a new catalog (permission-gated)
Multi-catalog projects
Section titled “Multi-catalog projects”A project can be linked to more than one ArrowLake profile. SQL Workbench then shows a three-level tree — catalog → namespace → table — across every linked profile, and sm.write_arrowdelta / sm.read_arrowdelta accept a profile= argument to target a specific one.
Next steps
Section titled “Next steps”- Scheduler to run ArrowLake writes on a schedule
- Dashboards to chart directly off an ArrowLake table