
Overview
oleander’s lake provides a powerful environment for data analysis, collaboration, and discovery. Execute SQL queries, manage your tables, and contribute to the community with automatic lineage tracking and observability built-in. We use DuckLake as our open table format and DuckDB as the query engine. You can also bring your own compute to connect to your lake from any DuckDB terminal, PySpark application, or client library, or bring your own (Iceberg) catalog to use your existing Iceberg catalog within the oleander lake.Portable
The lake is portable and can be used with any DuckDB environment. This means you can run queries, import and export data, and leverage all the features of oleander’s lake wherever DuckDB is supported—including on your local machine, in cloud environments, or as part of larger data workflows.Automatic lineage
Every operation in oleander automatically captures lineage metadata using the OpenLineage specification. No manual configuration id required.
Serverless SQL execution
Run SQL queries directly in oleander’s lake environment. Whether you’re analyzing your own data or exploring public tables, the SQL interface provides:- Fast Query Execution - Execute queries with optimized performance
- Interactive Results - View and export query results instantly
- Query History - Access your past queries and results
- Automatic Lineage - Every query automatically captures lineage metadata
Sync your data
There are several ways to sync your own data into oleander’s lake:Managed upload
Managed upload
Use the dialog to sync parquet files directly into your lake

DuckDB import operations
DuckDB import operations
Connect to your lake and run any DuckDB import operation to load data from various sources
CREATE TABLE statements
CREATE TABLE statements
Run
CREATE TABLE statements to define and populate tables with your dataAPI-based queries
API-based queries
Use API-based queries to pull data from external sources directly into your lake (see example below)
S3 scheduled sync
S3 scheduled sync
Configure a task to import parquet files to your lake.

Access public tables
Explore and utilize public tables contributed by the oleander community. These tables are:- Curated - oleander staff ensures high quality datasets to work with
- Indexed - Find interesting datasets contributed by other companies & individuals
- Joinable - Easily join with your own data

Scheduled queries with time-travel
Schedule queries to run automatically at specified intervals with time-travel capabilities. Time-travel queries allow you to write queries that reference specific versions or timestamps of your data, ensuring reproducibility and enabling historical analysis without needing to maintain separate historical copies of your data. Please note that these do incur additional storage as each version is kept to preserve time-traveling capabilities.Bring your own (Iceberg) catalog
We support adding Iceberg via S3 table buckets. This lets you use your existing Iceberg catalog within the oleander lake and consume the oleander compute layer. Create a role that has access to S3Tables. You can scope this down to specific tables.
Bring your own compute
Connect to your oleander lake from any DuckDB terminal, PySpark application, or client library. You can easily connect to your lake in our settings here.DuckDB terminal
Connect directly from the DuckDB CLI:Client libraries
You can also connect using any DuckDb library, including the TypeScript one, like below:Getting started
Get started with oleander’s lake in just a few steps:- Navigate to the Lake in your oleander dashboard to access the SQL interface
- Run a SQL query on a public table to get familiar with the interface:
- Sync your own data to start analyzing your tables. Create a new table with sample data:
- Explore lineage to see how data flows through your queries. Every operation automatically captures lineage metadata for complete observability.
FAQs
Why do clock time and query time differ?
Why do clock time and query time differ?
Clock time and query time can differ for several reasons:
- Clock time measures the total wall-clock time from when a query is submitted until it comes back to you. This also includes lineage extraction and creation.
- Query time measures the actual execution time spent processing the query in the database engine running your query.
- Network latency
- Lineage extraction
Why doesn't the direct DuckDb connection instrument lineage?
Why doesn't the direct DuckDb connection instrument lineage?
Direct DuckDB connections bypass the oleander API layer, which is responsible for capturing and instrumenting lineage metadata. When you connect directly to DuckDB, your queries execute directly against the database engine without going through oleander’s observability infrastructure.To capture lineage:
- Use the oleander lake API or the oleander SaaS interface for queries
- All operations performed through the API are automatically tracked and observable
- Lineage metadata is captured using the OpenLineage specification





