前提・実現したいこと
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
プレビュー