@@ -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+
0 commit comments