クエリおよび分析中に、システムは、タイムスタンプを特定の形式に変換するなど、ログ内の時間フィールドを処理する必要がある場合があります。 このトピックでは、時間フィールドを変換する方法の例を示します。
時間フィールド
時間フィールド
__time__: Simple Log Serviceの予約フィールドです。 このフィールドには、APIまたはSDKを使用してログを書き込むときに指定したログ時間が記録されます。 このフィールドを使用して、ログを送信、クエリ、および分析できます。
rawログの元の時間フィールド: このフィールドは、ログが生成された時刻を記録します。
時間フィールドを変換するメソッド
__time__ をタイムスタンプに変換
from_unixtime関数を使用して、__time__
フィールドの値をUNIX timestampからtimestamp値を返すことができるdatetime式に変換できます。
* | select from_unixtime(__time__)
__time__を特定の形式で表示する
date_format関数を使用して、タイムスタンプ値を返すことができるdatetime式から __time__
フィールドの値を特定の形式に変換できます。
* | select date_format(__time__, '%Y-%m-%d %H:%i:%S')
ログの元の時間フィールドを特定の形式に変換する
次の手順を実行して、ログの元の時間フィールドを文字列から特定の形式に変換できます。
date_parse関数を使用して、時間フィールドを文字列から
Year-Month-Day Hour:Minute:Second
形式に変換します。date_format関数を使用して、
年-月-日
部分を抽出します。group by
を使用してデータをグループ化します。
サンプルログ:
__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:00
サンプル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