0

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はテーブル作成時にテーブルのスナップショットを作成します)

答えて

1

テーブルデコレータのドキュメントenter link description hereは、スナップショットを使用すると説明しています。「テーブルのスナップショットを参照します」 - データがbigqueryに取り込まれた時刻を示します。ただし、テーブル内のタイムスタンプフィールドとはまったく関係ありません。フィールドがbigqueryに取り込まれた時刻ではなく、関連するイベントが発生した時刻を表すためです。

関連する問題