本文へジャンプ

Embulk 出力プラグインガイド

Revision: 1.1.0-426

1 Embulk用GridDB出力プラグイン

Embulk用GridDB出力プラグインはレコードをGridDBのデータベースにロードします。

1.1 概要

Embulk用GridDB出力プラグインは他のデータベースのデータをGridDBに転送します。

  • プラグインのタイプ: 出力
  • レジューム実行: 不可 (処理失敗の場合、全データをクリーンアップし、再実行してください。)

1.2 構成

  • type: プラグイン名"Embulk用GridDB出力プラグイン"を意味するgriddbを指定。
  • mode_cluster: クラスタのモード (PROVIDER)
  • database: GridDBのデータベース名を指定。
  • cluster: クラスタ名 GridDB
  • container: GridDBのコンテナ名
  • provider_url: プロバイダ・メソッドで使われるアドレスプロバイダのURL
  • user: GridDB gsad(管理)ユーザ
  • password: GridDB gsadmユーザのパスワード
  • mode_insert: データ挿入のモード(appendまたはreplace)
  • batch_size: コンテナへの単一バッチインサートのサイズ (整数)
  • default_timezone: カラムタイプがTIMESTAMPでembulkタイプがcolumnの場合、値はdefault_timezoneでフォーマットされます。各カラムのタイムゾーンは column_optionsオプション (string, デフォルト: UTC)を用いて上書きできます。
  • column_options: キーがカラム名で、値が以下の構成のパラメータを持つマップ (任意)。
    • name: カラム名
    • type: カラム値は本embulkタイプに変換されます。対応済みの変換タイプについては以下を参照。
      • boolean: BOOLEAN, STRING
      • long: LONG, INTEGER, STRING
      • double: DOUBLE, FLOAT, STRING
      • float: FLOAT, DOUBLE, STRING
      • string: BOOLEAN, INTEGER, FLOAT, STRING, TIMESTAMP
      • timestamp: STRING, TIMESTAMP
    • timestamp_format: GridDBタイプのカラムのタイプが TIMESTAMPでembulkタイプのカラムのタイプがstringの場合、カラム値は本timestamp_formatで初期化されます。embulkタイプのカラムのタイプがtimestampの場合、本timestamp_formatが出力プラグインで使用されることがあります。例えば、stdoutプラグインはtimestamp_formatを使用しますが、csv初期化プラグインは使用しません。 (string, デフォルト: dateの場合、yyyy-MM-ddtimeの場合、hh:mm:sstimestampの場合、yyyy-MM-dd hh:mm:ss)。
    • timezone: カラムのsqlタイプがTIMESTAMPでembulkのタイプがstringの場合、カラム値は本タイムゾーンで初期化されます。

1.3

  • mode_cluster: PROVIDER
out:
  type: griddb
  mode_cluster: PROVIDER
  provider_url: http://172.0.0.10/mycluster.json
  cluster: mycluster
  database: db_embulk
  container: container_embulk
  user: admin
  password: admin
  mode_insert: replace
  default_timezone: UTC
  batch_size: 1000000
  column_options:
     last_update: {type: string, timestamp_format: 'yyyy-MM-dd HH:mm:ss.SSS', timezone: 'Asia/Kolkata'}

  • 下記例では、コンテナ名が既に存在する場合、ユーザは出力コンテナを差し替えるよう選択しています。

    構成ファイル中のmode_insertreplaceモードに設定する必要があります。 (コンテナが存在しない場合、プラグインは新規のコンテナを作成します。)

out:
  type: griddb
  mode_cluster: PROVIDER
  provider_url: http://172.0.0.10/mycluster.json
  cluster: mycluster
  database: db_embulk
  container: container_embulk
  user: admin
  password: admin
  mode_insert: replace
  default_timezone: UTC
  batch_size: 1000000
  column_options:
     last_update: {type: string, timestamp_format: 'yyyy-MM-dd HH:mm:ss.SSS', timezone: 'Asia/Kolkata'}
  • 下記例では、コンテナ名が既に存在する場合、ユーザは出力コンテナに追記するよう選択しています。

    構成ファイル中のmode_insertappendモードに設定する必要があります。(コンテナが存在しない場合、プラグインは新規のコンテナを作成します。)

out:
  type: griddb
  mode_cluster: PROVIDER
  provider_url: http://172.0.0.10/mycluster.json
  cluster: mycluster
  database: db_embulk
  container: container_embulk
  user: admin
  password: admin
  mode_insert: append
  default_timezone: UTC
  batch_size: 1000000
  column_options:
     last_update: {type: string, timestamp_format: 'yyyy-MM-dd HH:mm:ss.SSS', timezone: 'Asia/Kolkata'}

1.4 ビルド

$ gradle package  # -t ファイルの変化を監視し、連続的にリビルド

1.5 実行例

実行:

./embulk-0.9.17.jar run -L ./embulk-output-griddb/ config.yml