Athena DDL สำหรับรูปแบบไอออน?

ฉันกำลังพยายามใช้ Athena เพื่อสืบค้นไฟล์บางไฟล์ที่อยู่ใน รูปแบบไอออน สร้างขึ้นโดยคุณสมบัติส่งออกไปยัง S3 ที่เพิ่มล่าสุดของการสำรองข้อมูล DynamoDB

นี่เป็นรูปแบบที่โง่เขลาซึ่งโดยพื้นฐานแล้วคือสตริง $ion_1_0 ตามด้วย json สตริง $ion_1_0 ที่ไม่มีเครื่องหมายคำพูดที่ด้านหน้าทำให้ข้อมูล json ไม่ถูกต้อง

ฉันลองใช้ Ion Serde จากที่นี่:

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');

แต่ได้รับสิ่งนี้:

ล้มเหลว: ข้อผิดพลาดในการดำเนินการ ส่งคืนโค้ด 1 จาก org.apache.hadoop.hive.ql.exec.DDLTask ไม่สามารถตรวจสอบ serde: com.amazon.ionhiveserde.IonHiveSerDe

อัปเดต

จริงๆแล้วรูปแบบนั้นแย่กว่าที่ฉันคิดไว้เล็กน้อย ชื่อฟิลด์ไม่ได้ถูกยกมา ดังนั้นจึงไม่ใช่ json ที่ถูกต้องแม้ว่าจะลอกคำนำหน้า $ion แล้วก็ตาม


person Alex R    schedule 24.12.2020    source แหล่งที่มา


คำตอบ (1)


ION เป็นรูปแบบข้อความโอเพ่นซอร์สซึ่งเป็นส่วนเสริมของ JSON คุณได้ลองแปลงไฟล์ ION ด้วยกาวแล้วหรือยัง? ION เป็นหนึ่งในตัวเลือกรูปแบบที่รองรับ (สำหรับการป้อนข้อมูล): https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html

เวิร์กชอป QLDB นี้ใช้ ION ในตัวอย่าง คุณสามารถสำรวจเทมเพลต cloudformation/yaml หรือปรับใช้เวิร์กโฟลว์และเจาะลึกเข้าไปในโปรแกรมรวบรวมข้อมูลและงานที่สร้างขึ้นสำหรับแนวคิดบางอย่าง: https://qldb-immersionday.workshop.aws/en/lab3/task3.html

ลองอ่านตำราอาหาร ION เพื่อดูข้อมูลเพิ่มเติม: https://amzn.github.io/ion-docs/guides/cookbook.html

และข้อมูลจำเพาะ: https://amzn.github.io/ion-docs/docs/spec.html

person C2BB    schedule 31.12.2020
comment
การใช้กาวเป็นวิธีแก้ไขอย่างรวดเร็ว - person Alex R; 25.02.2021