Databricks
Squid は Databricks SQL warehouse に接続し、Squid アプリケーションのデータソースとして利用できます。
Databricks connector を使用すると、Squid Client SDK 経由で Databricks catalog 内のテーブルをクエリしたり、native SQL queries を実行したり、AI agents が lakehouse data を使用して質問に回答できるようにしたりできます。
注記
Databricks connector は read-only です。native SQL および AI queries を含むクエリはサポートされていますが、insert、update、delete はサポートされていません。
Databricks 側の前提条件
- 実行中の SQL warehouse。その HTTP path が必要です(warehouse の Connection details にあり、形式は
/sql/1.0/warehouses/<warehouse-id>です)。 - 認証用の personal access token。
- token の user には、公開したいテーブルに対する
SELECTに加えて、Squid が schema discovery に使用するsystem.information_schemaviews(tables、columns、table_constraints、constraint_column_usage)への read access が必要です。
Databricks connector の追加
- Squid Console を開き、Databricks で使用するアプリケーションを選択します。
- Connectors タブをクリックし、次に Available connectors をクリックします。
- Databricks connector を選択します。
- 次の configuration information を入力します。
- Connector ID - 簡潔で connector を識別しやすい ID を選択します。
- Database Host - workspace host。例:
dbc-yourId.cloud.databricks.com。 - Database Access Token - personal access token。非公開に保つため、Squid Secrets に保存します。
- Warehouse Path - SQL warehouse の HTTP path。例:
/sql/1.0/warehouses/warehouse-id-here。 - Catalog - 接続先の catalog。
- Catalog Schemas - 公開する catalog 内の schemas の comma-separated list。
- Tables to Process - 任意。schema discovery に含める tables の comma-separated list。regex pattern を指定するには forward slashes を使用します(例:
/^temp_.*/)。すべての tables を含める場合は空のままにします。
データのクエリ
Collections は schema.table という名前になります。他の Squid collection と同じ方法で、connector ID を渡して Client SDK からクエリします。
Client code
const orders = await squid
.collection<Order>('sales.orders', 'YOUR_DATABRICKS_CONNECTOR_ID')
.query()
.gte('total', 1000)
.snapshot();
native SQL queries を実行することもできます。
Client code
const result = await squid.executeNativeRelationalQuery(
'YOUR_DATABRICKS_CONNECTOR_ID',
'SELECT region, SUM(total) AS revenue FROM sales.orders GROUP BY region',
);
Native および AI-generated queries は、実行前に read-only であることが検証されます。
データベースの保護
デフォルトでは security rules が必要です。本番環境では、security rules なしで connector へのアクセスを許可しないことが不可欠です。database data の保護について詳しくは、security rules documentation を参照してください。
Squid でデータを扱う方法については、Client SDK documentation を参照してください。