ScalarDB FDW
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
ScalarDB FDW は、ScalarDB の外部データラッパー (FDW) を実装する PostgreSQL 拡張機能です 。
ScalarDB FDW は、Java Native Interface を使用して、FDW 内のライブラリとして ScalarDB を直接利用し、ScalarDB のスキャン操作を介して外部データベースからデータを読み取ります。
前提条件
環境に次の前提条件が設定されている必要があります。
JDK
ScalarDB と互換性のあるバージョンの Java Development Kit (JDK) をインストールする必要があります。さらに、JDK インストールディレクトリを指す JAVA_HOME
環境変数を設定する必要があります。
これらの拡張機能は内部で Java Native Interface (JNI) を使用するため、ライブラリ検索パスに libjvm.so
などの Java 仮想マシン (JVM) の動的ライブラリを含める必要があることに注意してください。
PostgreSQL
この拡張機能は PostgreSQL 13以降をサポートしています。PostgreSQL のインストール方法の詳細については、サーバー管理の公式ドキュメントを参照してください。
ビルドとインストール
以下のコマンドを実行すると、この拡張機能をビルドしてインストールできます。
make install
一般的なビルドエラー
このセクションでは、発生する可能性のある一般的なビルドエラーについて説明します。
ld: -ljvm のライブラリが見つかりません
通常、ビルドスクリプトは libjvm.so
のパスを見つけ、それをライブラリ検索パスとして適切に設定しています。ただし、ld: library not found for -ljvm
というエラーが発生した場合は、libjvm.so
ファイルをデフォルトのライブラリ検索パスにコピーしてください。例:
ln -s /<PATH_TO_YOUR_LIBJVM_FILE>/libjvm.so /usr/lib64/libjvm.so
使用方法
このセクションでは、ScalarDB の FDW の使用例と利用可能なオプションについて説明します。
例
次の例では、必要なコンポーネントをインストールして作成し、FDW 拡張機能を使用してクエリを実行する方法を示します。
1. 拡張機能をインストールする
拡張機能のインストール方法の詳細については、ビルドとインストールセクションを参照してください。
2. 拡張機能を作成する
拡張機能を作成するには、次のコマンドを実行します。
CREATE EXTENSION scalardb_fdw;
3. 外部サーバーを作成する
外部サーバーを作成するには、次のコマンドを実行します。
CREATE SERVER scalardb FOREIGN DATA WRAPPER scalardb_fdw OPTIONS (
config_file_path '/path/to/scalardb.properties'
);
4. ユーザーマッピングを作成する
ユーザーマッピングを作成するには、次のコマンドを実行します。
CREATE USER MAPPING FOR PUBLIC SERVER scalardb;
5. 外部テーブルを作成する
外部テーブルを作成するには、次のコマンドを実行します。
CREATE FOREIGN TABLE sample_table (
pk int,
ck1 int,
ck2 int,
boolean_col boolean,
bigint_col bigint,
float_col double precision,
double_col double precision,
text_col text,
blob_col bytea
) SERVER scalardb OPTIONS (
namespace 'ns',
table_name 'sample_table'
);
6. クエリを実行する
クエリを実行するには、次のコマンドを実行します。
select * from sample_table;
使用可能なオプション
ScalarDB FDW オブジェクトには次のオプションを設定できます。
CREATE SERVER
ScalarDB 外部サーバーオブジェクトには次のオプションを設定できます。
名前 | 必須 | タイプ | 説明 |
---|---|---|---|
config_file_path | はい | string | ScalarDB 設定ファイルへのパス。 |
max_heap_size | いいえ | string | JVM の最大ヒープサイズ。形式は -Xmx と同じです。 |
CREATE USER MAPPING
現在、CREATE USER MAPPING
のオプションはありません。
CREATE FOREIGN SERVER
ScalarDB 外部テーブルオブジェクトには次のオプションを設定できます。
名前 | 必須 | タイプ | 説明 |
---|---|---|---|
namespace | はい | string | ScalarDB インスタンス内のテーブルの名前空間の名前。 |
table_name | はい | string | ScalarDB インスタンス内のテーブルの名前。 |