以下の内容はhttps://uga-box.hatenablog.com/entry/2022/03/10/000000より取得しました。


【Embulk】jsonをインプットにしてMySQLに投入する

EmbulkでjsonをインプットとしてMySQLへアウトプットしたい

2年前にcsvをインプットにしたことがあるので、これを参考にjsonをインプットにする方法を調べる

uga-box.hatenablog.com

インプットとなるjsonファイルは1行1オブジェクトで配列ではない

{"id": 1, "name": "AAA"}
{"id": 2, "name": "BBB"}

このとき2年前のembulkバージョン(v0.9.12)のままだと1オブジェクトをJSON型1カラムを持つレコードとして登録された

+-----------------------+
|           record:json |
+-----------------------+
| {"id":1,"name":"AAA"} |
| {"id":2,"name":"BBB"} |
+-----------------------+

これをパースするには、バージョンをv0.9.16以上にする必要がある

ただ、いまのバージョンが古すぎてselfupdateというサブコマンドを実行してもアップデートされなかったので、最新のバイナリをダウンロードして上書きした

$ curl --create-dirs -o ~/.embulk/bin/embulk -L "https://dl.embulk.org/embulk-latest.jar"
$ source ~/.bashrc

バージョンを確認

$ embulk --version
embulk 0.9.23

v0.9.16以上なのでjsonをパースして各カラムに登録できるようになった

in:
  type: file
  path_prefix: ./input.json
  parser:
    type: json
    charset: UTF-8
    newline: LF
    root: /propertyId
    columns:
      - {name: id, type: long}
      - {name: name, type: string}
out:
  type: mysql
  host: localhost
  user: uggds
  password: password
  database: test_db
  table: test
  mode: replace
+---------+-------------+
| id:long | name:string |
+---------+-------------+
|       1 |         AAA |
|       2 |         BBB |
+---------+-------------+

他参考

https://qiita.com/kamatama_41/items/ebb2ae0548e2a4863397




以上の内容はhttps://uga-box.hatenablog.com/entry/2022/03/10/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14