Databricks
Squid は Databricks SQL warehouse に接続し、Squid application の data source として使用できます。
Databricks connector を使用すると、Squid Client SDK を通じて Databricks catalog の table に query し、native SQL query を実行し、AI agent が lakehouse data を使用して question に回答できるようにします。
注記
Databricks connector は read-only です。native SQL および AI query を含む query はサポートされますが、insert、update、delete はサポートされません。
Databricks 側の前提条件
- 実行中の SQL warehouse。warehouse の Connection details にある HTTP path が必要です。形式は
/sql/1.0/warehouses/<warehouse-id>です。 - authentication 用の personal access token。
- token の user には、公開する table に対する
SELECTと、Squid が schema discovery に使用するsystem.information_schemaview(tables、columns、table_constraints、constraint_column_usage)への read access が必要です。
Databricks Connector を追加する
- Squid Console を開き、Databricks と使用する application を選択します。
- Connectors tab をクリックしてから、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。private に保つには、Squid Secrets に保存します。
- Warehouse Path - SQL warehouse の HTTP path。例:
/sql/1.0/warehouses/warehouse-id-here。 - Catalog - 接続する catalog。
- Catalog Schemas - catalog 内で公開する schema の comma-separated list。
- Tables to Process - Optional。schema discovery に含める table の comma-separated list。regex pattern を指定するには forward slash を使用します(例:
/^temp_.*/)。すべての table を含めるには空欄にします。
Data の Query
collection は schema.table という name になります。connector ID を渡して、他の Squid collection と同じ方法で Client SDK から query します。
Client code
const orders = await squid
.collection<Order>('sales.orders', 'YOUR_DATABRICKS_CONNECTOR_ID')
.query()
.gte('total', 1000)
.snapshot();
native SQL query も実行できます。
Client code
const result = await squid.executeNativeRelationalQuery(
'YOUR_DATABRICKS_CONNECTOR_ID',
'SELECT region, SUM(total) AS revenue FROM sales.orders GROUP BY region',
);
native query と AI-generated query は、実行前に read-only であることが validate されます。
Database の保護
default では security rule が必要であり、production environment では security rule なしで connector への access を許可しないことが不可欠です。database data の保護について詳しくは、security rules documentationを参照してください。
Squid で data を操作する方法については、Client SDK documentationを参照してください。