|
|
RDBのTsurugiからデータを読み込むプラグインを作ってみた。
プラグイン名はembulk-input-tsurugidb。
このプラグインはEmbulk 0.10以降で、Java11以降に対応。(TsurugiのJava通信ライブラリーであるTsubakuroがJava11以降な為)
TsurugiはJDBCを提供していないので、embulk-input-postgresqlを元にしてTsubakuroを使うよう変更した。
基本的な使用方法はembulk-input-postgresqlと同じにしたつもりだが、対応していない機能もある。
このプラグインを使う為には、embulk-input-tsurugidbプラグインをインストールしておく必要がある。
Embulk 0.10以降ではgemを使わないインストール方法になった。以下のようにしてインストールする。
(最新バージョンはMavenセントラルリポジトリーで確認できる)
Embulk 0.10〜0.11.2の場合 $ export m2_repo=〜 $ mvn dependency:get -Dartifact=io.github.hishidama.embulk:embulk-input-tsurugidb:1.3.0 Embulk 0.11.3以降の場合 [2023-06-02] $ java -jar embulk-0.11.3.jar install io.github.hishidama.embulk:embulk-input-tsurugidb:1.3.0
プラグイン | Tsubakuro | Tsurugi本体 | Embulk | 更新日 |
---|---|---|---|---|
0.1.0 0.1.1 |
1.0.1 | 1.0.0-BETA1 | v0.11.1付近 | 2023-10-09 |
0.1.2 | 1.1.0 | 1.0.0-BETA2 | v0.11.2付近 | 2023-12-07 |
0.1.4 | 1.2.0 | 1.0.0-BETA3 | 2024-01-29 | |
0.1.5 | 1.3.0 | 1.0.0-BETA4 | v0.11.3付近 | 2024-04-11 |
0.1.6 | 1.4.0 | 1.0.0-BETA5 | v0.11.4付近 | 2024-07-11 |
0.1.7 | 1.5.0 | 1.0.0-BETA6 | 2024-08-16 | |
1.0.0 | 1.6.0 | 1.0.0 | 2024-08-31 | |
1.1.0 | 1.7.0 | 1.1.0〜1.2.0 | v0.11.5付近 | 2024-11-13 |
1.3.0 | 1.8.0 | 1.3.0 | 2025-03-17 |
inのtypeにtsurugidbを指定する。
in: type: tsurugidb endpoint: tcp://localhost:12345 〜
この場合は、Embulkのプロパティーファイル(Linuxの場合は$HOME/.embulk/embulk.properties
、Windowsの場合は%USERPROFILE%\.embulk\embulk.properties
)に設定を追加する必要がある。
plugins.input.tsurugidb=maven:io.github.hishidama.embulk:tsurugidb:0.1.7
inのtypeに「source: maven」を指定する。[2024-07-11]
in: type: source: maven group: io.github.hishidama.embulk name: tsurugidb version: 0.1.7 endpoint: tcp://localhost:12345 〜
in: type: tsurugidb endpoint: tcp://localhost:12345 query: select * from test where foo >=2 order by foo out: type: stdout
endpointにTsurugiのエンドポイントを指定する。
queryでselect文を指定する。
in: type: tsurugidb endpoint: tcp://localhost:12345 table: test where: foo >= 2 order_by: foo out: type: stdout
tableにテーブル名を指定する。
必要であれば、whereやorder_byを指定する。
config.ymlにTsurugi特有のトランザクションオプションやコミットオプションを指定できる。
Embulkの設定名 | 説明 |
---|---|
endpoint | Tsurugiのエンドポイント。必須。 |
connection_label | コネクション(セッション)のラベル。デフォルトはembulk-input-tsurugidb。ver0.1.6以降[2024-07-11] |
method | ver0.1.0ではselectのみ。デフォルトはselect。 |
tx_type | トランザクション種別。OCC・LTX・RTXのいずれか。デフォルトはRTX。 |
tx_label | トランザクションのラベル。デフォルトは「embulk-input-tsurugidb」。 |
tx_write_preserve | LTXのみ有効。しかし当プラグインは読み込みしか行わないので、write preserveを指定する機会は無いと思う^^; |
tx_inclusive_read_area | LTXのみ有効。 |
tx_exclusive_read_area | LTXのみ有効。 |
tx_priority | LTXまたはRTXのみ有効。priority。 |
commit_type | コミットオプション。 デフォルトはdefault。 |
その他の設定は、embulk-input-jdbcと同様(のはず)。
Embulkの設定名 | 説明 | |
---|---|---|
query | select文を記述する。 | |
table | 読み込むテーブル名。 | |
select | 読み込むカラム名の一覧。 | |
where | where条件。 | |
order_by | ソート条件。 | |
defualt_timezone | ||
column_options | value_type | 何を設定しても無視される。 |
type | Embulkのデータ型。 | |
timestamp_format | ||
timezone |
※queryと、table(およびselect・where・order_by)は、どちらかしか指定できない。
Tsurugi(Tsubakuro)のバージョンアップに伴うものは省略。
ver0.1.3はスキップ。(embulk-output-tsurugidbのバージョンに合わせる為)[2024-01-29]