vsql_duckdb はサーバープロセスの中で DuckDB を実行するため、SQL ステートメントがオブジェクトストレージやディスクから Parquet、CSV、および JSON ファイルを直接読み取れます。分析用ファイルは元の場所に置いたまま、エクスポート手順や運用すべき第 2 のエンジンなしに、自分のテーブルと並べてクエリできます。
この拡張機能は 3 つのプレビュー機能を宣言しているため、サーバーを --vsql_allow_preview_extensions=ON で起動する必要があります。また、0.0.6 より新しい VillageSQL サーバーが必要です。
インストール
vsql_duckdb はサーバーに同梱されていないため、まずリポジトリからビルドし、生成された vsql_duckdb.veb をシステム変数 veb_dir が示すディレクトリにコピーします。その後、インストールします。
インストールされたことを確認します。
ビルド手順はリポジトリ にあります。
追加される機能
SHOW STATUS LIKE 'vsql_duckdb%' は 2 つのカウンターを報告します。これらはサーバープロセスの存続期間中、保持されます。
queries_total は、成功したかエラーを発生させたかを問わず、実行された duckdb_query() または duckdb_scalar() の呼び出しを数えます。空の結果または NULL 値のために NULL を返す duckdb_scalar() の呼び出しは、成功として数えられます。sql 引数自体が NULL である呼び出しは、どちらのカウンターも増やさずに NULL を返します。queries_failed はエラーを発生させた呼び出しだけを数え、queries_total に含まれます。
自身が何であるかを尋ねます。
ファイルに触れないクエリを実行します。
CSV を読み取り、行を JSON として受け取ります。サーバー自身のディスクからの読み取りはデフォルトでオフなので、まず有効にします。
終わったら再び無効にしてください。無効にするまで有効のままです。
結果は JSON なので、JSON_TABLE を使えば、自分のテーブルと結合できる行に戻せます。
allow_local_files はサーバーアカウントが読めるすべてのファイルを開き、enable_external_access はデフォルトで有効なので、クエリはネットワークにも到達できます。拡張機能の関数はストアド関数のように権限を付与できないため、ここで SQL を実行できる人は誰でもそれらを呼び出せます。拡張機能をインストールすると、すべてのアカウントが両方のスイッチの範囲に到達できるようになります。オブジェクトストレージのシークレットは keyring にあり、vsql_duckdb.s3_secret_keyring_id はその名前を指すだけです。
SET PERSIST で書き込んだ設定は再起動後も残りますが、UNINSTALL EXTENSION はそれを削除します。アンインストールと再インストールの後は、すべての設定がデフォルトに戻り、再起動しても古い値は戻りません。
関連項目