Athena DDL untuk format Ion?

Saya mencoba menggunakan Athena untuk menanyakan beberapa file yang ada dalam format Ion dihasilkan oleh fitur Ekspor Ke S3 yang baru ditambahkan pada pencadangan DynamoDB.

Ini adalah format yang sangat bodoh yang pada dasarnya adalah string $ion_1_0 diikuti oleh json. String $ion_1_0 yang tidak diberi tanda kutip di depan membuat data json tidak valid.

Saya mencoba menggunakan Ion Serde dari di sini:

CREATE EXTERNAL TABLE mydb.mytable (
`myfields` string,
 ...
)
ROW FORMAT SERDE 'com.amazon.ionhiveserde.IonHiveSerDe'
LOCATION 's3:/.../dynamodb-export/AWSDynamoDB/01608775578817-a6944d97/data/'
TBLPROPERTIES ('has_encrypted_data'='true');

Tapi dapatkan ini:

GAGAL: Kesalahan Eksekusi, kembalikan kode 1 dari org.apache.hadoop.hive.ql.exec.DDLTask. Tidak dapat memvalidasi serde: com.amazon.ionhiveserde.IonHiveSerDe

PEMBARUAN

Sebenarnya formatnya sedikit lebih buruk dari yang saya kira. Nama field tidak dikutip. Jadi json tidak cukup valid bahkan setelah awalan $ion dihapus.


person Alex R    schedule 24.12.2020    source sumber


Jawaban (1)


ION adalah format teks sumber terbuka yang merupakan superset dari JSON. Sudahkah Anda mencoba mengonversi file ION Anda dengan lem? ION adalah salah satu opsi format yang didukung (untuk input): https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html

Lokakarya QLDB ini menggunakan ION sebagai contohnya, Anda dapat menjelajahi template cloudformation/yaml atau menerapkan alur kerja dan menggali crawler serta pekerjaan yang dibuatnya untuk beberapa ide: https://qldb-immersionday.workshop.aws/en/lab3/task3.html

Lihat buku masak ION untuk beberapa informasi tambahan: https://amzn.github.io/ion-docs/guides/cookbook.html

Dan spesifikasinya: https://amzn.github.io/ion-docs/docs/spec.html

person C2BB    schedule 31.12.2020
comment
Menggunakan Lem sebagai solusi cepat - person Alex R; 25.02.2021