前提・実現したいこと
embulkでRDStoRDSでコピーをしたいのですが、バイナリデータがサポートされていていないようで、エラーになります。
エラーメッセージの通り、columnA: {value_type: string}を追加しても解消されませんでした。
何か回避方法をご存知であれば、教えて頂けると助かります。。
発生している問題・エラーメッセージ
Caused by: java.lang.UnsupportedOperationException: Unsupported type MEDIUMBLOB (sqlType=-4) of 'DATA' column. Please add 'columnA: {value_type: string}' to 'column_options: {...}' option to convert the values to strings, or exclude the column from 'select:' option
コード
_input.yml.liquid
in: type: mysql host: {{ env.IN_MYSQL_HOST }} user: {{ env.IN_MYSQL_USER }} password: {{ env.IN_MYSQL_PASSWORD }} database: dbA select: "*" options: {useLegacyDatetimeCode: false, serverTimezone: Asia/Tokyo}
_output.yml.liquid
out: type: mysql mode: replace host: {{ env.OUT_MYSQL_HOST }} user: {{ env.OUT_MYSQL_USER }} password: {{ env.OUT_MYSQL_PASSWORD }} database: dbA select: "*"
config.yml.liquid
{% include 'input' %} table: tableA {% include 'output' %} table: tableA column_options: DATA: {value_type: string}
テーブル定義
ID:INT
DATA:MEDIUMBLOB
CREATED_DATE:DATETIME
UPDATED_DATE:DATETIME
バージョンなど
Amazon linux2
Embulk v0.9.23
embulk-input-mysql 0.10.1
embulk-output-mysql 0.8.7
2021/06/16 追記
下記のように修正し、embulkを実行したところ、エラーになりました。
in: type: mysql user: user password: password database: dbA table: tableA host: host select: id,TO_BASE64(DATA) as DATA out: type: mysql user: user password: password database: dbA table: tableA column_options: DATA: type: longtext host: host mode: replace after_load: insert into tableA(id,DATA) select id,FROM_BASE64(DATA) from tableA;
回答1件
あなたの回答
tips
プレビュー
2021/06/14 13:45
2021/06/14 14:57 編集
2021/06/15 01:07
2021/06/15 08:44
2021/06/15 13:02
2021/06/15 13:57
2021/06/15 16:54
2021/06/15 17:20
2021/06/16 00:39 編集
2021/06/16 05:31 編集
2021/06/16 05:37
2021/06/16 08:47 編集
2021/06/16 08:54
2021/06/16 09:48
2021/06/16 10:01
2021/06/17 11:13