Pub/Sub から BigQuery へのストリーミング


このチュートリアルでは、Pub/Sub Topic to BigQuery テンプレートを使用し、Google Cloud コンソールまたは Google Cloud CLI で Dataflow テンプレート ジョブを作成して実行します。このチュートリアルでは、Pub/Sub から JSON エンコードのメッセージを読み取り、Google 提供のストリーミング テンプレートを拡張するユーザー定義関数(UDF)を使用し、Apache Beam SDK でメッセージ データを変換し、その結果を BigQuery テーブルに書き込むストリーミング パイプラインの例を見ていきます。

このワークフローのメリットは、UDF を使用して Google 提供のストリーミング テンプレートを拡張できることです。Pub/Sub からデータを pull して BigQuery に出力する必要があるが、テンプレートを拡張する必要がない場合は、より簡単なワークフローで Pub/Sub から BigQuery へのサブスクリプション機能を使用できます。

ストリーミング分析とデータ統合パイプラインでは、Pub/Sub を使用してデータの取り込みと配信を行います。Pub/Sub を使用すると、イベント プロデューサー(パブリッシャー)とコンシューマー(サブスクライバー)のシステムを作成できます。パブリッシャーはイベントを Pub/Sub サービスに非同期に送信します。Pub/Sub は、イベントに反応する必要のあるすべてのサービスにイベントを配信します。

Dataflow は、ストリーミング(リアルタイム)モードとバッチモードの両方でデータの変換と拡充を行うためのフルマネージド型のサービスです。Apache Beam SDK を使用して受信データを変換し、変換したデータを出力する簡素化されたパイプライン開発環境を提供します。

データ変換を提供するために Dataflow を構成することなくメッセージを直接 BigQuery に書き込む場合は、Pub/Sub BigQuery サブスクリプションを使用します。

目標

  • Pub/Sub トピックを作成する。
  • テーブルとスキーマを使用して BigQuery データセットを作成する。
  • Google 提供のストリーミング テンプレートを使用して、Pub/Sub トピックから BigQuery にデータをストリーミングする。
  • Google 提供のストリーミング テンプレートを拡張するユーザー定義関数(UDF)を作成します。

費用

このドキュメントでは、課金対象である次の Google Cloud コンポーネントを使用します。

  • Dataflow
  • Pub/Sub
  • Cloud Storage
  • Cloud Scheduler
  • BigQuery

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。 新しい Google Cloud ユーザーは無料トライアルをご利用いただける場合があります。

このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。

始める前に

このセクションでは、プロジェクトを選択して API を有効にし、ユーザー アカウントとワーカー サービス アカウントに適切なロールを付与する方法について説明します。本番環境では、オーナーロールを付与しないでください。代わりに、Dataflow 固有の適切な権限とロールを使用してください。

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Dataflow, Compute Engine, Logging, Cloud Storage, Cloud Storage JSON, BigQuery, Pub/Sub, Resource Manager, and Cloud Scheduler API を有効にします。

    API を有効にする

  5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  6. Google Cloud プロジェクトで課金が有効になっていることを確認します

  7. Dataflow, Compute Engine, Logging, Cloud Storage, Cloud Storage JSON, BigQuery, Pub/Sub, Resource Manager, and Cloud Scheduler API を有効にします。

    API を有効にする

  8. このチュートリアルの手順を完了するには、ユーザー アカウントにサービス アカウント ユーザーのロールが必要です。Compute Engine のデフォルトのサービス アカウントには、Dataflow ワーカーDataflow 管理者、Pub/Sub 編集者、ストレージ オブジェクト管理者、BigQuery データ編集者のロールが必要です。Google Cloud コンソールで必要なロールを追加する手順は次のとおりです。

    1. Google Cloud コンソールの [IAM] ページに移動します。
      [IAM] に移動
    2. プロジェクトを選択します。
    3. ユーザー アカウントを含む行で、プリンシパルを編集します」をクリックし、[ 別のロールを追加] をクリックします。
    4. プルダウン リストで、[サービス アカウント ユーザー] のロールを選択します。
    5. Compute Engine のデフォルトのサービス アカウントを含む行で、プリンシパルを編集します」をクリックし、[ 別のロールを追加] をクリックします。
    6. プルダウン リストで、[Dataflow ワーカー] ロールを選択します。
    7. この手順を Dataflow 管理者Pub/Sub 編集者ストレージ オブジェクト管理者BigQuery データ編集者ロールに対して繰り返し、[保存] をクリックします。

      ロール付与の詳細については、コンソールを使用して IAM ロールを付与するをご覧ください。

  9. Google Cloud CLI を使用してこのチュートリアルを行う場合は、Google Cloud CLI をインストールして初期化します。Google Cloud コンソールを使用してこのチュートリアルを行う場合は、この手順をスキップできます。
  10. このチュートリアルで Google Cloud CLI を使用している場合は、Google アカウントの認証情報を作成します。

    gcloud auth application-default login

サンプルソースとシンクを作成する

このセクションでは、次のものを作成します。

  • Pub/Sub を使用したストリーミング データのソース
  • BigQuery に読み込むデータのデータセット

Cloud Storage バケットを作成する

まず、Google Cloud コンソールまたは Google Cloud CLI を使用して Cloud Storage バケットを作成します。このバケットは、Dataflow パイプラインによって一時ストレージの場所として使用されます。

コンソール

  1. Google Cloud コンソールで、Cloud Storage の [ブラウザ] ページに移動します。

    [Cloud Storage] ページに移動

  2. [バケットを作成] をクリックします。

  3. [バケットの作成] ページの [バケットに名前を付ける] で、バケット名の要件を満たす名前を入力します。Cloud Storage のバケット名は、グローバルに一意にする必要があります。他のオプションは選択しないでください。

  4. [作成] をクリックします。

gcloud

gsutil mb コマンドを使用します。

gsutil mb gs://BUCKET_NAME

BUCKET_NAME は、バケットの命名要件を満たす Cloud Storage バケットの名前に置き換えます。Cloud Storage のバケット名は、グローバルに一意にする必要があります。

Pub/Sub トピックとサブスクリプションを作成する

Pub/Sub トピックを作成し、そのトピックに対するサブスクリプションを作成します。

コンソール

トピックを作成するには、次の手順を行います。

  1. Google Cloud コンソールで、Pub/Sub の [トピック] ページに移動します。

    [トピック] に移動

  2. [トピックを作成] をクリックします。

  3. [トピック ID] フィールドに、トピックの ID を入力します。トピックの指定方法については、トピックまたはサブスクリプションの指定方法のガイドラインをご覧ください。

  4. [デフォルトのサブスクリプションを追加する] オプションは、そのまま保持します。他のオプションは選択しないでください。

  5. [トピックを作成] をクリックします。

gcloud

トピックを作成するには、gcloud pubsub topics create コマンドを実行します。サブスクリプションの指定方法については、トピックまたはサブスクリプションの指定方法のガイドラインをご覧ください。

gcloud pubsub topics create TOPIC_ID

TOPIC_ID は、Pub/Sub トピックの名前に置き換えます。

トピックのサブスクリプションを作成するには、gcloud pubsub subscriptions create コマンドを実行します。

gcloud pubsub subscriptions create --topic TOPIC_ID SUBSCRIPTION_ID

SUBSCRIPTION_ID は、Pub/Sub サブスクリプションの名前に置き換えます。

Cloud Scheduler ジョブを作成して実行する

2 つの Cloud Scheduler ジョブを作成して実行します。1 つは Pub/Sub トピックに「高評価」を公開するジョブ、もう 1 つは「否定的な評価」を公開するジョブです。

コンソール

高評価の Cloud Scheduler ジョブを作成します。

  1. コンソールで [Cloud Scheduler] ページにアクセスします。

    [Cloud Scheduler] ページに移動

  2. [ジョブの作成] ボタンをクリックします。

  3. positive-ratings-publisher という名前を入力します。

  4. ジョブを実行するリージョンを選択します。このチュートリアルでコマンドを実行する場所に近接した Dataflow リージョンを選択します。REGION 変数の値は有効なリージョン名にする必要があります。リージョンとロケーションの詳細については、Dataflow のロケーションをご覧ください。

  5. ジョブの [頻度] を unix-cron 形式 * * * * * で指定します。

    詳細については、cron ジョブ スケジュールの構成をご覧ください。

  6. タイムゾーンを選択します。

  7. [続行] をクリックします。

  8. [ターゲット] プルダウンから [Pub/Sub] を選択します。

  9. プルダウンからトピック名を選択します。

  10. ターゲットに送信する次のメッセージ文字列を追加します。 {"url": "https://beam.apache.org/", "review": "positive"}

  11. [作成] をクリックします。

これで、1 分ごとに Pub/Sub トピックに肯定的な評価のメッセージを送信する cron ジョブが作成されました。Cloud Functions の関数は、このトピックにサブスクライブされています。

否定的な評価の Cloud Scheduler ジョブを作成します。

  1. コンソールの [Cloud Scheduler] ページで、[ジョブを作成] ボタンをクリックします。

  2. negative-ratings-publisher という名前を入力します。

  3. ジョブを実行するリージョンを選択します。

  4. ジョブの [頻度] を unix-cron 形式 */2 * * * * で指定します。

    詳細については、cron ジョブ スケジュールの構成をご覧ください。

  5. タイムゾーンを選択します。

  6. [続行] をクリックします。

  7. [ターゲット] プルダウンから [Pub/Sub] を選択します。

  8. プルダウンからトピック名を選択します。

  9. ターゲットに送信する次のメッセージ文字列を追加します。 {"url": "https://beam.apache.org/", "review": "negative"}

  10. [作成] をクリックします。

これで、否定的な評価のメッセージを Pub/Sub トピックに 2 分ごとに送信する cron ジョブが作成されました。Cloud Functions の関数は、このトピックにサブスクライブされています。

gcloud

  1. このチュートリアルの Cloud Scheduler ジョブを作成するには、gcloud scheduler jobs create コマンドを使用します。このステップでは、1 分間に 1 つのメッセージを公開する肯定的な評価のパブリッシャーが作成されます。

    gcloud scheduler jobs create pubsub positive-ratings-publisher \
      --schedule="* * * * *" \
      --location=DATAFLOW_REGION \
      --topic="TOPIC_ID" \
      --message-body='{"url": "https://beam.apache.org/", "review": "positive"}'
    

    DATAFLOW_REGION は、Dataflow ジョブをデプロイするリージョン エンドポイントに置き換えます。このチュートリアルでコマンドを実行する場所に近接した Dataflow リージョンを選択します。REGION 変数の値は有効なリージョン名にする必要があります。リージョンとロケーションの詳細については、Dataflow のロケーションをご覧ください。

  2. Cloud Scheduler ジョブを開始するには、gcloud scheduler jobs run コマンドを使用します。

    gcloud scheduler jobs run --location=DATAFLOW_REGION positive-ratings-publisher
    
  3. 2 分ごとに 1 つのメッセージを公開する否定的な評価のパブリッシャーを作成して実行します。このステップでは、2 分ごとに 1 つのメッセージを公開する否定的な評価のパブリッシャーが作成されます。

    gcloud scheduler jobs create pubsub negative-ratings-publisher \
      --schedule="*/2 * * * *" \
      --location=DATAFLOW_REGION  \
      --topic="TOPIC_ID" \
      --message-body='{"url": "https://beam.apache.org/", "review": "negative"}'
    
  4. 2 番目の Cloud Scheduler ジョブを開始します。

    gcloud scheduler jobs run --location=DATAFLOW_REGION negative-ratings-publisher
    

BigQuery データセットを作成する

Pub/Sub トピックに適したスキーマを使用して、BigQuery のデータセットとテーブルを作成します。

コンソール

BigQuery データセットを作成します。

  1. Google Cloud コンソールで [BigQuery] ページを開きます。

    [BigQuery] ページに移動

  2. [エクスプローラ] パネルで、データセットを作成するプロジェクトを選択します。

  3. アクション オプションを開いて、[データセットを作成] をクリックします。

  4. [データセットを作成] ページで次の操作を行います。

    • [データセット ID] に「tutorial_dataset」と入力します。
    • [データのロケーション] で、データセットの地理的位置を選択します。データセットの作成後はロケーションを変更できません。

    • 他のオプションは選択しないでください。

    • [データセットを作成] をクリックします。

スキーマを使用して BigQuery テーブルを作成します。

  1. [エクスプローラ] パネルでプロジェクトを開いて、tutorial_dataset データセットを選択します。

  2. アクション オプションを開いて、[開く] をクリックします。

  3. 詳細パネルで [テーブルを作成] をクリックします。

  4. [テーブルの作成] ページの [ソース] セクションで、[空のテーブル] を選択します。

  5. [テーブルの作成] ページの [送信先] セクションで、次の操作を行います。

    • [データセット名] が tutorial_dataset に設定されていることを確認します。
    • [テーブル名] フィールドに「tutorial」と入力します。
    • [テーブルタイプ] が [ネイティブ テーブル] に設定されていることを確認します。
  6. [スキーマ] セクションにスキーマ定義を入力します。[テキストとして編集] を有効にし、以下のテーブル スキーマを JSON 配列として入力します。

    [
      {
        "mode": "NULLABLE",
        "name": "url",
        "type": "STRING"
      },
      {
        "mode": "NULLABLE",
        "name": "review",
        "type": "STRING"
      }
    ]
    
  7. [パーティションとクラスタの設定] はデフォルト値(No partitioning)のままにします。

  8. [詳細オプション] セクションの [暗号化] の値は、デフォルト(Google-managed key)のままにします。Dataflow では、デフォルトの処理として保存されているお客様のコンテンツを暗号化しています。

  9. [テーブルを作成] をクリックします。

gcloud

bq mk コマンドを使用して、データセットを作成します。

bq --location=DATAFLOW_REGION mk \
PROJECT_ID:tutorial_dataset

PROJECT_ID は、プロジェクトのプロジェクト ID に置き換えます。

データセットにテーブルを作成するには、--table フラグまたは -t フラグを指定した bq mk コマンドを使用します。

bq mk \
    --table \
    PROJECT_ID:tutorial_dataset.tutorial \
    url:STRING,review:STRING

ユーザー定義関数(UDF)を作成する

JavaScript UDF を作成して、Google 提供の Pub/Sub Topic to BigQuery テンプレートを拡張することもできます。UDF を使用すると、現在テンプレートにないデータ変換を定義し、テンプレートに挿入できます。

次の UDF は、受信する評価の URL を検証します。URL のない評価や URL が正しくない評価は、同じプロジェクトとデータセット内で _error_records のサフィックスを持つ別の出力テーブル(デッドレター テーブルとも呼ばれます)に転送されます。

JavaScript

/**
 * User-defined function (UDF) to transform events
 * as part of a Dataflow template job.
 *
 * @param {string} inJson input Pub/Sub JSON message (stringified)
 */
 function process(inJson) {
    const obj = JSON.parse(inJson);
    const includePubsubMessage = obj.data && obj.attributes;
    const data = includePubsubMessage ? obj.data : obj;

    if (!data.hasOwnProperty('url')) {
      throw new Error("No url found");
    } else if (data.url !== "https://beam.apache.org/") {
      throw new Error("Unrecognized url");
    }

    return JSON.stringify(obj);
  }

この JavaScript スニペットを、先ほど作成した Cloud Storage バケットに保存します。

パイプラインを実行する

Google が提供する Pub/Sub Topic to BigQuery テンプレートを使用して、ストリーミング パイプラインを実行します。このパイプラインは Pub/Sub トピックから受信データを取得し、BigQuery データセットに出力します。

コンソール

  1. Google Cloud コンソールで、Dataflow の [ジョブ] ページに移動します。

    [ジョブ] に移動

  2. [テンプレートからジョブを作成] をクリックします。

  3. Dataflow ジョブの [ジョブ名] を入力します。

  4. [Dataflow テンプレート] で、[Pub/Sub Topic to BigQuery] テンプレートを選択します。

  5. [Input Pub/Sub topic] に、次のように入力します。

    projects/PROJECT_ID/topics/TOPIC_ID
    

    PROJECT_ID は、BigQuery データセットを作成したプロジェクトのプロジェクト ID に置き換えます。TOPIC_ID は、Pub/Sub トピックの名前に置き換えます。

  6. [BigQuery output table] に、次のテキストを入力します。

    PROJECT_ID:tutorial_dataset.tutorial
    
  7. [一時的な場所] に、次のように入力します。

    gs://BUCKET_NAME/temp/
    

    BUCKET_NAME を Cloud Storage バケットの名前に置き換えます。temp フォルダには、ステージングされたパイプライン ジョブなどの一時ファイルが格納されます。

  8. 必要に応じて、[オプション パラメータを表示] をクリックしてジョブの UDF を追加します。

    [JavaScript UDF path in Cloud Storage] に、次のように入力します。

    gs://BUCKET_NAME/dataflow_udf_transform.js
    

    [JavaScript UDF name] に、次のように入力します。

    process
    
  9. [ジョブを実行] をクリックします。

テンプレートがメッセージをデッドレター テーブルに転送できるかどうかを確認するには、URL のない評価、または誤った URL を含む評価を公開します。

  1. Pub/Sub の [トピック] ページに移動します。

  2. TOPIC_ID をクリックします。

  3. [メッセージ] に移動します。

  4. [メッセージをパブリッシュ] をクリックします。

  5. [メッセージ本文] に、URL がない評価または誤った URL を含む評価を入力します。次に例を示します。

    {"url": "https://beam.apache.org/documentation/sdks/java/", "review": "positive"}
    
  6. [公開] をクリックします。

gcloud

シェルまたはターミナルでテンプレートを実行するには、gcloud dataflow jobs run コマンドを使用します。

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/PubSub_to_BigQuery \
    --region DATAFLOW_REGION \
    --staging-location gs://BUCKET_NAME/temp \
    --parameters \
inputTopic=projects/PROJECT_ID/topics/TOPIC_ID,\
outputTableSpec=PROJECT_ID:tutorial_dataset.tutorial

JOB_NAME は、一意の名前で置き換えます。

必要に応じて、UDF でテンプレートを実行するには、次のコマンドを使用します。

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/PubSub_to_BigQuery \
    --region DATAFLOW_REGION \
    --staging-location gs://BUCKET_NAME/temp \
    --parameters \
inputTopic=projects/PROJECT_ID/topics/TOPIC_ID,\
outputTableSpec=PROJECT_ID:tutorial_dataset.tutorial,\
javascriptTextTransformGcsPath=gs://BUCKET_NAME/dataflow_udf_transform.js,\
javascriptTextTransformFunctionName=process

テンプレートがメッセージをデッドレター テーブルに転送できるかどうかを確認するには、URL のない評価、または誤った URL を含む評価を公開します。例:

gcloud pubsub topics publish TOPIC_ID \
  --message='{"url": "https://beam.apache.org/documentation/sdks/java/", "review": "positive"}'

結果を表示する

BigQuery テーブルに書き込まれたデータを表示します。

コンソール

  1. Google Cloud コンソールで [BigQuery] ページに移動します。
    [BigQuery] ページに移動

  2. [クエリエディタ] ペインで、次のクエリを実行します。

    SELECT * FROM `PROJECT_ID.tutorial_dataset.tutorial`
    LIMIT 1000
    

    テーブルにデータが表示されるまで、最大で 1 分かかることがあります。

    クエリは、過去 24 時間以内にテーブルに追加された行を返します。標準 SQL を使用してクエリを実行することもできます。

    デッドレター テーブルに一部のエラーレコードが書き込まれることが予想される場合は、クエリ内でテーブル名 tutorial_error_records を使用します。次に例を示します。

    SELECT * FROM `PROJECT_ID.tutorial_dataset.tutorial_error_records`
    LIMIT 1000
    

gcloud

次のクエリを実行して、BigQuery の結果を確認します。

bq query --use_legacy_sql=false 'SELECT * FROM `'"PROJECT_ID.tutorial_dataset.tutorial"'`'

このパイプラインの実行中は、1 分おきに BigQuery テーブルに新しい行が追加されます。

デッドレター テーブルに一部のエラーレコードが書き込まれることが予想される場合は、クエリ内でテーブル名 tutorial_error_records を使用します。次に例を示します。

SELECT * FROM `PROJECT_ID.tutorial_dataset.tutorial_error_records`
LIMIT 1000

クリーンアップ

このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。

プロジェクトを削除する

課金を停止する最も簡単な方法は、チュートリアル用に作成した Google Cloud プロジェクトを削除することです。

  1. Google Cloud コンソールで、[リソースの管理] ページに移動します。

    [リソースの管理] に移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

個々のリソースの削除

Dataflow パイプラインを停止する

コンソール

  1. Google Cloud コンソールで、Dataflow の [ジョブ] ページに移動します。

    [ジョブ] に移動

  2. 停止するジョブをクリックします。

    ジョブを停止するには、ジョブのステータスが「実行中」でなければなりません。

  3. ジョブの詳細ページで、[停止] をクリックします。

  4. [キャンセル] をクリックします。

  5. 選択を確定するには、[ジョブの停止] をクリックします。

gcloud

Dataflow ジョブをキャンセルするには、gcloud dataflow jobs コマンドを使用します。

gcloud dataflow jobs list \
  --filter 'NAME=JOB_NAME AND STATE=Running' \
  --format 'value(JOB_ID)' \
  --region "DATAFLOW_REGION" \
  | xargs gcloud dataflow jobs cancel --region "DATAFLOW_REGION"

Google Cloud プロジェクトのリソースをクリーンアップする

コンソール

  1. Cloud Scheduler ジョブを削除します。
    1. Google Cloud コンソールの [Cloud Scheduler] ページに移動します。
      [Scheduler] ページに移動
    2. ジョブを選択します。
    3. ページの上部にある [削除] ボタンをクリックして、削除操作を確定します。
  2. Pub/Sub トピックとサブスクリプションを削除します。
    1. Google Cloud コンソールで Pub/Sub の [トピック] ページに移動します。
      Pub/Sub の [トピック] ページに移動
    2. 作成したトピックを選択します。
    3. [削除] をクリックして、トピックを永続的に削除します。
    4. Google Cloud コンソールで Pub/Sub の [サブスクリプション] ページに移動します。
    5. トピックで作成したサブスクリプションを選択します。
    6. [削除] をクリックして、サブスクリプションを永続的に削除します。
  3. BigQuery テーブルとデータセットを削除します。
    1. Google Cloud コンソールで [BigQuery] ページに移動します。
      BigQuery に移動
    2. [エクスプローラ] パネルで、プロジェクトを展開します。
    3. 削除するデータセットの横にある [アクションを表示] をクリックし、[削除] をクリックします。
  4. Cloud Storage バケットを削除します。
    1. Google Cloud コンソールで、[Cloud Storage] ページに移動します。
      [Cloud Storage] ページに移動
    2. 削除するバケットを選択し、[削除] をクリックして、指示に沿って操作します。

gcloud

  1. Cloud Scheduler のジョブを削除するには、gcloud scheduler jobs delete コマンドを使用します。

    gcloud scheduler jobs delete negative-ratings-publisher --location=DATAFLOW_REGION
    
    gcloud scheduler jobs delete positive-ratings-publisher --location=DATAFLOW_REGION
    
  2. Pub/Sub サブスクリプションとトピックを削除するには、gcloud pubsub subscriptions delete コマンドと gcloud pubsub topics delete コマンドを使用します。

    gcloud pubsub subscriptions delete SUBSCRIPTION_ID
    gcloud pubsub topics delete TOPIC_ID
    
  3. BigQuery テーブルを削除するには、bq rm コマンドを使用します。

    bq rm -f -t PROJECT_ID:tutorial_dataset.tutorial
    
  4. BigQuery データセットを削除します。データセットだけで料金は発生しません。

  5. Cloud Storage バケットを削除するには、gsutil rm コマンドを使用します。バケットだけでは料金は発生しません。

認証情報を取り消す

  1. 作成した認証情報を取り消して、ローカル認証情報ファイルを削除します。

    gcloud auth application-default revoke
  2. (省略可)gcloud CLI から認証情報を取り消します。

    gcloud auth revoke
  3. プロジェクトを残しておく場合は、Compute Engine のデフォルトのサービス アカウントに付与したロールを取り消します。

  4. コンソール

    1. Google Cloud コンソールの [IAM] ページに移動します。

      [IAM] に移動
    2. プロジェクト、フォルダ、または組織を選択します。
    3. アクセス権を取り消すプリンシパルを含む行を探します。その行の [プリンシパルを編集] をクリックします。
    4. 取り消すロールごとに [削除]()ボタンをクリックし、[保存] をクリックします。

    gcloud

    次の IAM ロールごとに次のコマンドを 1 回実行します。

    • roles/dataflow.admin
    • roles/dataflow.worker
    • roles/bigquery.dataEditor
    • roles/pubsub.editor
    • roles/storage.objectAdmin
    gcloud projects remove-iam-policy-binding PROJECT_ID \
          --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \
          --role=ROLE

次のステップ