Sarang JSON SerDe - Amazon Athena

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Sarang JSON SerDe

The Hive JSON SerDe biasanya digunakan untuk memproses JSON data seperti peristiwa. Peristiwa ini direpresentasikan sebagai string baris tunggal dari teks JSON -encode yang dipisahkan oleh baris baru. Hive JSON SerDe tidak mengizinkan kunci duplikat dalam map atau nama struct kunci.

catatan

SerDe Mengharapkan setiap JSON dokumen berada pada satu baris teks tanpa karakter penghentian baris yang memisahkan bidang dalam catatan. Jika JSON teks dalam format cetak yang cantik, Anda mungkin menerima pesan kesalahan seperti HIVE_ CURSOR _ERROR: Baris bukan JSON Objek yang valid atau HIVE_ CURSOR _ERROR: JsonParseException: Tidak terduga end-of-input: penanda tutup yang diharapkan OBJECT saat Anda mencoba menanyakan tabel setelah Anda membuatnya. Untuk informasi selengkapnya, lihat File JSON Data dalam SerDe dokumentasi OpenX pada. GitHub

DDLPernyataan contoh berikut menggunakan Hive JSON SerDe untuk membuat tabel berdasarkan contoh data iklan online. Dalam LOCATION klausa, ganti myregion masuk s3://amzn-s3-demo-bucket.elasticmapreduce/samples/hive-ads/tables/impressions dengan pengenal wilayah tempat Anda menjalankan Athena (misalnyas3://us-west-2.elasticmapreduce/samples/hive-ads/tables/impressions,).

CREATE EXTERNAL TABLE impressions ( requestbegintime string, adid string, impressionid string, referrer string, useragent string, usercookie string, ip string, number string, processid string, browsercookie string, requestendtime string, timers struct < modellookup:string, requesttime:string >, threadid string, hostname string, sessionid string ) PARTITIONED BY (dt string) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' LOCATION 's3://amzn-s3-demo-bucket.elasticmapreduce/samples/hive-ads/tables/impressions';

Tentukan format stempel waktu dengan Hive JSON SerDe

Untuk mengurai nilai stempel waktu dari string, Anda dapat menambahkan WITH SERDEPROPERTIES subfield ke ROW FORMAT SERDE klausa dan menggunakannya untuk menentukan parameter. timestamp.formats Dalam parameter, tentukan daftar terpisah koma dari satu atau beberapa pola stempel waktu, seperti pada contoh berikut:

... ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' WITH SERDEPROPERTIES ("timestamp.formats"="yyyy-MM-dd'T'HH:mm:ss.SSS'Z',yyyy-MM-dd'T'HH:mm:ss") ...

Untuk informasi selengkapnya, lihat Stempel waktu dalam dokumentasi Apache Hive.

Muat tabel untuk kueri

Setelah Anda membuat tabel, jalankan MSCK REPAIR TABLE untuk memuat tabel dan membuatnya dapat ditanyakan dari Athena:

MSCK REPAIR TABLE impressions

CloudTrail Log kueri

Anda dapat menggunakan Hive JSON SerDe untuk menanyakan CloudTrail log. Untuk informasi lebih lanjut dan contoh CREATE TABLE pernyataan, lihatAWS CloudTrail Log kueri.