Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Hive JSON biasanya SerDe digunakan untuk memproses data JSON seperti peristiwa. Peristiwa ini direpresentasikan sebagai string baris tunggal dari teks yang disandikan JSON yang dipisahkan oleh baris baru. Hive JSON SerDe tidak mengizinkan kunci duplikat dalam map
atau struct
nama kunci.
catatan
SerDe Mengharapkan setiap dokumen JSON berada pada satu baris teks tanpa karakter penghentian baris yang memisahkan bidang dalam catatan. Jika teks JSON dalam format cetak cantik, Anda mungkin menerima pesan kesalahan seperti HIVE_CURSOR_ERROR: Row is not a valid JSON Object or HIVE_CURSOR_ERROR::
Unexpected JsonParseException end-of-input: expected close marker for
OBJECT saat Anda mencoba menanyakan tabel setelah Anda membuatnya. Untuk informasi selengkapnya, lihat File Data JSON
Contoh pernyataan DDL berikut menggunakan Hive JSON SerDe untuk membuat tabel berdasarkan sampel data iklan online. Dalam LOCATION
klausa, ganti myregion
in s3://amzn-s3-demo-bucket.elasticmapreduce/samples/hive-ads/tables/impressions
dengan pengenal wilayah tempat Anda menjalankan Athena (misalnya,). s3://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 query CloudTrail log. Untuk informasi lebih lanjut dan contoh CREATE TABLE
pernyataan, lihatAWS CloudTrail Log kueri.