BigQueryのAppEngine RequestLogテーブルの1つでテーブルデコレータの範囲を使用しようとしています。ドキュメンテーションログエントリによれば、タイプはLogEntry https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntryのオブジェクトです。BigQueryテーブルデコレータとAppEngine RequestLogタイムスタンプ
timestampとreceiveTimestampという2つの列があります。最初の列の説明は、「ログエントリによって記述されたイベントが発生した時刻」と2番目の「ログエントリがスタックドライバのログによって受信された時刻」です。
タイムスタンプ列とテーブルデコレータ範囲を使用して、テーブルクエリテーブルのレコードの時間範囲と数を比較しようとしました。
私はタイムスタンプ列を使用しています。
SELECT count(*), MIN(timestamp), max(timestamp)
FROM [project_id:dataset.appengine_googleapis_com_request_log_20170622]
WHERE timestamp between timestamp('2017-06-22 01:00:00') and
date_add(timestamp('2017-06-22 01:00:00'), 1, 'hour')
クエリ結果。
1698320 | 2017-06-22 01:00:00 UTC | 2017-06-22 01:59:59 UTC
ここで私はテーブルデコレータレンジを使用しています。
--select timestamp_to_msec(timestamp('2017-06-22 01:00:00')) as time1,
timestamp_to_msec(date_add(timestamp('2017-06-22 01:00:00'), 1, 'hour')) as time2
SELECT count(*), min(timestamp), max(timestamp)
FROM [project_id:[email protected]000-1498096800000]
クエリ結果。
1534754 | 2017-06-22 00:40:45 UTC | 2017-06-22 01:35:59 UTC
私は同じ日付範囲と同じ数のレコードを取得しませんでした。これら3つのタイムスタンプのそれぞれの意味は?そして、どのようにテーブルデコレータのレンジがフードの下で動作しますか? (BigQueryはテーブル作成時にテーブルのスナップショットを作成します)