新しいことにはウェルカム

技術 | 電子工作 | ガジェット | ゲーム のメモ書き

BigQueryの少し凝った使い方メモ(スケジュールされたクエリ)

普段Google BigQueryでは簡単な集計SQLしか使っていないのですが、集計SQL以外にも色々便利な機能があります。

ただ、使用頻度が高くないので、いざ使おうとするとマニュアルを探すところから始まるので、自分用に簡単な使い方をまとめておこうと思います。

ここではスケジュールされたクエリをまとめました。

スケジュールされたクエリ

  • 指定した日時に、指定したクエリを実行して、指定したテーブルに書き込んでくれる
  • 実行された日時をパラメータでクエリに渡すことができる
  • 過去に遡って実行できる
  • 他のスケジュールされたクエリをシーケンシャルに呼び出すことはできない
    • パイプラインが作れない
  • 実行時間のパラメータはコンソールでは使用できない
    • コンソールでクエリの動作確認ができない

  • 実行時のパラメータ
    • @run_time実行時時刻(UTC)
    • @run_date実行時日付(UTC)
      • ローカルタイムで作業するなら使用することはほとんどない
SELECT
  @run_time AS query_run_time_utc,
  @run_date AS query_run_date_utc

読み込み時間テーブルへの書き込み

  • テーブル末に${run_time|"%Y%m%d"}を付けると実行日パーティションに書き込まれる

  • JSTの昨日のパーティションに書き込む
    • +9(JST) - 24(昨日) = -15
      • 「実行日時-15時間」の日付パーティションに書き込む
    • table_name${run_time-15h|"%Y%m%d"}
  • テーブルを上書きにする

パーティションテーブルへの書き込み

  • パーティショニングフィールドを指定する
  • テーブルを上書きにする

その他

  • 他のスケジュールされたクエリをシーケンシャルに呼び出すことはできない
    • パイプラインが作れない
  • 実行時間のパラメータはコンソールでは使用できない
    • コンソールでクエリの動作確認ができない

これらの仕様のため、あまり使い勝手はよくない。

シーケンシャル実行の代案として、同等の「クエリ実行・テーブル書き込み」を行うクエリを用意し、時間を引数に取るストアドプロシージャからクエリを呼ぶようにする。そして、スケジュールされたクエリからは、@run_timeを引数に渡してストアドプロシージャを呼ぶようにする。

関連カテゴリー記事

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com

www.kwbtblog.com