このプロジェクトについて
duckbridgeは、組み込みファイルまたはQuack RPCプロトコルを話すリモートサーバーのいずれかのDuckDBデータベースに対して、プロジェクション、ドメイン述語、LIMIT/ORDER BY … LIMIT、および幅広いスカラー関数のプッシュダウンを伴うSQLクエリを実行できるようにするTrinoコネクタプラグインです。一般的なJDBCベースのコネクタとは異なり、duckbridgeはデータをTrinoにプルして評価するのではなく、サポートされている操作をDuckDBにプッシュし、DuckDBがTrinoと同一に式を評価すること(NULL、Unicode、日付/タイムゾーンルールを含む)を確認することで正確性を保証します。このコネクタは、コーディネーターおよびワーカーに展開するための標準的なTrinoプラグインとしてパッケージ化されています。
**主な機能:**
- **接続性:** JDBC (`jdbc:duckdb:`) による組み込みDuckDB、またはQuackプロトコル (`jdbc:quack://`) によるリモートDuckDBに対応。リモートサーバーは単に `CALL quack_serve(…)` を実行するだけでよく、コネクタ側のインストールは不要です。
- **プッシュダウン:** プロジェクションおよび述語のプッシュダウンは常に有効です。LIMIT、TopN、および大規模なスカラー関数カタログがネイティブのDuckDB SQLとしてプッシュされます。DuckDBがネイティブに一致させることができない少数の関数(ICUケースフォールディング、暗号ハッシュなど)は、オプションの `trino_parity` DuckDB拡張機能によってサポートされます。
- **文字列プッシュダウンモード:** 設定可能なダイヤルにより、文字列述語の処理方法を、プッシュダウンなし (`NULL_ONLY`) からランタイム検証付きのフルプッシュダウン (`PARITY`) まで制御できます。デフォルトの `PARITY` モードは、初回接続時にDuckDBのバイナリ照合および拡張機能の可用性を調査し、相違が検出された場合はエラーを返します。
- **拡張機能:** `trino_parity` 拡張機能は、DuckDBのコミュニティ拡張リポジトリで公開されています。組み込みモードの場合、署名済みLinuxバイナリがリリースに同梱されています。他のプラットフォームでは、一度インストールするか `GUARDED` モードで実行できます。リモートサーバーは、起動時に拡張機能をロードする必要があります(またはサーバー側のパスを提供する必要があります)。
- **オプションのデータスキャン:** ベクトル、全文、およびハイブリッド検索を含む、LanceデータセットおよびVortexファイル用の実験的なテーブル関数をカタログごとに有効にできます。
- **動的カタログ管理:** Trinoの動的カタログ管理が有効な場合、`CREATE CATALOG … USING duckbridge` を介して実行時にカタログを作成できます。
- **型マッピング:** UUID、`TIMESTAMPTZ`、`UBIGINT` (`DECIMAL(20,0)` として)、および `VARBINARY` を含むDuckDB型のロスレスマッピングを提供します。`HUGEINT` のようなサポートされていない型は拒否されます。
duckbridgeはTrino 483向けに構築されており、DuckDB 1.5.5を組み込んでいます。このプロジェクトには、直接データ転送のための実験的なArrowベースの列指向エンジンが含まれており、今後の計画には集計プッシュダウンとDoris互換バリアントが含まれています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.