Skip to main content

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を実行する。

外部依存

  1. docker
  2. graphviz(dotコマンド)

インストール

  1. pip install bqrun

前提

  1. 1つのディレクトリの中に全てのSQLファイルが入っていること
  2. 全てのSQLファイルは拡張子.sqlを持つこと、かつ、クエリ以外に.sqlで終わるファイルがないこと

大まかな動作

  1. 全SQLファイルを読んで依存関係を解析、依存関係に従ったMakefileを作成する
  2. このMakefileにより、各ファイルに対し以下のようなコマンドが実行される
    1. 各SQLファイルをbq queryに投げる
    2. done.<base name> というファイルを作成する(<base name>は、ファイル名の拡張子以外)
  3. 2回目以降の実行では、各ファイルについてdone.<base name>ファイルのタイムスタンプと、依存先のファイルのタイムスタンプを比較し再実行が必要な部分だけが実行される

オプション

  1. -p=<num>または--parallel=<num>: 並列実行数を指定(デフォルトは8)

Project details


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)

Uploaded Source

Built Distribution

bqrun-3.0.0-py3-none-any.whl (6.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page