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

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

新規登録して質問してみよう
ただいま回答率
85.37%
Embulk

Embulkは、CSVデータやアクセスログなどの構造化データを高い信頼性で転送することができる、プラグインベースのバルクデータローダーです。

Q&A

解決済

1回答

7086閲覧

embulkを利用し単一のファイルを取り込み出力する際に複数にファイルに分割されてしまう

muratomi

総合スコア13

Embulk

Embulkは、CSVデータやアクセスログなどの構造化データを高い信頼性で転送することができる、プラグインベースのバルクデータローダーです。

0グッド

0クリップ

投稿2019/07/17 02:22

編集2019/07/17 03:58

前提・実現したいこと

embulkを利用しFTPでファイルを取得し、取得したファイルをFTPで出力したいと考えております。
1つのファイルを取得し出力する際、2つのファイルに分割されてしまいます。
1つのファイルに出力したいのですが、設定方法等お気づきの点があればお教えいただけますと幸いです。

ファイル取得には「embulk-input-ftp」、ファイル出力には「embulk-output-ftp」のプラグインを利用しています。

実行環境の情報は以下になります。
マシンスペック:2vCPU、8GiB
OS : WindowsServer 2008 R2
java : openjdk version "1.8.0_212"
embulk : embulk 0.9.17
embulk-input-ftp : embulk-input-ftp-0.2.0
embulk-output-ftp : embulk-output-ftp-0.2.2

不足情報等あればお気軽に教えていただけますと助かります。

発生している問題・エラーメッセージ

取り込み対象のファイルと出力されるファイルは以下になります。

■取り込み対象のファイル(test_purchase_log_20180802.csv)

time,member_id,goods_id,ship_date,ammount,total 2019-03-18 22:41:22,0001,0001,2019-09-2,3,1000 2019-03-18 22:41:33,0002,0002,2019-09-2,3,1000 2019-03-18 22:41:44,0003,0003,2019-09-2,3,1000 2019-03-18 22:41:55,0001,0003,2019-09-2,1,1000 2019-03-18 22:42:11,0001,0002,2019-09-2,2,1000 2019-03-18 22:42:11,0002,0003,2019-09-2,3,1000

■出力されるファイル1(test000.00.csv)

time,member_id,goods_id,ship_date,ammount,total 2019-03-18 22:41:22.000000 +0000,0001,0001,2019-09-02 00:00:00.000000 +0000,3,1000 2019-03-18 22:41:33.000000 +0000,0002,0002,2019-09-02 00:00:00.000000 +0000,3,1000 2019-03-18 22:41:44.000000 +0000,0003,0003,2019-09-02 00:00:00.000000 +0000,3,1000 2019-03-18 22:41:55.000000 +0000,0001,0003,2019-09-02 00:00:00.000000 +0000,1,1000 2019-03-18 22:42:11.000000 +0000,0001,0002,2019-09-02 00:00:00.000000 +0000,2,1000 2019-03-18 22:42:11.000000 +0000,0002,0003,2019-09-02 00:00:00.000000 +0000,3,1000

■出力されるファイル2(test001.00.csv)

time,member_id,goods_id,ship_date,ammount,total

embulk設定ファイル

embulkの設定ファイルは以下になります。

yml.liquid

1in: 2 type: ftp 3 host: xxxxx 4 port: 21 5 user: xxxxx 6 password: xxxxx 7 path_prefix: /test_purchase_log 8 parser: 9 charset: UTF-8 10 newline: CRLF 11 type: csv 12 delimiter: ',' 13 quote: '"' 14 escape: '"' 15 trim_if_not_quoted: false 16 skip_header_lines: 1 17 allow_extra_columns: false 18 allow_optional_columns: false 19 columns: 20 - {name: time, type: timestamp, format: '%Y-%m-%d %H:%M:%S'} 21 - {name: member_id, type: string} 22 - {name: goods_id, type: string} 23 - {name: ship_date, type: timestamp, format: '%Y-%m-%d'} 24 - {name: ammount, type: long} 25 - {name: total, type: long} 26out: 27 type: ftp 28 host: xxxxx 29 port: 21 30 user: xxxxx 31 password: xxxxx 32 path_prefix: test 33 file_ext: csv 34 formatter: {type: csv, header_line: true}

試したこと

・複数ファイルを入力にする場合は想定通りの動作となります。(inputファイル数=outputファイル数となります。)
・マシンスペックを1vCPU、4GiBにすると1つのファイルへ出力されます。
・マシンスペックを4vCPU、16GiBにすると4つのファイルへ分割されて出力されます。出力された4つのファイルは「test000.00.csv」と「test001.00.csv」、「test002.00.csv」、「test003.00.csv」が出力されます。
「test000.00.csv」と「test001.00.csv」は上記と同じファイルが出力され、「test002.00.csv」、「test003.00.csv」は「test001.00.csv」と同じファイルが出力されます。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

min_output_tasks: 1を試してみてください。

yaml

1exec: 2 min_output_tasks: 1

ドキュメント

投稿2019/07/17 04:25

hiroysato

総合スコア415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

muratomi

2019/07/17 04:45

ご確認、ご回答いただき誠にありがとうございます。 いただいた方法で解決できました。 早急なご回答いただき大変助かりました。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問