Skip to content

hotoku/bqrun

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published