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

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

学習内容:

  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 で、新しい PHP プロジェクトとファイルを作成します。

    mkdir bigquery-php-quickstart \
        && touch \
        bigquery-php-quickstart/app.php
    

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

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

    cloudshell workspace bigquery-php-quickstart
    

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

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

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

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

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

    composer require google/cloud-bigquery
    

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

    Running composer update google/cloud-bigquery
    Loading composer repositories with package information
    Updating dependencies
    ...
    No security vulnerability advisories found
    Using version ^1.24 for google/cloud-bigquery
    

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

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

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

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

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

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

    <?php
    # ...
    
    require __DIR__ . '/vendor/autoload.php';
    
    use Google\Cloud\BigQuery\BigQueryClient;
    
    
    $bigQuery = new BigQueryClient();
    $query = <<<ENDSQL
    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;
    ENDSQL;
    $queryJobConfig = $bigQuery->query($query);
    $queryResults = $bigQuery->runQuery($queryJobConfig);
    
    if ($queryResults->isComplete()) {
        $i = 0;
        $rows = $queryResults->rows();
        foreach ($rows as $row) {
            printf('--- Row %s ---' . PHP_EOL, ++$i);
            printf('url: %s, %s views' . PHP_EOL, $row['url'], $row['view_count']);
        }
        printf('Found %s row(s)' . PHP_EOL, $i);
    } else {
        throw new Exception('The query failed to complete');
    }

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

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

    php app.php
    

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

    --- Row 1 ---
    url: https://stackoverflow.com/questions/35159967, 170023 views
    --- Row 2 ---
    url: https://stackoverflow.com/questions/22879669, 142581 views
    --- Row 3 ---
    url: https://stackoverflow.com/questions/10604135, 132406 views
    --- Row 4 ---
    url: https://stackoverflow.com/questions/44564887, 128781 views
    --- Row 5 ---
    url: https://stackoverflow.com/questions/27060396, 127008 views
    --- Row 6 ---
    url: https://stackoverflow.com/questions/12482637, 120766 views
    --- Row 7 ---
    url: https://stackoverflow.com/questions/20673986, 115720 views
    --- Row 8 ---
    url: https://stackoverflow.com/questions/39109817, 108368 views
    --- Row 9 ---
    url: https://stackoverflow.com/questions/11057219, 105175 views
    --- Row 10 ---
    url: https://stackoverflow.com/questions/43195143, 101878 views
    Found 10 row(s)
    

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

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

次のステップ

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

BigQuery をさらに活用する

クリーンアップ

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

プロジェクトを削除する

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

リソースを削除する

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

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

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

    rm -R bigquery-php-quickstart
    

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