ฉันกำลังพยายามใช้ 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 แล้วก็ตาม