Selama proses kueri dan analisis, sistem mungkin perlu memproses bidang waktu dalam log, seperti mengonversi cap waktu ke format tertentu. Topik ini memberikan contoh cara melakukan konversi bidang waktu.
Bidang waktu
Bidang Waktu
__time__: Ini adalah bidang cadangan dari Simple Log Service. Bidang ini mencatat waktu log yang Anda tentukan saat menggunakan API atau SDK untuk menulis log. Anda dapat menggunakan bidang ini untuk mengirim, menanyakan, dan menganalisis log.
Bidang waktu asli dalam log mentah: Bidang ini mencatat waktu ketika sebuah log dihasilkan.
Metode untuk Mengonversi Bidang Waktu
Mengonversi __time__ menjadi cap waktu
Anda dapat menggunakan fungsi from_unixtime untuk mengonversi nilai dari bidang __time__ dari cap waktu UNIX menjadi ekspresi datetime yang mengembalikan nilai cap waktu.
* | select from_unixtime(__time__) Menampilkan __time__ dalam format tertentu
Anda dapat menggunakan fungsi date_format untuk mengonversi nilai dari bidang __time__ dari ekspresi datetime yang mengembalikan nilai cap waktu menjadi format tertentu.
* | select date_format(__time__, '%Y-%m-%d %H:%i:%S') Mengonversi bidang waktu asli dalam log ke format tertentu
Anda dapat melakukan langkah-langkah berikut untuk mengonversi bidang waktu asli dalam log dari string ke format tertentu.
Gunakan fungsi date_parse untuk mengonversi bidang waktu dari string ke format
Tahun-Bulan-Hari Jam:Menit:Detik.Gunakan fungsi date_format untuk mengekstrak bagian
Tahun-Bulan-Hari.Gunakan
group byuntuk mengelompokkan data.
Contoh Log:
__topic__: body_byte_sent: 307 hostname: example.com http_user_agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Mobile/14G60 QQ/192.0.2.1 V1_IPH_SQ_7.1.8_1_APP_A Pixel/750 Core/UIWebView NetType/WIFI QBWebViewType/1 method: GET referer: www.example.com remote_addr: 192.0.2.0 request_length: 111 request_time: 2.705 status: 200 upstream_response_time: 0.225582883754 url: /?k0=v9& time:2017-05-17 09:45:00Contoh Pernyataan SQL:
* | select date_format (date_parse(time,'%Y-%m-%d %H:%i:%S'), '%Y-%m-%d') as day, count(1) as uv group by day order by day asc