Query runner for BigQuery. It automatically analyzes dependencies and runs only necessary queries in parallel.
Project description
bqrun
概要
ディレクトリの中にあるsqlファイルを全て読み、依存関係を解析し(あるファイルAでselect .. from
されているテーブルが別のファイルBでcreate table
されていた場合、
BはAより前に実行される)、順番に実行するためのMakefileを作成、makeを実行する。
外部依存
- docker
- graphviz(dotコマンド)
インストール
pip install bqrun
前提
- 1つのディレクトリの中に全てのSQLファイルが入っていること
- 全てのSQLファイルは拡張子
.sql
を持つこと、かつ、クエリ以外に.sql
で終わるファイルがないこと
大まかな動作
- 全SQLファイルを読んで依存関係を解析、依存関係に従ったMakefileを作成する
- このMakefileにより、各ファイルに対し以下のようなコマンドが実行される
- 各SQLファイルを
bq query
に投げる done.<base name>
というファイルを作成する(<base name>
は、ファイル名の拡張子以外)
- 各SQLファイルを
- 2回目以降の実行では、各ファイルについて
done.<base name>
ファイルのタイムスタンプと、依存先のファイルのタイムスタンプを比較し再実行が必要な部分だけが実行される
オプション
-p=<num>
または--parallel=<num>
: 並列実行数を指定(デフォルトは8)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bqrun-3.0.0.tar.gz
(6.1 kB
view hashes)
Built Distribution
bqrun-3.0.0-py3-none-any.whl
(6.8 kB
view hashes)