2

sqoop (2) エクスポートを使用して avro ファイルから postgres テーブルにデータを入力したいのですが、ソースに id フィールドがなく、自動的にデータを入力する必要があります (シリアル タイプ) が、エラーが発生します。

テーブル DDL:

CREATE TABLE test
 (
 id serial primary key,
 partner_id varchar,
 column1 varchar,
 column2 varchar
)

avro スキーマ:

{
"namespace": "avro_test",
"type": "record",
"name": "test",
"fields": [
      {"name": "partner_id", "type": "string"},
      {"name": "column1", "type": ["string","null"]},
      {"name": "column2", "type": ["string","null"]}
      ]
}

私が使用するエクスポートコマンド:

./sqoop-1.4.5.bin__hadoop-2.0.4-alpha/bin/sqoop export \
    --connect jdbc:postgresql://host/db \
    --username user_test --password pass_test \
    --table test \
    --export-dir path \
    --columns partner_id,column1,column2

しかし、avroスキーマにIDがないというエラーが表示されます:

Status : FAILED
Error: java.io.IOException: Cannot find field id in Avro schema

--columns 引数で対象の列を指定しようとしましたが、うまくいきません。上記のavroファイルをロードするにはどうすればよいですか?

テーブルから id フィールドを削除すると、正常にエクスポートされます

前もって感謝します

4

1 に答える 1