LoginSignup
5
3

More than 1 year has passed since last update.

BigQuery標準SQLで期間を指定してAppEngineのログを検索する

Last updated at Posted at 2017-11-27

背景

私は普段AppEngineでWebアプリを作っていますが、ログはStackDriver LoggingからBigQueryへストリーミングインポートさせています。
3ヶ月ほど前のログを漁りたくなり、当然StackDriver側には残っていないためBigQueryを探したのですが書き方が割と面倒だったので備忘としてここに残します。

クエリー内容

timestampのカラムに対してWHEREする際、FORMAT_TIMESTAMP()で好きな形のテキストに直してからそれに対してBETWEENで範囲を指定します。
2017年9月16日の05:00:00〜07:00:00までのログが欲しい場合、以下のようになります。

SELECT
  *
FROM
  `appengine_request.appengine_googleapis_com_request_log_2017091*`
WHERE
  FORMAT_TIMESTAMP("%F %T", timestamp, "+09:00")
  BETWEEN "2017-09-16 05:00:00" AND "2017-09-16 07:00:00"
ORDER BY
  timestamp ASC

注意点

  • BigQueryの基本ですが、今回はログ量がそう多くない事が予めわかっていたのであまり気にせずSELECT *にしました。大量のログがある合はスキャンの課金が嵩まないように絞りましょう
    • FROMの参照範囲も今回はいい加減に絞ったのでこれと同様
  • AppEngineから流し込むとtimestampはUTCで記録されているので "+09:00" を付けて調整します

備考

  • アドホックなクエリーなのでBigQueryのWeb画面からクエリーを流しました
5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3