S-JIS[2023-10-08/2025-03-17] 変更履歴

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ローカルリポジトリーにインストールする。
    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
  2. config.ymlのtypeに「tsurugidb」で指定したい場合は、Embulkのプロパティーファイルに設定を追加する。[2024-07-11]
    プロパティーファイルの記述方法
対応バージョン
プラグイン 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

typeの指定方法

従来通りの方法

inのtypeにtsurugidbを指定する。

config.yml:

in:
  type: tsurugidb
  endpoint: tcp://localhost:12345
〜

この場合は、Embulkのプロパティーファイル(Linuxの場合は$HOME/.embulk/embulk.properties、Windowsの場合は%USERPROFILE%\.embulk\embulk.properties)に設定を追加する必要がある。

embulk.properties:

plugins.input.tsurugidb=maven:io.github.hishidama.embulk:tsurugidb:0.1.7

Embulk 0.11.3以降

inのtypeに「source: maven」を指定する。[2024-07-11]

config.yml:

in:
  type:
    source: maven
    group: io.github.hishidama.embulk
    name: tsurugidb
    version: 0.1.7
  endpoint: tcp://localhost:12345
〜

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のエンドポイント。必須。
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]


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