Skip to content

Commit 27754b5

Browse files
krinartsgrebnov
andauthored
E2E Lakebase (#144)
* Update workflow * WIP * Improvements * Improvements * Update workflow * Lint * Lint * Fix * Fix * Fix * Fix * Fix * Test * Fix * Fix * Fix * Fix * Fix * Fix utf8 downcast * Fix * Fix * Make tables creation more robust * Report data_gen_version as part of metrics * Revert "Make tables creation more robust" This reverts commit 1c33f34. * Fix system_adapter * Propogate scale factor --------- Co-authored-by: Sergei Grebnov <sergei.grebnov@gmail.com>
1 parent 1169132 commit 27754b5

16 files changed

Lines changed: 1054 additions & 563 deletions

File tree

.github/workflows/run_spicebench.yml

Lines changed: 55 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -184,18 +184,43 @@ jobs:
184184
;;
185185
esac
186186
187-
- name: Install ADBC driver
187+
- name: Setup Go
188+
if: ${{ startsWith(github.event.inputs.system_under_test || 'spice_cloud', 'databricks-') }}
189+
uses: actions/setup-go@v5
190+
with:
191+
go-version: '1.23'
192+
193+
- name: Checkout adbc-databricks Go driver
194+
if: ${{ startsWith(github.event.inputs.system_under_test || 'spice_cloud', 'databricks-') }}
195+
uses: actions/checkout@v6
196+
with:
197+
repository: spiceai/adbc-databricks
198+
ref: viktor/improve-databricks-bulk-insert
199+
path: adbc-databricks
200+
201+
- name: Build databricks Go ADBC driver
202+
if: ${{ startsWith(github.event.inputs.system_under_test || 'spice_cloud', 'databricks-') }}
203+
run: |
204+
cd adbc-databricks/go
205+
go build -tags driverlib -buildmode=c-shared \
206+
-o build/libadbc_driver_databricks.so \
207+
./pkg/
208+
sudo install -m 755 build/libadbc_driver_databricks.so /usr/local/lib/libdatabricks.so
209+
sudo ldconfig
210+
211+
- name: Install ADBC Postgres driver
212+
if: ${{ startsWith(github.event.inputs.system_under_test || 'spice_cloud', 'databricks-') }}
188213
run: |
189214
set -euo pipefail
190215
curl -LsSf https://dbc.columnar.tech/install.sh | sh
191-
SYSTEM_UNDER_TEST="${{ github.event.inputs.system_under_test || 'spice_cloud' }}"
192-
SYSTEM_UNDER_TEST_PREFIX="${SYSTEM_UNDER_TEST%%-*}"
216+
dbc install postgresql
193217
194-
if [ "${SYSTEM_UNDER_TEST_PREFIX}" = "databricks" ]; then
195-
dbc install databricks
196-
else
197-
dbc install flightsql
198-
fi
218+
- name: Install ADBC FlightSQL driver
219+
if: ${{ !startsWith(github.event.inputs.system_under_test || 'spice_cloud', 'databricks-') }}
220+
run: |
221+
set -euo pipefail
222+
curl -LsSf https://dbc.columnar.tech/install.sh | sh
223+
dbc install flightsql
199224
200225
- name: Run spicebench
201226
env:
@@ -207,8 +232,10 @@ jobs:
207232
DATABRICKS_SQL_WAREHOUSE_ID: ${{ secrets.DATABRICKS_SQL_WAREHOUSE_ID }}
208233
DATABRICKS_CATALOG: ${{ secrets.DATABRICKS_CATALOG }}
209234
DATABRICKS_SCHEMA: ${{ secrets.DATABRICKS_SCHEMA }}
235+
DATABRICKS_STAGING_VOLUME_PATH: ${{ secrets.DATABRICKS_STAGING_VOLUME_PATH }}
210236
SCENARIO: ${{ github.event.inputs.scenario || 'tpch' }}
211237
SYSTEM_UNDER_TEST: ${{ github.event.inputs.system_under_test || 'spice_cloud' }}
238+
SYSTEM_ADAPTER: ${{ github.event.inputs.system_under_test || 'spice_cloud' }}
212239
NUM_QUERY_CLIENTS: ${{ github.event.inputs.num_query_clients || '8' }}
213240
ETL_BUCKET: ${{ github.event.inputs.etl_bucket }}
214241
ETL_PREFIX: ${{ github.event.inputs.etl_prefix || 'data-gen' }}
@@ -219,6 +246,11 @@ jobs:
219246
SPICEAI_BENCHMARK_METRICS_KEY: ${{ secrets.SPICEAI_BENCHMARK_METRICS_KEY }}
220247
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
221248
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
249+
LAKEBASE_PG_HOST: ${{ secrets.LAKEBASE_PG_HOST }}
250+
LAKEBASE_PG_USER: ${{ secrets.LAKEBASE_PG_USER }}
251+
LAKEBASE_PG_DB_NAME: ${{ secrets.LAKEBASE_PG_DB_NAME }}
252+
LAKEBASE_PG_SCHEMA: ${{ secrets.LAKEBASE_PG_SCHEMA }}
253+
LAKEBASE_DATABASE_INSTANCE: ${{ secrets.LAKEBASE_DATABASE_INSTANCE }}
222254
SPIDAPTER_ICEBERG_REGION: us-west-1
223255
SPIDAPTER_ICEBERG_CATALOG_FROM: iceberg:https://glue.us-west-1.amazonaws.com/iceberg/v1/catalogs/211125479522/namespaces
224256
RUST_LOG: 'info'
@@ -262,12 +294,25 @@ jobs:
262294
if [ -n "${DATABRICKS_SCHEMA:-}" ]; then
263295
ADAPTER_ENVS="${ADAPTER_ENVS} --system-adapter-env DATABRICKS_SCHEMA=${DATABRICKS_SCHEMA}"
264296
fi
297+
298+
if [ -n "${DATABRICKS_STAGING_VOLUME_PATH:-}" ]; then
299+
ADAPTER_ENVS="${ADAPTER_ENVS} --system-adapter-env DATABRICKS_STAGING_VOLUME_PATH=${DATABRICKS_STAGING_VOLUME_PATH}"
300+
fi
265301
else
266302
ADAPTER_CMD="docker"
267303
ADAPTER_ARGS="run -i -e SPICEAI_API_KEY -e SPICE_CLOUD_API_URL -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -e SPIDAPTER_ICEBERG_REGION -e SPIDAPTER_ICEBERG_CATALOG_FROM ghcr.io/spiceai/spidapter:latest stdio --verbose --channel nightly"
268304
ADAPTER_ENVS=""
269305
fi
270306
307+
if [ "${SYSTEM_UNDER_TEST}" = "databricks-lakebase" ]; then
308+
ADAPTER_ENVS="${ADAPTER_ENVS} --system-adapter-env DATABRICKS_COMPUTE_MODE=lakebase"
309+
ADAPTER_ENVS="${ADAPTER_ENVS} --system-adapter-env LAKEBASE_PG_HOST=${LAKEBASE_PG_HOST}"
310+
ADAPTER_ENVS="${ADAPTER_ENVS} --system-adapter-env LAKEBASE_PG_USER=${LAKEBASE_PG_USER}"
311+
ADAPTER_ENVS="${ADAPTER_ENVS} --system-adapter-env LAKEBASE_PG_DB_NAME=${LAKEBASE_PG_DB_NAME}"
312+
ADAPTER_ENVS="${ADAPTER_ENVS} --system-adapter-env LAKEBASE_PG_SCHEMA=${LAKEBASE_PG_SCHEMA}"
313+
ADAPTER_ENVS="${ADAPTER_ENVS} --system-adapter-env LAKEBASE_DATABASE_INSTANCE=${LAKEBASE_DATABASE_INSTANCE}"
314+
fi
315+
271316
~/.spice/bin/spicebench \
272317
--concurrency "${NUM_QUERY_CLIENTS}" \
273318
--scenario "${SCENARIO}" \
@@ -277,4 +322,5 @@ jobs:
277322
${VALIDATION_ARGS} \
278323
--system-adapter-stdio-cmd "${ADAPTER_CMD}" \
279324
--system-adapter-stdio-args "${ADAPTER_ARGS}" \
280-
${ADAPTER_ENVS}
325+
${ADAPTER_ENVS} \
326+

Cargo.lock

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ anyhow = "1.0.99"
3030
arrow = { version = "57.0.0", features = ["prettyprint"] }
3131
arrow-array = "57.0.0"
3232
arrow-buffer = "57.0.0"
33+
arrow-cast = "57.0.0"
3334
arrow-flight = "57.0.0"
3435
arrow-schema = "57.0.0"
3536
async-trait = "0.1.89"

crates/adbc_client/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,5 @@ arrow.workspace = true
1515
arrow-array = { workspace = true }
1616
serde_json.workspace = true
1717
snafu.workspace = true
18+
arrow-cast.workspace = true
19+
arrow-schema.workspace = true

crates/adbc_client/src/databricks.rs

Lines changed: 0 additions & 206 deletions
This file was deleted.

0 commit comments

Comments
 (0)