S-JIS[2023-10-08/2024-04-11] 変更履歴

Embulk Tsurugiからの入力

EmbulkTsurugi読み込みプラグインのメモ。


概要

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セントラルリポジトリーで確認できる)

  1. プラグイン本体と依存ライブラリーをMavenローカルリポジトリーにインストールする。
    $ export m2_repo=〜
    $ mvn dependency:get -Dartifact=io.github.hishidama.embulk:embulk-input-tsurugidb:0.1.5
  2. Embulkのプロパティーファイル(Linuxの場合は$HOME/.embulk/embulk.properties、Windowsの場合は%USERPROFILE%\.embulk\embulk.properties)に設定を追加する。
    plugins.input.tsurugidb=maven:io.github.hishidama.embulk:tsurugidb:0.1.5
対応バージョン
プラグイン 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

select文を指定する例

config.yml:

in:
  type: tsurugidb
  endpoint: tcp://localhost:12345
  query: select * from test where foo >=2 order by foo

out:
  type: stdout

endpointにTsurugiのエンドポイントを指定する。

queryでselect文を指定する。


テーブルを指定してselectする例

config.yml:

in:
  type: tsurugidb
  endpoint: tcp://localhost:12345
  table: test
  where: foo >= 2
  order_by: foo

out:
  type: stdout

tableにテーブル名を指定する。
必要であれば、whereやorder_byを指定する。


config.ymlの設定

config.ymlにTsurugi特有のトランザクションオプションコミットオプションを指定できる。

Embulkの設定名 説明
endpoint Tsurugiのエンドポイント。必須。
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]


Embulk目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま