このドキュメントでは、BigQuery サブスクリプションの作成方法について説明します。BigQuery サブスクリプションを作成するには、 Google Cloud コンソール、Google Cloud CLI、クライアント ライブラリ、または Pub/Sub API を使用できます。
始める前に
このドキュメントを読む前に、次の内容をよく理解しておいてください。
- サブスクリプションの仕組み。 
- BigQuery サブスクリプションのワークフロー。 
- メッセージ エラーを処理するデッドレター トピックを構成する方法。 
BigQuery サブスクリプションを作成する前に、Pub/Sub と BigQuery に精通しているだけでなく、次の前提条件を満たしていることを確認してください。
- BigQuery テーブルが存在している。あるいは、このドキュメントの後半のセクションで説明するように、BigQuery サブスクリプションの作成時に作成することもできます。 
- Pub/Sub トピックのスキーマと BigQuery テーブルの間の互換性。互換性のない BigQuery テーブルを追加すると、互換性に関連するエラー メッセージが出力されます。詳細については、スキーマの互換性をご覧ください。 
必要なロールと権限
ロールと権限に関するガイドラインは次の一覧に示すとおりです。
- サブスクリプションを作成するには、プロジェクト レベルでアクセス制御を構成する必要があります。 
- このセクションで後述するように、サブスクリプションとトピックが異なるプロジェクトにある場合は、リソースレベルの権限も必要です。 
- BigQuery サブスクリプションを作成するには、Pub/Sub サービス エージェントまたはカスタム サービス アカウントに、特定の BigQuery テーブルへの書き込み権限が付与されている必要があります。これらの権限を付与する方法について詳しくは、このドキュメントの次のセクションをご覧ください。 
- プロジェクト内の BigQuery サブスクリプションを構成して、別のプロジェクトの BigQuery テーブルに書き込むことができます。 
    
      BigQuery サブスクリプションの作成に必要な権限を取得するには、プロジェクトに対する Pub/Sub 編集者 (roles/pubsub.editor)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには、BigQuery サブスクリプションの作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
BigQuery サブスクリプションを作成するには、次の権限が必要です。
- 
                サブスクリプションから pull する:
                  pubsub.subscriptions.consume
- 
                サブスクリプションを作成する:
                  pubsub.subscriptions.create
- 
                サブスクリプションを削除する:
                  pubsub.subscriptions.delete
- 
                サブスクリプションを取得する:
                  pubsub.subscriptions.get
- 
                サブスクリプションを一覧表示する:
                  pubsub.subscriptions.list
- 
                サブスクリプションを更新する:
                  pubsub.subscriptions.update
- 
                サブスクリプションをトピックに接続する:
                  pubsub.topics.attachSubscription
- 
                サブスクリプションの IAM ポリシーを取得する:
                  pubsub.subscriptions.getIamPolicy
- 
                サブスクリプションの IAM ポリシーを構成する:
                  pubsub.subscriptions.setIamPolicy
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
あるプロジェクトのプリンシパルが別のプロジェクトで BigQuery サブスクリプションを作成できるようにするには、両方のプロジェクトでそのプリンシパルに Pub/Sub 編集者(roles/pubsub.editor)ロールを付与する必要があります。これにより、新しい BigQuery サブスクリプションを作成して元のトピックに適用するために必要な権限が付与されます。トピックに対する Pub/Sub 編集者(roles/pubsub.editor)ロールを使用すると、別のプロジェクトの BigQuery サブスクリプションをトピックに接続することもできます。
サービス アカウントにロールを割り当てる
一部の Google Cloud サービスには、サービスがリソースにアクセスできるようにする Google Cloud管理のサービス アカウントがあります。これらのサービス アカウントは、サービス エージェントと呼ばれます。Pub/Sub は、プロジェクトごとに service-project-number@gcp-sa-pubsub.iam.gserviceaccount.com 形式のサービス エージェントを作成し、維持します。
Pub/Sub サービス エージェントまたはカスタム サービス アカウントに BigQuery テーブルへの書き込み権限を付与するかを選択できます。
Pub/Sub サービス エージェントに権限を付与すると、プロジェクトでサブスクリプションを作成する権限を持つユーザーは、BigQuery テーブルに書き込むことができます。BigQuery テーブルへの書き込み権限をより細かく設定する場合は、代わりにカスタム サービス アカウントを構成します。
BigQuery IAM の詳細については、BigQuery のロールと権限をご覧ください。
Pub/Sub サービス エージェントに BigQuery のロールを割り当てる
Pub/Sub サービス エージェントを使用して BigQuery サブスクリプションを作成する場合は、特定の BigQuery テーブルへの書き込みとテーブル メタデータの読み取りを行う権限が必要です。
Pub/Sub サービス エージェントに BigQuery データ編集者(roles/bigquery.dataEditor)ロールを付与します。権限は、個々のテーブルまたはプロジェクト全体に付与できます。
テーブル
- Google Cloud コンソールで、[BigQuery Studio] に移動します。 
- [エクスプローラ] ペインの [名前とラベルでフィルタ] というラベルの付いた検索ボックスに、テーブルの名前を入力して Enter キーを押します。 
- 権限を付与するテーブルをクリックします。 
- テーブルで、 [その他の操作] > [共有] > [権限] を選択します。 - または、表をクリックし、メインページで [共有] > [権限] をクリックします。 - [共有権限] ウィンドウが開きます。 
- [プリンシパルを追加] をクリックします。 
- [プリンシパルを追加] に、サブスクリプションを含むプロジェクトの Pub/Sub サービス エージェントの名前を入力します。サービス エージェントの形式は - service-project-number@gcp-sa-pubsub.iam.gserviceaccount.comです。たとえば、- project-number=112233445566を使用するプロジェクトの場合、サービス エージェントの形式は- service-112233445566@gcp-sa-pubsub.iam.gserviceaccount.comです。
- [ロールを選択] プルダウンに「 - BigQuery」と入力し、[BigQuery データ編集者] ロールを選択します。
- [保存] をクリックします。 
プロジェクト
- Google Cloud コンソールで、[IAM] ページに移動します。 
- [アクセス権を付与] をクリックします。 
- [プリンシパルを追加] セクションに、Pub/Sub サービス エージェントの名前を入力します。サービス エージェントの形式は - service-project-number@gcp-sa-pubsub.iam.gserviceaccount.comです。たとえば、- project-number=112233445566を使用するプロジェクトの場合、サービス エージェントの形式は- service-112233445566@gcp-sa-pubsub.iam.gserviceaccount.comです。
- [ロールの割り当て] セクションで、[別のロールを追加] をクリックします。 
- [ロールを選択] プルダウンに「 - BigQuery」と入力し、[BigQuery データ編集者] ロールを選択します。
- [保存] をクリックします。 
カスタム サービス アカウントに BigQuery のロールを割り当てる
BigQuery テーブルへの書き込みにカスタム サービス アカウントを使用する場合は、次の権限を設定する必要があります。
- カスタム サービス アカウントには、特定の BigQuery テーブルへの書き込みとテーブル メタデータの読み取りを行う権限が必要です。
- Pub/Sub サービス エージェントには、カスタム サービス アカウントに対する iam.serviceAccounts.getAccessToken権限が必要です。
- サブスクリプションを作成するユーザーには、カスタム サービス アカウントに対する iam.serviceAccounts.actAs権限が必要です。
サービス アカウントを作成して権限を付与する手順は次のとおりです。
- カスタム サービス アカウントを作成します。サービス アカウントは、サブスクリプションと同じプロジェクトに存在する必要があります。 
- カスタム サービス アカウントに BigQuery データ編集者( - roles/bigquery.dataEditor)ロールを付与します。- サービス アカウントには、プロジェクト内の単一のテーブルまたはプロジェクト内のすべてのテーブルに対する権限を付与できます。これを行うには、Pub/Sub サービス エージェントに BigQuery のロールを割り当てるの該当するセクションをご覧ください。この手順では、Pub/Sub サービス エージェントのメールアドレスをカスタム サービス アカウントのメールアドレスに置き換えます。 
- Pub/Sub サービス エージェントに、カスタム サービス アカウントまたはプロジェクト内のすべてのサービス アカウントに対する - iam.serviceAccounts.getAccessToken権限を付与します。この権限を付与するには、Pub/Sub サービス エージェントに- roles/iam.serviceAccountTokenCreatorロールを付与します。- 要件に基づいて適切な方法を選択します。 
サービス アカウント
- Google Cloud コンソールで、[サービス アカウント] ページに移動します。 
- [フィルタ] にカスタム サービス アカウントの名前を入力します。 
- リストからサービス アカウントを選択します。 
- [アクセス権を持つプリンシパル] をクリックします。 
- [アクセス権を付与] をクリックします。 
- [プリンシパルを追加] セクションに、サブスクリプションを含むプロジェクトの Pub/Sub サービス エージェントの名前を入力します。サービス エージェントの形式は - service-project-number@gcp-sa-pubsub.iam.gserviceaccount.comです。たとえば、- project-number=112233445566を使用するプロジェクトの場合、サービス エージェントの形式は- service-112233445566@gcp-sa-pubsub.iam.gserviceaccount.comです。
- [ロールを選択] プルダウンで、 - Service Accountを入力し、[サービス アカウント トークン作成者] ロールを選択します。
- [保存] をクリックします。 
プロジェクト
- Google Cloud コンソールで、[IAM] ページに移動します。 
- [アクセス権を付与] をクリックします。 
- [プリンシパルを追加] セクションに、カスタム サービス アカウントの名前を入力します。 
- [ロールの割り当て] セクションで、[別のロールを追加] をクリックします。 
- [ロールを選択] プルダウンで、 - Service Accountを入力し、[サービス アカウント トークン作成者] ロールを選択します。
- [保存] をクリックします。 
カスタム サービス アカウントを作成した場合は、必要な iam.serviceAccounts.actAs 権限がすでに付与されています。サービス アカウントに対する権限を他のユーザーに付与する必要がある場合:
- Google Cloud コンソールで、[サービス アカウント] ページに移動します。 
- [フィルタ] にカスタム サービス アカウントの名前を入力します。 
- リストからサービス アカウントを選択します。 
- [アクセス権を持つプリンシパル] をクリックします。 
- [アクセス権を付与] をクリックします。 
- [プリンシパルを追加] セクションに、アクセス権を付与するアカウントの名前を入力します。 
- [ロールを選択] プルダウンで、 - Service Accountを入力し、[サービス アカウント ユーザー] ロールを選択します。
- また、BigQuery テーブルが Apache Iceberg テーブルの場合は、Cloud Storage バケットにアクセスするために、Pub/Sub サービス アカウントにストレージ管理者ロール( - roles/storage.admin)を付与します。
- [保存] をクリックします。 
BigQuery サブスクリプション プロパティ
BigQuery のサブスクリプションを構成するときに、次のプロパティを指定できます。
共通の特徴
すべてのサブスクリプションで設定できる共通のサブスクリプション プロパティについて学習します。
トピック スキーマを使用する
このオプションにより、Pub/Sub は、サブスクリプションが接続されている Pub/Sub トピックのスキーマを使用できます。さらに、Pub/Sub はメッセージ内のフィールドを BigQuery テーブル内の対応する列に書き込みます。
このオプションを使用する場合は、以下の追加要件を確認してください。
- トピック スキーマ内のフィールドと BigQuery スキーマ内のフィールドは、同じ名前でなければならず、その型には相互に互換性が必要です。 
- トピック スキーマのオプション フィールドは BigQuery スキーマでも省略可能な必要があります。 
- トピック スキーマの必須フィールドは、BigQuery スキーマでは必要ありません。 
- BigQuery フィールドがトピック スキーマに存在しない場合、これらの BigQuery フィールドは - NULLABLEモードにする必要があります。
- トピック スキーマに、BigQuery スキーマに存在しない追加のフィールドがあり、このようなフィールドを削除できる場合は、[不明な項目を削除する] オプションを選択します。 
- サブスクリプション プロパティとして [トピック スキーマを使用する] または [テーブル スキーマを使用する] のいずれか 1 つのみを選択できます。 
[トピック スキーマを使用する] または [テーブル スキーマを使用する] オプションを選択しない場合は、BigQuery テーブルに、BYTES、STRING、または JSON 型の data という列があることを確認してください。Pub/Sub は、この BigQuery 列にメッセージを書き込みます。
Pub/Sub トピック スキーマまたは BigQuery テーブル スキーマの変更は、BigQuery テーブルに書き込まれたメッセージにすぐに反映されない場合があります。たとえば、[不明なフィールドを削除する] オプションが有効で、フィールドが Pub/Sub スキーマには存在するが BigQuery スキーマにはない場合、BigQuery テーブルに書き込まれるメッセージには、BigQuery スキーマに追加した後も、フィールドが含まれていない場合があります。最終的に、スキーマが同期され、後続のメッセージにこのフィールドが含まれます。
BigQuery サブスクリプションで [テーブル スキーマを使用する] オプションを使用すると、BigQuery 変更データ キャプチャ(CDC)も利用できます。CDC は、既存の行を処理して変更を適用し、BigQuery テーブルを更新します。
この機能の詳細については、変更データ キャプチャを使用してテーブル更新をストリーミングするをご覧ください。
BigQuery サブスクリプションでこの機能を使用する方法については、BigQuery の変更データ キャプチャをご覧ください。
テーブル スキーマを使用する
このオプションにより、Pub/Sub は BigQuery テーブルのスキーマを使用して、JSON メッセージのフィールドを対応する列に書き込むことができます。このオプションを使用する場合は、次の追加要件を確認してください。
- BigQuery テーブルの各列の名前には、英字(a ~ z、A ~ Z)、数字(0 ~ 9)、アンダースコア(_)のみを使用できます。 
- 公開されるメッセージは JSON 形式である必要があります。 - BigQuery テーブル列のデータ型が - JSONの場合、Pub/Sub メッセージ内の対応するフィールドは、エスケープされた文字列内の有効な JSON である必要があります。たとえば、- myDataという名前の列の場合、メッセージ フィールドは- "myData": "{\"key\":\"value\"}"にする必要があります。BigQuery は、有効な JSON が含まれていないメッセージを拒否します。
- 次の JSON 変換がサポートされています。 - JSON 型 - BigQuery のデータ型 - string- NUMERIC、- BIGNUMERIC、- DATE、- TIME、- DATETIME、または- TIMESTAMP- number- NUMERIC、- BIGNUMERIC、- DATE、- TIME、- DATETIME、または- TIMESTAMP- numberから- DATE、- DATETIME、- TIME、または- TIMESTAMPへの変換を使用する場合、数値はサポートされている表現に準拠している必要があります。
- numberから- NUMERICまたは- BIGNUMERICへのコンバージョンを使用する場合、値の適合率と範囲は、浮動小数点演算の IEEE 754 標準で許容されるものに制限されます。高い適合率やより広い範囲の値が必要な場合は、代わりに- stringから- NUMERICまたは- BIGNUMERICへのコンバージョンを使用します。
- stringから- NUMERICまたは- BIGNUMERICへのコンバージョンを使用する場合、Pub/Sub は文字列が人間が判読できる数値(- "123.124"など)であると想定します。文字列を人間が判読できる数値として処理できない場合、Pub/Sub は文字列を BigDecimalByteStringEncoder でエンコードされたバイトとして扱います。
 
- サブスクリプションのトピックにスキーマが関連付けられている場合、メッセージ エンコード プロパティは - JSONに設定する必要があります。
- メッセージに存在しない BigQuery フィールドがある場合、これらの BigQuery フィールドは - NULLABLEモードにする必要があります。
- BigQuery スキーマに存在しない追加のフィールドがメッセージにあり、このようなフィールドを削除できる場合は、[不明なフィールドを削除する] オプションを選択します。 
- サブスクリプション プロパティとして [トピック スキーマを使用する] または [テーブル スキーマを使用する] のいずれか 1 つのみを選択できます。 
[トピック スキーマを使用する] または [テーブル スキーマを使用する] オプションを選択しない場合は、BigQuery テーブルに、BYTES、STRING、または JSON 型の data という列があることを確認してください。Pub/Sub は、この BigQuery 列にメッセージを書き込みます。
BigQuery テーブル スキーマの変更は、BigQuery テーブルに書き込まれたメッセージにすぐに反映されない場合があります。 たとえば、[不明なフィールドを削除する] オプションが有効で、フィールドがメッセージには存在するが BigQuery スキーマにはない場合、BigQuery テーブルに書き込まれるメッセージには、BigQuery スキーマに追加した後も、フィールドが含まれていない場合があります。最終的に、スキーマが同期され、後続のメッセージにこのフィールドが含まれます。
BigQuery サブスクリプションで [テーブル スキーマを使用する] オプションを使用すると、BigQuery 変更データ キャプチャ(CDC)も利用できます。 CDC は、既存の行を処理して変更を適用し、BigQuery テーブルを更新します。
この機能の詳細については、変更データ キャプチャを使用してテーブル更新をストリーミングするをご覧ください。
BigQuery サブスクリプションでこの機能を使用する方法については、BigQuery 変更データ キャプチャをご覧ください。
不明な項目を削除する
このオプションは、[トピック スキーマを使用する] または [テーブル スキーマを使用する] オプションで使用します。このオプションを有効にすると、Pub/Sub は、トピック スキーマやメッセージには存在するが BigQuery スキーマには存在しないフィールドをドロップできます。BigQuery スキーマに含まれていないフィールドは、BigQuery テーブルにメッセージを書き込むときに削除されます。
[不明な項目を削除する] が設定されていない場合、デッドレター トピックを構成しない限り、余分な項目を含むメッセージは BigQuery に書き込まれず、サブスクリプション バックログに残ります。
[不明な項目を削除する] 設定は、Pub/Sub トピック スキーマまたは BigQuery テーブル スキーマのいずれにも定義されていないフィールドには影響しません。この場合、有効な Pub/Sub メッセージがサブスクリプションに配信されます。ただし、BigQuery にはこれらの追加フィールド用に定義された列がないため、これらのフィールドは BigQuery 書き込みプロセス中に削除されます。この動作を防ぐには、Pub/Sub メッセージに含まれるフィールドが BigQuery テーブル スキーマにも含まれていることを確認してください。
追加フィールドに関する動作は、使用する特定のスキーマタイプ(Avro、Protocol Buffer)とエンコード(JSON、バイナリ)によっても異なります。これらの要因が追加フィールドの処理にどのように影響するかについては、特定のスキーマタイプとエンコードのドキュメントをご覧ください。
メタデータを書き込む
このオプションを使用すると、Pub/Sub が各メッセージのメタデータを BigQuery テーブルの追加の列に書き込むようにする場合は、このオプションを選択できます。それ以外の場合、メタデータは BigQuery テーブルに書き込まれません。
[メタデータを書き込む] オプションを選択する場合は、BigQuery テーブルに次の表に示すフィールドがあることを確認してください。
メタデータを書き込むオプションを選択しない場合、use_topic_schema が true でない限り、宛先 BigQuery テーブルでは data フィールドのみが必要になります。[メタデータを書き込む] と [トピック スキーマを使用する] の両方のオプションを選択した場合、トピックのスキーマには、次の名前にメタデータ パラメータと一致する名前のフィールドを含めないでください。この制限には、スネークケース パラメータのキャメルケース バージョンが含まれます。
| パラメータ | |
|---|---|
| subscription_name | STRING サブスクリプションの名前。 | 
| message_id | STRING メッセージの ID | 
| publish_time | TIMESTAMP メッセージのパブリッシュ時刻。 | 
| data | BYTES、STRING、または JSON メッセージの本文。 
 | 
| attributes | STRING または JSON すべてのメッセージ属性を含む JSON オブジェクト。また、存在する場合、順序指定キーなど、Pub/Sub メッセージの一部である追加のフィールドも含まれています。 | 
BigQuery サブスクリプションの作成
次のサンプルでは、BigQuery 配信でサブスクリプションを作成する方法を示します。
コンソール
- Google Cloud コンソールで、[サブスクリプション] ページに移動します。 
- [サブスクリプションを作成] をクリックします。 
- [サブスクリプション ID] フィールドに名前を入力します。サブスクリプションの指定方法については、トピックまたはサブスクリプションの指定方法のガイドラインをご覧ください。 
- プルダウン メニューからトピックを選択するか、作成します。サブスクリプションがトピックからメッセージを受信します。 
- [BigQuery への書き込み] として [配信タイプ] を選択します。 
- BigQuery テーブルのプロジェクトを選択します。 
- 既存のデータセットを選択するか、新規に作成します。データセットの作成方法については、データセットの作成をご覧ください。 
- 既存のテーブルを選択するか、新規に作成します。テーブルの作成方法については、テーブルの作成をご覧ください。 
- メッセージ エラーを処理するには、デッドレターを有効にすることを強くおすすめします。詳細については、デッドレター トピックをご覧ください。 
- [作成] をクリックします。 
[トピック] ページからサブスクリプションを作成することもできます。このショートカットは、トピックとサブスクリプションの関連付けに使用できます。
- Google Cloud コンソールで、[トピック] ページに移動します。 
- サブスクリプションを作成するトピックの横にある more_vert をクリックします。 
- コンテキスト メニューから [サブスクリプションを作成] を選択します。 
- [BigQuery への書き込み] として [配信タイプ] を選択します。 
- BigQuery テーブルのプロジェクトを選択します。 
- 既存のデータセットを選択するか、新規に作成します。データセットの作成方法については、データセットの作成をご覧ください。 
- 既存のテーブルを選択するか、新規に作成します。データセットの作成方法については、テーブルの作成をご覧ください。 
- メッセージ エラーを処理するには、デッドレターを有効にすることを強くおすすめします。詳細については、デッドレター トピックをご覧ください。 
- [作成] をクリックします。 
gcloud
- 
  
    In the Google Cloud console, activate Cloud Shell. - Pub/Sub サブスクリプションを作成するには、 - gcloud pubsub subscriptions createコマンドを使用します。- gcloud pubsub subscriptions create SUBSCRIPTION_ID \ --topic=TOPIC_ID \ --bigquery-table=PROJECT_ID.DATASET_ID.TABLE_ID- カスタム サービス アカウントを使用する場合は、追加の引数として指定します。 - gcloud pubsub subscriptions create SUBSCRIPTION_ID \ --topic=TOPIC_ID \ --bigquery-table=PROJECT_ID.DATASET_ID.TABLE_ID --bigquery-service-account-email=SERVICE_ACCOUNT_NAME- 次のように置き換えます。 - SUBSCRIPTION_ID: サブスクリプションの ID を指定します。
- TOPIC_ID: トピックの ID を指定します。このトピックでは、スキーマが必要です。
- PROJECT_ID: プロジェクトの ID を指定します。
- DATASET_ID: 既存のデータセットの ID を指定します。データセットを作成するには、 データセットの作成をご覧ください。
- TABLE_ID: 既存のテーブルの ID を指定します。トピックにスキーマがない場合、このテーブルには- dataフィールドが必要です。テーブルを作成するには、スキーマ定義を含む空のテーブルを作成するをご覧ください。
- SERVICE_ACCOUNT_NAME: BigQuery への書き込みに使用するサービス アカウントの名前を指定します。
 
 C++このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の C++ の設定手順を実施してください。詳細については、Pub/Sub C++ API リファレンス ドキュメントをご覧ください。 C#このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の C# の設定手順を実施してください。詳細については、Pub/Sub C# API リファレンス ドキュメントをご覧ください。 Go次のサンプルでは、Go Pub/Sub クライアント ライブラリのメジャー バージョン(v2)を使用しています。まだ v1 ライブラリを使用している場合は、v2 への移行ガイドをご覧ください。v1 コードサンプルの一覧については、 非推奨のコードサンプルをご覧ください。 このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Go の設定手順を実施してください。詳細については、Pub/Sub Go API のリファレンス ドキュメントをご覧ください。 Javaこのサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Java の設定手順を実施してください。詳細については、Pub/Sub Java API のリファレンス ドキュメントをご覧ください。 Node.jsこのサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Node.js の設定手順を実施してください。詳細については、Pub/Sub Node.js API リファレンス ドキュメントをご覧ください。 Node.tsこのサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Node.js の設定手順を実施してください。詳細については、Pub/Sub Node.js API リファレンス ドキュメントをご覧ください。 PHPこのサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の PHP の設定手順を実施してください。詳細については、Pub/Sub PHP API リファレンス ドキュメントをご覧ください。 Pythonこのサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Python の設定手順を実施してください。詳細については、Pub/Sub Python API のリファレンス ドキュメントをご覧ください。 Ruby次のサンプルでは、Ruby Pub/Sub クライアント ライブラリ v3 を使用しています。v2 ライブラリをまだ使用している場合は、 v3 への移行ガイドをご覧ください。Ruby v2 のコードサンプルの一覧については、 非推奨のコードサンプルをご覧ください。 このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Ruby の設定手順を実施してください。詳細については、Pub/Sub Ruby API のリファレンス ドキュメントをご覧ください。 
BigQuery サブスクリプションをモニタリングする
Cloud Monitoring には、サブスクリプションをモニタリングするための指標が多数用意されています。
Pub/Sub に関連する使用可能なすべての指標のリストとその説明については、Pub/Sub のモニタリング ドキュメントをご覧ください。
Pub/Sub 内からサブスクリプションをモニタリングすることもできます。
次のステップ
- gcloudコマンドを使用して、サブスクリプションを作成または変更する。
- REST API を使用してサブスクリプションを作成または変更する。
- BigQuery サブスクリプションのトラブルシューティングを行う。