Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Buat tabel untuk AWS WAF log tanpa partisi
Bagian ini menjelaskan cara membuat tabel untuk AWS WAF log tanpa partisi atau proyeksi partisi.
catatan
Untuk alasan kinerja dan biaya, kami tidak menyarankan menggunakan skema non-partisi untuk kueri. Untuk informasi selengkapnya, lihat 10 Tips Penyetelan Kinerja Terbaik untuk Amazon
Untuk membuat AWS WAF tabel
-
Salin dan tempel DDL pernyataan berikut ke konsol Athena. Ubah bidang seperlunya agar sesuai dengan keluaran log Anda.
LOCATION
Ubah bucket Amazon S3 agar sesuai dengan bucket yang menyimpan log Anda.Kueri ini menggunakanOpenX JSON SerDe.
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
atauHIVE_ 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 Datadalam SerDe dokumentasi OpenX pada. GitHub CREATE EXTERNAL TABLE `waf_logs`( `timestamp` bigint, `formatversion` int, `webaclid` string, `terminatingruleid` string, `terminatingruletype` string, `action` string, `terminatingrulematchdetails` array < struct < conditiontype: string, sensitivitylevel: string, location: string, matcheddata: array < string > > >, `httpsourcename` string, `httpsourceid` string, `rulegrouplist` array < struct < rulegroupid: string, terminatingrule: struct < ruleid: string, action: string, rulematchdetails: array < struct < conditiontype: string, sensitivitylevel: string, location: string, matcheddata: array < string > > > >, nonterminatingmatchingrules: array < struct < ruleid: string, action: string, overriddenaction: string, rulematchdetails: array < struct < conditiontype: string, sensitivitylevel: string, location: string, matcheddata: array < string > > >, challengeresponse: struct < responsecode: string, solvetimestamp: string >, captcharesponse: struct < responsecode: string, solvetimestamp: string > > >, excludedrules: string > >, `ratebasedrulelist` array < struct < ratebasedruleid: string, limitkey: string, maxrateallowed: int > >, `nonterminatingmatchingrules` array < struct < ruleid: string, action: string, rulematchdetails: array < struct < conditiontype: string, sensitivitylevel: string, location: string, matcheddata: array < string > > >, challengeresponse: struct < responsecode: string, solvetimestamp: string >, captcharesponse: struct < responsecode: string, solvetimestamp: string > > >, `requestheadersinserted` array < struct < name: string, value: string > >, `responsecodesent` string, `httprequest` struct < clientip: string, country: string, headers: array < struct < name: string, value: string > >, uri: string, args: string, httpversion: string, httpmethod: string, requestid: string >, `labels` array < struct < name: string > >, `captcharesponse` struct < responsecode: string, solvetimestamp: string, failureReason: string >, `challengeresponse` struct < responsecode: string, solvetimestamp: string, failureReason: string >, `ja3Fingerprint` string, `oversizefields` string, `requestbodysize` int, `requestbodysizeinspectedbywaf` int ) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://amzn-s3-demo-bucket/
prefix
/' -
Jalankan
CREATE EXTERNAL TABLE
pernyataan di editor kueri konsol Athena. Ini mendaftarkanwaf_logs
tabel dan membuat data di dalamnya tersedia untuk pertanyaan dari Athena.