メインコンテンツまでスキップ
バージョン: 3.13

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はいstringScalarDB 設定ファイルへのパス。
max_heap_sizeいいえstringJVM の最大ヒープサイズ。形式は -Xmx と同じです。

CREATE USER MAPPING

現在、CREATE USER MAPPING のオプションはありません。

CREATE FOREIGN SERVER

ScalarDB 外部テーブルオブジェクトには次のオプションを設定できます。

名前必須タイプ説明
namespaceはいstringScalarDB インスタンス内のテーブルの名前空間の名前。
table_nameはいstringScalarDB インスタンス内のテーブルの名前。

データ型のマッピング

ScalarDBPostgreSQL
BOOLEANboolean
INTint
BIGINTbigint
FLOATfloat
DOUBLEdouble precision
TEXTtext
BLOBbytea

テスト

このセクションでは、ScalarDB の FDW をテストする方法について説明します。

テスト用の ScalarDB インスタンスの設定

ScalarDB の FDW をテストする前に、テストデータを含む実行中の ScalarDB インスタンスが必要です。次のコマンドを実行して、インスタンスを設定し、テストデータをロードできます。

./test/setup.sh

インスタンスをリセットする場合は、次のコマンドを実行してから、上記のセットアップコマンドを再度実行します。

./test/cleanup.sh

回帰テストを実行する

FDW 拡張機能をインストールした後、次のコマンドを実行すると、回帰テストを実行できます。

make installcheck

制限事項

  • この拡張機能は、ScalarDB 管理データベースでの分析クエリ処理を可能にすることを目的としています。したがって、この拡張機能は ScalarDB からのデータの読み取りのみをサポートします。