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
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
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.