bqrun


Namebqrun JSON
Version 3.0.0 PyPI version JSON
download
home_pagehttps://github.com/hotoku/bqrun
SummaryQuery runner for BigQuery. It automatically analyzes dependencies and runs only necessary queries in parallel.
upload_time2024-01-21 01:30:04
maintainer
docs_urlNone
authorYasunori Horikoshi
requires_python>=3.7,<4.0
licenseMIT
keywords bigquery
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # bqrun

## 概要
ディレクトリの中にあるsqlファイルを全て読み、依存関係を解析し(あるファイルAで`select .. from`されているテーブルが別のファイルBで`create table`されていた場合、
BはAより前に実行される)、順番に実行するためのMakefileを作成、makeを実行する。

## 外部依存
1. docker
2. graphviz(dotコマンド)

## インストール
1. `pip install bqrun`

## 前提
1. 1つのディレクトリの中に全てのSQLファイルが入っていること
1. 全てのSQLファイルは拡張子`.sql`を持つこと、かつ、クエリ以外に`.sql`で終わるファイルがないこと
## 大まかな動作
1. 全SQLファイルを読んで依存関係を解析、依存関係に従ったMakefileを作成する
1. このMakefileにより、各ファイルに対し以下のようなコマンドが実行される
    1. 各SQLファイルを`bq query`に投げる
    1. `done.<base name>` というファイルを作成する(`<base name>`は、ファイル名の拡張子以外)
1. 2回目以降の実行では、各ファイルについて`done.<base name>`ファイルのタイムスタンプと、依存先のファイルのタイムスタンプを比較し再実行が必要な部分だけが実行される

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

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/hotoku/bqrun",
    "name": "bqrun",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7,<4.0",
    "maintainer_email": "",
    "keywords": "bigquery",
    "author": "Yasunori Horikoshi",
    "author_email": "horikoshi.et.al@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/5a/ca/046595be500049e4dfed9fc58c83d046d6f8bd517b821b3f37294d04b5a7/bqrun-3.0.0.tar.gz",
    "platform": null,
    "description": "# bqrun\n\n## \u6982\u8981\n\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4e2d\u306b\u3042\u308bsql\u30d5\u30a1\u30a4\u30eb\u3092\u5168\u3066\u8aad\u307f\u3001\u4f9d\u5b58\u95a2\u4fc2\u3092\u89e3\u6790\u3057\uff08\u3042\u308b\u30d5\u30a1\u30a4\u30ebA\u3067`select .. from`\u3055\u308c\u3066\u3044\u308b\u30c6\u30fc\u30d6\u30eb\u304c\u5225\u306e\u30d5\u30a1\u30a4\u30ebB\u3067`create table`\u3055\u308c\u3066\u3044\u305f\u5834\u5408\u3001\nB\u306fA\u3088\u308a\u524d\u306b\u5b9f\u884c\u3055\u308c\u308b\uff09\u3001\u9806\u756a\u306b\u5b9f\u884c\u3059\u308b\u305f\u3081\u306eMakefile\u3092\u4f5c\u6210\u3001make\u3092\u5b9f\u884c\u3059\u308b\u3002\n\n## \u5916\u90e8\u4f9d\u5b58\n1. docker\n2. graphviz\uff08dot\u30b3\u30de\u30f3\u30c9\uff09\n\n## \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\n1. `pip install bqrun`\n\n## \u524d\u63d0\n1. 1\u3064\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4e2d\u306b\u5168\u3066\u306eSQL\u30d5\u30a1\u30a4\u30eb\u304c\u5165\u3063\u3066\u3044\u308b\u3053\u3068\n1. \u5168\u3066\u306eSQL\u30d5\u30a1\u30a4\u30eb\u306f\u62e1\u5f35\u5b50`.sql`\u3092\u6301\u3064\u3053\u3068\u3001\u304b\u3064\u3001\u30af\u30a8\u30ea\u4ee5\u5916\u306b`.sql`\u3067\u7d42\u308f\u308b\u30d5\u30a1\u30a4\u30eb\u304c\u306a\u3044\u3053\u3068\n## \u5927\u307e\u304b\u306a\u52d5\u4f5c\n1. \u5168SQL\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3093\u3067\u4f9d\u5b58\u95a2\u4fc2\u3092\u89e3\u6790\u3001\u4f9d\u5b58\u95a2\u4fc2\u306b\u5f93\u3063\u305fMakefile\u3092\u4f5c\u6210\u3059\u308b\n1. \u3053\u306eMakefile\u306b\u3088\u308a\u3001\u5404\u30d5\u30a1\u30a4\u30eb\u306b\u5bfe\u3057\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30b3\u30de\u30f3\u30c9\u304c\u5b9f\u884c\u3055\u308c\u308b\n    1. \u5404SQL\u30d5\u30a1\u30a4\u30eb\u3092`bq query`\u306b\u6295\u3052\u308b\n    1. `done.<base name>` \u3068\u3044\u3046\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3059\u308b(`<base name>`\u306f\u3001\u30d5\u30a1\u30a4\u30eb\u540d\u306e\u62e1\u5f35\u5b50\u4ee5\u5916)\n1. 2\u56de\u76ee\u4ee5\u964d\u306e\u5b9f\u884c\u3067\u306f\u3001\u5404\u30d5\u30a1\u30a4\u30eb\u306b\u3064\u3044\u3066`done.<base name>`\u30d5\u30a1\u30a4\u30eb\u306e\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u3068\u3001\u4f9d\u5b58\u5148\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u3092\u6bd4\u8f03\u3057\u518d\u5b9f\u884c\u304c\u5fc5\u8981\u306a\u90e8\u5206\u3060\u3051\u304c\u5b9f\u884c\u3055\u308c\u308b\n\n## \u30aa\u30d7\u30b7\u30e7\u30f3\n1. `-p=<num>`\u307e\u305f\u306f`--parallel=<num>`: \u4e26\u5217\u5b9f\u884c\u6570\u3092\u6307\u5b9a\uff08\u30c7\u30d5\u30a9\u30eb\u30c8\u306f8\uff09\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Query runner for BigQuery. It automatically analyzes dependencies and runs only necessary queries in parallel.",
    "version": "3.0.0",
    "project_urls": {
        "Homepage": "https://github.com/hotoku/bqrun",
        "Repository": "https://github.com/hotoku/bqrun"
    },
    "split_keywords": [
        "bigquery"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dd99bab92baaabbb02bf3660c406ae37f6cd37ec2e436280b4ec51cee1c82060",
                "md5": "696061a38d1fcd31f276ed1a8e28721d",
                "sha256": "4842bbf1884e187d4537a9a98933e96ed8fd56ee8b6e57f3c84b17d862c97217"
            },
            "downloads": -1,
            "filename": "bqrun-3.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "696061a38d1fcd31f276ed1a8e28721d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7,<4.0",
            "size": 6750,
            "upload_time": "2024-01-21T01:30:02",
            "upload_time_iso_8601": "2024-01-21T01:30:02.370941Z",
            "url": "https://files.pythonhosted.org/packages/dd/99/bab92baaabbb02bf3660c406ae37f6cd37ec2e436280b4ec51cee1c82060/bqrun-3.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5aca046595be500049e4dfed9fc58c83d046d6f8bd517b821b3f37294d04b5a7",
                "md5": "19fa589a3de50da77c3ccab4f5a22a88",
                "sha256": "b82854cae9bfb381595c82101872cbe05a9ed70cf1e6fc1496834d87dd3939a5"
            },
            "downloads": -1,
            "filename": "bqrun-3.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "19fa589a3de50da77c3ccab4f5a22a88",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7,<4.0",
            "size": 6085,
            "upload_time": "2024-01-21T01:30:04",
            "upload_time_iso_8601": "2024-01-21T01:30:04.145831Z",
            "url": "https://files.pythonhosted.org/packages/5a/ca/046595be500049e4dfed9fc58c83d046d6f8bd517b821b3f37294d04b5a7/bqrun-3.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-21 01:30:04",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "hotoku",
    "github_project": "bqrun",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "bqrun"
}
        
Elapsed time: 0.15735s