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

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

学習内容:

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

    dotnet new console -n BigQueryCsharpDemo
    

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

    Welcome to .NET 6.0!
    ---------------------
    SDK Version: 6.0.407
    ...
    The template "Console App" was created successfully.
    ...
    

    このコマンドにより、BigQueryCsharpDemo という名前の C# プロジェクトと Program.cs という名前のファイルが作成されます。

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

    cloudshell workspace BigQueryCsharpDemo
    

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

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

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

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

    cd BigQueryCsharpDemo
    
  3. C# 用の BigQuery クライアント ライブラリをインストールします。

    dotnet add package Google.Cloud.BigQuery.V2
    

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

    Determining projects to restore...
    Writing /tmp/tmpF7EKSd.tmp
    ...
    info : Writing assets file to disk.
    ...
    

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

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

  1. 変数 GOOGLE_PROJECT_ID を値 GOOGLE_CLOUD_PROJECT に設定し、変数をエクスポートします。

    export GOOGLE_PROJECT_ID=$GOOGLE_CLOUD_PROJECT
    
  2. [エディタを開く] をクリックします。

  3. [Explorer] ペインで BIGQUERYCSHARPDEMO プロジェクトを探します。

  4. Program.cs ファイルをクリックして開きます。

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

    
    using System;
    using Google.Cloud.BigQuery.V2;
    
    namespace GoogleCloudSamples
    {
        public class Program
        {
            public static void Main(string[] args)
            {
                string projectId = Environment.GetEnvironmentVariable("GOOGLE_PROJECT_ID");
                var client = BigQueryClient.Create(projectId);
                string query = @"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";
                var result = client.ExecuteQuery(query, parameters: null);
                Console.Write("\nQuery Results:\n------------\n");
                foreach (var row in result)
                {
                    Console.WriteLine($"{row["url"]}: {row["view_count"]} views");
                }
            }
        }
    }
    

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

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

    dotnet run
    

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

    Query Results:
    ------------
    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 C# クライアント ライブラリを使用した一般公開データセットに対するクエリが完了しました。

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

次のステップ

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

BigQuery をさらに活用する

クリーンアップ

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

プロジェクトを削除する

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

リソースを削除する

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

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

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

    rm -R BigQueryCsharpDemo
    

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