質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.33%

embulk定義について、csvファイルのデータをcolumnsオプションなしで定義可能か

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 182

raccoondog

score 17

環境:oracle 12c、embulk 0.9.15

bigqueryのテーブルでnumericのカラムがあります。

oracleのデータをcsvにして、embulkでcsvのデータをとりこんで、bigqueryへバルクインサートする

embulkの定義でcolumnsオプションをぬかして、csvのデータをそのままbigqueryへインサートさせたいです。

理由は、embulkではnumericデータがサポート対象外のため

※CSVファイルの中身
9649318,1,7500,P5B,2019/04/17,8982437470,25,I 0400173,01,0,7500,P0A,A05,A05,,7500,P5B,PB94290,7202,,V,0,2019/04/17 18:30:37,2019/04/17 18:30:37,,,0,,,,,,,,,1,0,13642,H・虱S・00368000,,,2019/04/17 18:30:37,SYSTEM,2019/04/17 18:30:37,SYSTEM,7042838,2019/04/17 18:30:37.980,,,,,,,,,01,1,,,,,,,,,,,,,,,,3811502860,,,,,,,,,,虱


※embulk定義
srdcs@SSVR0224:/home1/bigquery/conf$ cat config_T_RS_TRAN.yml
in:
  type: file
  path_prefix: /home1/bigquery/out
  parser:
    type: csv
    delimiter: ','
    skip_header_line: false
    charset: Shift-JIS
    newline: CRLF
    quote: '"'
    escape: '"'
    trim_if_not_quoted: false
    skip_header_lines: 0
    port: 1533
out: {location: asia-northeast1, type: bigquery, auth_method: json_key, json_keyfile: '/home1/bigquery/conf/YZK GCP Project-8bc479ac2a95.json', project: yzk-gcp-project, dataset: srdcs_data, auto_create_table: true, table: T_RS_TRAN_SSVR0224_FULL, open_read_timeout_sec: 360000, send_timeout_sec: 360000, read_timeout_sec: 360000}



※エラー
$embulk run config_T_RS_TRAN.yml
2019-04-17 19:06:19.355 +0900: Embulk v0.9.15
2019-04-17 19:06:19.749 +0900 [WARN] (main): DEPRECATION: JRuby org.jruby.embed.ScriptingContainer is directly injected.
2019-04-17 19:06:21.825 +0900 [INFO] (main): Gem's home and path are set by default: "/export/home/srdcs/.embulk/lib/gems"
2019-04-17 19:06:22.492 +0900 [INFO] (main): Started Embulk v0.9.15
io/console on JRuby shells out to stty for most operations
2019-04-17 19:06:25.564 +0900 [INFO] (0001:transaction): Loaded plugin embulk-output-bigquery (0.4.9)
2019-04-17 19:06:25.602 +0900 [INFO] (0001:transaction): Listing local files at directory '/home1/bigquery/out' filtering filename by prefix ''
2019-04-17 19:06:25.603 +0900 [INFO] (0001:transaction): "follow_symlinks" is set false. Note that symbolic links to directories are skipped.
2019-04-17 19:06:25.604 +0900 [INFO] (0001:transaction): Loading files [/home1/bigquery/out/GCP_CSV_IF20190417183507_ENB]
org.embulk.exec.PartialExecutionException: org.embulk.config.ConfigException: com.fasterxml.jackson.databind.JsonMappingException: Field 'columns' is required but not set
 at [Source: N/A; line: -1, column: -1]
        at org.embulk.exec.BulkLoader$LoaderState.buildPartialExecuteException(BulkLoader.java:340)
        at org.embulk.exec.BulkLoader.doRun(BulkLoader.java:566)
        at org.embulk.exec.BulkLoader.access$000(BulkLoader.java:35)
        at org.embulk.exec.BulkLoader$1.run(BulkLoader.java:353)
        at org.embulk.exec.BulkLoader$1.run(BulkLoader.java:350)
        at org.embulk.spi.Exec.doWith(Exec.java:22)
        at org.embulk.exec.BulkLoader.run(BulkLoader.java:350)
        at org.embulk.EmbulkEmbed.run(EmbulkEmbed.java:178)
        at org.embulk.EmbulkRunner.runInternal(EmbulkRunner.java:292)
        at org.embulk.EmbulkRunner.run(EmbulkRunner.java:156)
        at org.embulk.cli.EmbulkRun.runSubcommand(EmbulkRun.java:436)
        at org.embulk.cli.EmbulkRun.run(EmbulkRun.java:91)
        at org.embulk.cli.Main.main(Main.java:64)
        Suppressed: java.lang.NullPointerException
                at org.embulk.exec.BulkLoader.doCleanup(BulkLoader.java:463)
                at org.embulk.exec.BulkLoader$3.run(BulkLoader.java:397)
                at org.embulk.exec.BulkLoader$3.run(BulkLoader.java:394)
                at org.embulk.spi.Exec.doWith(Exec.java:22)
                at org.embulk.exec.BulkLoader.cleanup(BulkLoader.java:394)
                at org.embulk.EmbulkEmbed.run(EmbulkEmbed.java:181)
                ... 5 more
Caused by: org.embulk.config.ConfigException: com.fasterxml.jackson.databind.JsonMappingException: Field 'columns' is required but not set
 at [Source: N/A; line: -1, column: -1]
        at org.embulk.config.ModelManager.readObjectWithConfigSerDe(ModelManager.java:78)
        at org.embulk.config.DataSourceImpl.loadConfig(DataSourceImpl.java:197)
        at org.embulk.standards.CsvParserPlugin.transaction(CsvParserPlugin.java:212)
        at org.embulk.spi.FileInputRunner$RunnerControl$1.run(FileInputRunner.java:107)
        at org.embulk.spi.util.Decoders$RecursiveControl.transaction(Decoders.java:68)
        at org.embulk.spi.util.Decoders.transaction(Decoders.java:29)
        at org.embulk.spi.FileInputRunner$RunnerControl.run(FileInputRunner.java:105)
        at org.embulk.standards.LocalFileInputPlugin.resume(LocalFileInputPlugin.java:79)
        at org.embulk.standards.LocalFileInputPlugin.transaction(LocalFileInputPlugin.java:72)
        at org.embulk.spi.FileInputRunner.transaction(FileInputRunner.java:62)
        at org.embulk.exec.BulkLoader.doRun(BulkLoader.java:507)
        ... 11 more
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Field 'columns' is required but not set
 at [Source: N/A; line: -1, column: -1]
        at org.embulk.config.TaskSerDe$TaskDeserializer.deserialize(TaskSerDe.java:180)
        at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:3708)
        at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2005)
        at org.embulk.config.ModelManager.readObjectWithConfigSerDe(ModelManager.java:73)
        ... 21 more

Error: org.embulk.config.ConfigException: com.fasterxml.jackson.databind.JsonMappingException: Field 'columns' is required but not set
 at [Source: N/A; line: -1, column: -1]
srdcs@SSVR0224:/home1/bigquery/conf$

※embulkプラグインのソースコードを変更してnumericを対応させる。など可能でしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

意味がよくわかりませんが、columnsは必須です。
CSVの文字列そのまま一つの文字列カラムにしたいということであればembulk-parser-noneが使えると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.33%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る