Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kueri menggunakan tanggal dan waktu
Contoh di bagian ini mencakup kueri yang menggunakan nilai tanggal dan waktu.
contoh — Kembalikan bidang stempel waktu dalam format 8601 yang dapat dibaca manusia ISO
Kueri berikut menggunakan to_iso8601
fungsi from_unixtime
dan untuk mengembalikan timestamp
bidang dalam format ISO 8601 yang dapat dibaca manusia (misalnya, bukan). 2019-12-13T23:40:12.000Z
1576280412771
Kueri juga mengembalikan nama HTTP sumber, ID sumber, dan permintaan.
SELECT to_iso8601(from_unixtime(timestamp / 1000)) as time_ISO_8601, httpsourcename, httpsourceid, httprequest FROM waf_logs LIMIT 10;
contoh — Kembalikan catatan dari 24 jam terakhir
Kueri berikut menggunakan filter dalam WHERE
klausa untuk mengembalikan nama HTTP sumber, ID HTTP sumber, dan bidang HTTP permintaan untuk catatan dari 24 jam terakhir.
SELECT to_iso8601(from_unixtime(timestamp/1000)) AS time_ISO_8601, httpsourcename, httpsourceid, httprequest FROM waf_logs WHERE from_unixtime(timestamp/1000) > now() - interval '1' day LIMIT 10;
contoh — Mengembalikan catatan untuk rentang tanggal dan alamat IP yang ditentukan
Kueri berikut mencantumkan catatan dalam rentang tanggal yang ditentukan untuk alamat IP klien tertentu.
SELECT * FROM waf_logs WHERE httprequest.clientip='53.21.198.66' AND "date" >= '2021/03/01' AND "date" < '2021/03/31'
contoh — Untuk rentang tanggal tertentu, hitung jumlah alamat IP dalam interval lima menit
Kueri berikut menghitung, untuk rentang tanggal tertentu, jumlah alamat IP dalam interval lima menit.
WITH test_dataset AS (SELECT format_datetime(from_unixtime((timestamp/1000) - ((minute(from_unixtime(timestamp / 1000))%5) * 60)),'yyyy-MM-dd HH:mm') AS five_minutes_ts, "httprequest"."clientip" FROM waf_logs WHERE "date" >= '2021/03/01' AND "date" < '2021/03/31') SELECT five_minutes_ts,"clientip",count(*) ip_count FROM test_dataset GROUP BY five_minutes_ts,"clientip"
contoh - Hitung jumlah X-Forwarded-For IP dalam 10 hari terakhir
Kueri berikut memfilter header permintaan dan menghitung jumlah X-Forwarded-For IP dalam 10 hari terakhir.
WITH test_dataset AS (SELECT header FROM waf_logs CROSS JOIN UNNEST (httprequest.headers) AS t(header) WHERE from_unixtime("timestamp"/1000) > now() - interval '10' DAY) SELECT header.value AS ip, count(*) AS COUNT FROM test_dataset WHERE header.name='X-Forwarded-For' GROUP BY header.value ORDER BY COUNT DESC
Untuk informasi selengkapnya tentang fungsi tanggal dan waktu, lihat Fungsi dan operator tanggal dan waktu