BigQuery Python クライアント ライブラリを使用して一般公開データセットに対してクエリを実行する

BigQuery Python クライアント ライブラリを使用して一般公開データセットに対してクエリを実行する

学習内容:

  1. Google Cloud プロジェクトで Cloud Shell を有効にする。
  2. Cloud Shell エディタを開く。
  3. クエリ用のファイルを準備します。
  4. BigQuery で一般公開データセットに対してクエリを実行する
  5. クリーンアップする。

完了までの推定時間:

[開始] をクリックして開始します。

Google Cloud プロジェクトで Cloud Shell を有効にする

  1. プロジェクトの課金を有効にしない場合は、BigQuery サンドボックス内で作業を行う状態に自動的に設定されます。BigQuery サンドボックスを使用すると、料金なしで一部の BigQuery 機能を試してみることができます。このドキュメントの対象範囲を超えてプロジェクトを使用する予定がない場合は、BigQuery サンドボックスを使用することをおすすめします。

  2. [Cloud Shell をアクティブにする] をクリックします。表示

Cloud Shell エディタを開く方法を確認するには、[次へ] をクリックします。

Cloud Shell エディタを開く

  1. Cloud Shell で、新しい Python プロジェクトとファイルを作成します。

    mkdir bigquery-python-quickstart \
        && touch \
        bigquery-python-quickstart/app.py
    

    このコマンドにより、bigquery-python-quickstart という名前の Python プロジェクトと app.py という名前のファイルが作成されます。

  2. Cloud Shell エディタを開きます。

    cloudshell workspace bigquery-python-quickstart
    

クエリ用のファイルを準備する方法を確認するには、[次へ] をクリックします。

クエリ用のファイルを準備する

  1. Cloud Shell エディタでターミナルを開くには、[ターミナルを開く] をクリックします。

  2. プロジェクト ディレクトリを開きます。

    cd bigquery-python-quickstart
    
  3. Python 用の BigQuery クライアント ライブラリをインストールします。

    pip install --upgrade google-cloud-bigquery
    

    出力は次のようになります。出力を簡略化するためにいくつかの行を省略しています。

    Installing collected packages: google-cloud-bigquery
    ...
    Successfully installed google-cloud-bigquery-3.9.0
    ...
    

BigQuery で一般公開データセットに対してクエリを実行する方法を確認するには、[次へ] をクリックします。

BigQuery で一般公開データセットに対してクエリを実行する

  1. [エディタを開く] をクリックします。

  2. [Explorer] ペインで BIGQUERY-PYTHON-QUICKSTART プロジェクトを探します。

  3. app.py ファイルをクリックして開きます。

  4. Stack Overflow で閲覧回数が上位 10 件のページとそれらのページの閲覧数を返すクエリを bigquery-public-data.stackoverflow データセットに対して作成するには、次のコードを app.py ファイルにコピーします。

    from google.cloud import bigquery
    
    
    
    def query_stackoverflow() -> None:
        client = bigquery.Client()
        results = client.query_and_wait(
            """
            SELECT
              CONCAT(
                'https://stackoverflow.com/questions/',
                CAST(id as STRING)) as url,
              view_count
            FROM `bigquery-public-data.stackoverflow.posts_questions`
            WHERE tags like '%google-bigquery%'
            ORDER BY view_count DESC
            LIMIT 10"""
        )  # Waits for job to complete.
    
        for row in results:
            print("{} : {} views".format(row.url, row.view_count))
    
    
    if __name__ == "__main__":
        query_stackoverflow()

  5. [ターミナルを開く] をクリックします。

  6. ターミナルで app.py スクリプトを実行します。Cloud Shell を承認するように求めるプロンプトが表示され、利用規約に同意する場合は、[承認] をクリックします。

    python app.py
    

    次のような結果になります。

    https://stackoverflow.com/questions/35159967 : 170023 views
    https://stackoverflow.com/questions/22879669 : 142581 views
    https://stackoverflow.com/questions/10604135 : 132406 views
    https://stackoverflow.com/questions/44564887 : 128781 views
    https://stackoverflow.com/questions/27060396 : 127008 views
    https://stackoverflow.com/questions/12482637 : 120766 views
    https://stackoverflow.com/questions/20673986 : 115720 views
    https://stackoverflow.com/questions/39109817 : 108368 views
    https://stackoverflow.com/questions/11057219 : 105175 views
    https://stackoverflow.com/questions/43195143 : 101878 views
    

BigQuery Python クライアント ライブラリを使用した一般公開データセットに対するクエリが正常に完了しました。

アカウントに課金されないようにする方法と、次のステップの詳細については、[次へ] をクリックします。

次のステップ

BigQuery で作成したリソースを保持してさらに活用するか、課金が発生しないようにするためクリーンアップします。

BigQuery をさらに活用する

クリーンアップ

Google Cloud アカウントに課金されないようにするには、 Google Cloud プロジェクトを削除するか、このチュートリアルで作成したリソースを削除します。

プロジェクトを削除する

BigQuery について学習するために新しいプロジェクトを作成し、作成したプロジェクトが不要になった場合は、プロジェクトを削除します。プロジェクトを削除すると、プロジェクト内のすべての内容が削除され、カスタム プロジェクト ID は失われます。

リソースを削除する

既存のプロジェクトを使用した場合は、作成した bigquery-python-quickstart フォルダを削除します。

  1. Cloud Shell でディレクトリを上に移動します。

    cd ..
    
  2. 作成したリソースを削除します。

    rm -R bigquery-python-quickstart
    

    -R フラグを指定するとフォルダ内のすべてのアセットが削除されます。