RSS DEV コミュニティ

BigQueryのスケジュールクエリーで@run_dateに注意してください – 特にKST/JSTの場合!

Google BigQueryでは、@run_date関数は、クエリーの参照日付を実行時刻に自動的に設定しますが、これはScheduled Queries UIから手動で実行される場合にのみ有効です。スケジュールされた時間に自動的に実行される場合、タイムゾーンを明示的に設定しないと、クエリーはUTCで実行されます。これにより、特に午前0時UTCを跨ぐクエリーでは、@run_dateがローカル時間の前の日付に評価されるという予期せぬ動作が生じます。特に、UTC+9の国々である韓国や日本ではこの問題が深刻です。 この問題を避けるため、クエリーをスケジュールする際にはタイムゾーンを明示的に設定することが不可欠です。また、@run_timeを使用することで、タイムゾーン付きの正確な時間を制御することができます。@run_timeを使用する場合、DATE()で囲む必要はありません。タイムゾーンの設定例として、DATE(@run_time, 'Asia/Seoul')やDATE(@run_time, 'Asia/Tokyo')があります。タイムゾーンを意識していない多くのデータマートでは修正が必要ですが、タイムゾーンを明示的に設定することでこのような問題を防ぐことができます。
favicon
dev.to
Be Careful with @run_date in BigQuery Scheduled Queries – Especially in KST/JST!
Create attached notes ...