BigQuery Sharing の概要
BigQuery Sharing(旧 Analytics Hub)は、堅牢なセキュリティとプライバシー フレームワークを備え、組織の境界を越えてデータと分析情報を大規模に共有できるデータ交換プラットフォームです。Sharing を使用すると、さまざまなデータ プロバイダがキュレートしたデータ ライブラリを見つけてアクセスできます。このデータ ライブラリには、Google 提供のデータセットも含まれます。
たとえば、Sharing を使用すると、サードパーティと Google のデータセットを使用して分析と ML イニシアチブを強化できます。
Analytics Hub の Identity and Access Management(IAM)ロールを使用すると、次の Sharing タスクを実行できます。
- Analytics Hub パブリッシャーは、パートナー ネットワークまたは組織内でリアルタイムにデータを共有できます。リスティングにより、共有データを複製せずにデータを共有できます。また、Google Cloud Marketplace または独自のチャネルで収益化できます。詳細な権限を備えた分析可能なデータソースのカタログを構築し、適切なユーザーにデータを配信できます。また、サブスクリプションを管理し、リスティングの使用状況の指標を確認することもできます。 
- Analytics Hub のサブスクライバーは、探しているデータを見つけ、共有データを既存のデータと結合して、BigQuery の組み込み機能を使用できます。リスティングをサブスクライブすると、リンクされたデータセットまたはリンクされた Pub/Sub サブスクリプションがプロジェクトに作成されます。サブスクリプションを管理するには、サブスクライバーに関する関連情報が保存され、パブリッシャーとサブスクライバー間の接続を表すサブスクリプション リソースを使用します。 
- Analytics Hub の閲覧者は、BigQuery Sharing でアクセス権のある共有リソースを閲覧し、共有データへのアクセスをパブリッシャーにリクエストできます。Cloud Marketplace と統合された商用リスティングは、BigQuery Sharing と Cloud Marketplace の両方で検出できます。 
- Analytics Hub の管理者は、データ共有を有効にするデータ エクスチェンジを作成し、これらのデータ エクスチェンジにアクセスする権限をデータ パブリッシャーとサブスクライバーに付与できます。 
詳細については、Analytics Hub のロールを構成するをご覧ください。
アーキテクチャ
Sharing は、Google Cloud データリソースのパブリッシュ / サブスクライブ モデルに基づいて構築されており、ゼロコピーの共有をその場で行うことができます。Sharing では、次の Google Cloud リソースがサポートされています。
- BigQuery データセット
- Pub/Sub トピック
パブリッシャーのワークフロー
次の図は、パブリッシャーがアセットを共有する方法を示しています。
以降のセクションでは、このワークフローの機能について説明します。
共有リソース
共有リソースは、BigQuery Sharing でパブリッシャーが共有する単位です。
共有データセット
共有データセットは、BigQuery Sharing でのデータ共有単位である BigQuery データセットです。BigQuery のアーキテクチャでは、コンピューティングとストレージを分離しているため、データ パブリッシャーは、データのコピーを複数作成することなく、必要な数のサブスクライバーとデータセットを共有できます。パブリッシャーは、サブスクライバーに配信する、以下のサポート対象オブジェクトを含む BigQuery データセットをプロジェクトで作成するか、このようなオブジェクトを含む既存の BigQuery データセットを使用します。
- 承認済みビュー
- 承認済みデータセット
- BigQuery ML モデル
- 外部テーブル
- マテリアライズド ビュー
- 
共有データセットではすべてのルーティンがサポートされているわけではありません。詳細については、制限事項をご覧ください。 
共有データセットは、列レベルのセキュリティと行レベルのセキュリティをサポートします。
VPC Service Controls と Sharing に関する次の制限事項にご注意ください。
- パブリッシャーでは、VPC Service Controls 境界内のプロジェクトで共有データを公開しないことをおすすめします。プロジェクト内の共有データセットが VPC Service Controls の境界内にある場合、パブリッシャーのリスティングを正常にサブスクライブするには、交換プロジェクト(ホストされているリスティング)とすべてのサブスクライバーのプロジェクトの両方に適切な上り(内向き)ルールと下り(外向き)ルールが必要です。 
- Exchange 管理者は、Exchange プロジェクトを VPC Service Controls の境界内に配置しないことをおすすめします。これにより、公開ワークフローが中断される可能性があります。パブリッシャー プロジェクトとすべてのサブスクライバー プロジェクトで、リスティングを正常にサブスクライブするために上り(内向き)ルールと下り(外向き)ルールが必要になります。 
共有トピック
共有トピックは、BigQuery でのストリーミングのデータ共有の単位である Pub/Sub トピックです。パブリッシャーは、プロジェクトで Pub/Sub トピックを作成するか、既存の Pub/Sub を使用して、サブスクライバーに配信します。
データ エクスチェンジ
データ エクスチェンジとは、セルフサービスのデータ共有を可能にするコンテナです。これには、共有リソースを参照するリストが含まれます。パブリッシャーと管理者は、エクスチェンジ レベルとリスティング レベルでサブスクライバーにアクセス権を付与できます。この方法では、基になる共有リソースに対するアクセス権を明示的に付与する必要がなくなります。サブスクライバーは、データ エクスチェンジを閲覧し、アクセス可能なデータを検出して、共有リソースをサブスクライブできます。データ エクスチェンジを作成するときに、連絡先担当者のメールアドレスを割り当てることができます。連絡先担当者のメールアドレスは、データ エクスチェンジに関する質問や懸念事項について、ユーザーがデータ エクスチェンジのオーナーに連絡するための手段です。データ エクスチェンジには次のタイプがあります。
- 限定公開データ エクスチェンジ。デフォルトでは、データ エクスチェンジは限定公開であり、そのデータ エクスチェンジにアクセスできるユーザーまたはグループのみがリスティングを表示またはサブスクライブできます。
- 一般公開データ エクスチェンジ。デフォルトでは、データ エクスチェンジは限定公開であり、そのデータ エクスチェンジにアクセスできるユーザーまたはグループのみがリスティングを表示またはサブスクライブできます。ただし、データ エクスチェンジを一般公開することは可能です。一般公開データ エクスチェンジのリスティングは、Google Cloud ユーザー(allAuthenticatedUsers)が検出して登録できます。一般公開データ エクスチェンジの詳細については、データ エクスチェンジを一般公開するをご覧ください。
Analytics Hub 管理者のロールを使用すると、複数のデータ エクスチェンジを作成し、Sharing タスクを実行する他のユーザーを管理できます。
リスティング
リスティングは、パブリッシャーがデータ エクスチェンジに掲載する共有リソースへの参照です。パブリッシャーはリスティングを作成し、リソースの説明、実行するサンプルクエリまたはサンプル メッセージ データ、関連ドキュメントへのリンクなど、サブスクライバーによる共有リソースの利用をサポートする追加情報を指定できます。リスティングを作成するときに、メインの連絡先メールアドレス、プロバイダの名前と連絡先、パブリッシャーの名前と連絡先を割り当てることができます。メインの連絡先メールアドレスは、ユーザーがデータ エクスチェンジに関する質問や懸念事項をリスティングのオーナーに連絡するための手段です。プロバイダ名と連絡先は、リスティングのデータを最初に提供したエージェントの情報です。この情報の入力は任意です。パブリッシャーの名前と連絡先は、BigQuery Sharing で使用するデータを公開したエージェントです。この情報の入力は任意です。詳細については、リスティングを管理するをご覧ください。
リスティングには、そのリスティングに対して設定された Identity and Access Management(IAM)ポリシーと、そのリスティングを含むデータ エクスチェンジの種類に基づいて、次の 2 種類があります。
- 公開リスティング。すべての Google Cloud ユーザー(allAuthenticatedUsers)と共有されます。一般公開データ エクスチェンジのリスティングは、公開リスティングです。これらのリスティングでは、無料の一般公開リソースまたは商用リソースを参照できます。リスティングが商用リソースを参照する場合、サブスクライバーはデータ プロバイダに直接リスティングへのアクセスをリクエストできます。または、Google Cloud Marketplace に統合された商用リスティングをブラウジングして購入することもできます。
- 限定公開リスティング。個人またはグループと直接共有されます。たとえば、限定公開リスティングは、組織内の他の内部チームと共有するマーケティング指標データセットを参照できます。
サブスクライバーのワークフロー
次の図は、Analytics Hub サブスクライバーが共有リソースとやり取りする仕組みを示しています。
以降のセクションでは、サブスクライバーのワークフローの機能について説明します。
リンクされたリソース
リンクされたリソースは、BigQuery 共有リスティングに登録するときに作成され、サブスクライバーを基盤となる共有リソースに接続します。
リンク済みデータセット
リンク済みデータセットは、読み取り専用の BigQuery データセットです。これは、共有データセットへのポインタまたは参照として機能します。リスティングをサブスクライブすると、データセットのコピーではなく、リンク済みデータセットがプロジェクトに作成されます。したがって、サブスクライバーはデータを読み取ることはできますが、その中のオブジェクトを追加することや更新することはできません。リンク済みデータセットを通じて、テーブルやビューなどのオブジェクトをクエリすると、共有データセットのデータが返されます。リンク済みデータセットの詳細については、リスティングとデータ エクスチェンジの表示とサブスクライブをご覧ください。
リンク済みデータセットは、共有データセットのテーブルとビューへのアクセスが認可されています。リンク済みデータセットがあるサブスクライバーは、別途 Identity and Access Management の認可を得ることなく、共有データセットのテーブルとビューにアクセスします。
リンク済みデータセットは、次のオブジェクトをサポートしています。
リンクされた Pub/Sub サブスクリプション
共有トピックのあるリスティングをサブスクライブすると、リンクされた Pub/Sub サブスクリプションがサブスクライバー プロジェクトに作成されます。共有トピックまたはメッセージ データのコピーは作成されません。リンクされた Pub/Sub サブスクリプションのサブスクライバーは、共有トピックにパブリッシュされたメッセージにアクセスできます。サブスクライバーは、追加の Identity and Access Management の認可なしで、共有トピックのメッセージ データにアクセスします。パブリッシャーは、Pub/Sub で直接、または BigQuery Sharing のサブスクリプション管理機能でサブスクリプションを管理できます。リンクされた Pub/Sub サブスクリプションの詳細については、Pub/Sub を使用したストリームの共有をご覧ください。
下り(外向き)データ オプション(BigQuery 共有データセットのみ)
下り(外向き)データ オプションを使用すると、パブリッシャーは、サブスクライバーが BigQuery とリンクされたデータセットからデータをエクスポートすることを制限できます。
下り(外向き)データの制限は、リスティング、クエリの結果、またはその両方に対して有効にできます。下り(外向き)データが制限される場合、次の制限が適用されます。
- コピー、クローン、エクスポート、スナップショットの各 API は無効になります。 
- Google Cloud コンソールのコピー、クローン、エクスポート、スナップショットの各オプションは無効になります。 
- 制限付きのデータセットのテーブル エクスプローラへの接続は無効になります。 
- BigQuery Data Transfer Service が、制限付きのデータセットで無効になります。 
- CREATE VIEW AS SELECTステートメントと宛先ビューへの書き込みは無効になります。
リスティングを作成するときに、適切な下り(外向き)データ オプションを設定できます。
制限事項
Sharing には次の制限があります。
- 共有データセットに含めることができるリンク済みデータセットは、最大 1,000 個です。 
- 共有トピックに設定できる Pub/Sub サブスクリプションは最大 10,000 個です。この上限には、リンクされた Pub/Sub サブスクリプションと、BigQuery 共有の外部で作成された Pub/Sub サブスクリプション(Pub/Sub から直接作成したものなど)が含まれます。 
- リスティングを作成する際、サポートされていないリソースを含むデータセットは共有データセットとして選択できません。BigQuery Sharing がサポートする BigQuery オブジェクトの詳細については、このドキュメントの共有データセットをご覧ください。 
- リンクされたデータセット内の個々のテーブルに IAM ロールまたは IAM ポリシーを設定することはできません。代わりに、リンクされたデータセット レベルで適用します。 
- リンクされたデータセット内のテーブルに IAM タグを添付することはできません。代わりに、リンクされたデータセット レベルで適用します。 
- 2023 年 7 月 25 日より前に作成されたリンク済みデータセットは、サブスクリプション リソースでバックフィルされません。2023 年 7 月 25 日以降に作成されたサブスクリプションのみが API メソッドで機能します。 
- パブリッシャーには、BigQuery の次の相互運用性に関する制限が適用されます。 - サブスクライバーが、リンクされたデータセット内のビューにクエリを実行できるようにするには、ソース データセットを読み取る明示的な権限が付与されている必要があります。ビューへのアクセス権を付与するには、ベスト プラクティスとして、パブリッシャーが承認済みビューを作成することをおすすめします。承認済みビューを使用すると、サブスクライバーにビューデータへのアクセス権を付与し、基になるソースデータに対するアクセス権は付与しないようにできます。 
- クエリプランでは、共有ビュークエリとルーティン クエリ(プロジェクト ID を含む)と、承認済みビューに関連する他のデータセットが表示されます。共有ビューやルーティン クエリで機密情報とみなされる暗号鍵などを含めないでください。 
- 共有データセットは、Data Catalog(非推奨)と Dataplex Universal Catalog のインデックスに登録されます。サブスクライバーは、共有データセットの更新(テーブルやビューの追加など)を遅延なく利用できるようになります。ただし、たとえば共有データセットに 100 を超えるサブスクライバーやテーブルがある場合、更新がこれらのサービスのインデックスに登録されるまでに最大 18 時間かかることがあります。インデックス登録の遅延により、サブスクライバーは Google Cloud コンソールで更新されたリソースをすぐに検索できません。 
- 共有トピックは Data Catalog(非推奨)と Dataplex Universal Catalog にインデックス登録されますが、そのリソースタイプで絞り込むことはできません。 
- 一覧表示されたテーブルに行レベルのセキュリティ ポリシーまたはデータ マスキング ポリシーが設定されている場合、サブスクライバーがリンク済みデータセットに対してクエリジョブを実行するには、サブスクライバーが Enterprise または Enterprise Plus を購入している必要があります。エディションの詳細については、BigQuery エディションの概要をご覧ください。 
 
- サブスクライバーには、BigQuery の次の相互運用性に関する制限が適用されます。 - リンク済みデータセット内のテーブルを参照するマテリアライズド ビューはサポートされていません。 
- リンク済みデータセット テーブルのスナップショットの作成はサポートされていません。 
- リンク済みデータセットと 1 TB(物理ストレージ)を超える - JOINステートメントを含むクエリは失敗する可能性があります。この問題を解決するには、サポートにお問い合わせください。
- リンク済みデータセットのテーブル メタデータを表示するために、 - INFORMATION_SCHEMAビューでリージョン修飾子を使用することはできません。
- リンク済みデータセット内のルーティンをクエリする場合、ユーザー定義関数(SQL と JavaScript の両方の UDF)とテーブル関数ルーティン タイプのみをクエリできます。サポートされていないルーティン タイプに対してクエリを実行すると、次のエラー メッセージが表示されます。 - Querying routine type type is not yet supported on linked dataset dataset.
 
- 複数の地域を対象とするリスティングには、次の制限が適用されます。 - 複数のリージョンのリスティングは、共有データセットとリンクされたデータセット レプリカでのみサポートされています。共有 Pub/Sub トピックとサブスクリプションでは、複数のリージョンのリスティングはサポートされていません。
- データ クリーンルームでは、複数のリージョンのリスティングはサポートされていません。
- 複数のリージョンのリスティングは、BigQuery Omni リージョンではサポートされていません。
 
- 使用状況の指標には次の制限が適用されます。 - 2023 年 7 月 20 日より前にサブスクライブされたリスティングについては、使用状況の指標を取得できません。 
- num_rows_processedフィールドと- total_bytes_processedフィールドの外部テーブルの使用状況の指標に、不正確なデータが含まれる可能性があります。
- 消費量に関する使用状況の指標は、BigQuery ジョブによる使用のみでサポートされています。次のリソースを使用した消費量はサポートされていません。 
- ビューの使用状況の指標は、2024 年 4 月 22 日以降のクエリに対してのみ入力されます。 
- BigQuery では、リンクされた Pub/Sub サブスクリプションの使用状況の指標はキャプチャされません(引き続き Pub/Sub で使用状況を直接確認できます)。 
 
- Salesforce Data Cloud データのサブスクリプションには、次の制限が適用されます。 - Data Cloud のデータはビューとして共有されます。サブスクライバーは、ビューが参照している基盤となるテーブルにアクセスできません。
 
サポートされているリージョン
BigQuery Sharing は、次のリージョンとマルチリージョンでサポートされています。
リージョン
次の表に、共有が可能な南北アメリカのリージョンを示します。| リージョンの説明 | リージョン名 | 詳細 | 
|---|---|---|
| コロンバス(オハイオ州) | us-east5 | |
| ダラス | us-south1 |  | 
| アイオワ | us-central1 |  | 
| ラスベガス | us-west4 | |
| ロサンゼルス | us-west2 | |
| メキシコ | northamerica-south1 | |
| モントリオール | northamerica-northeast1 |  | 
| 北バージニア | us-east4 | |
| オクラホマ | us-central2 | |
| オレゴン | us-west1 |  | 
| ソルトレイクシティ | us-west3 | |
| サンパウロ | southamerica-east1 |  | 
| サンティアゴ | southamerica-west1 | |
| サウスカロライナ州 | us-east1 | |
| トロント | northamerica-northeast2 | |
| リージョンの説明 | リージョン名 | 詳細 | 
|---|---|---|
| デリー | asia-south2 | |
| 香港 | asia-east2 | |
| ジャカルタ | asia-southeast2 | |
| メルボルン | australia-southeast2 | |
| ムンバイ | asia-south1 | |
| 大阪 | asia-northeast2 | |
| ソウル | asia-northeast3 | |
| シンガポール | asia-southeast1 | |
| シドニー | australia-southeast1 | |
| 台湾 | asia-east1 | |
| 東京 | asia-northeast1 | 
| リージョンの説明 | リージョン名 | 詳細 | 
|---|---|---|
| ベルギー | europe-west1 |  | 
| ベルリン | europe-west10 | |
| フィンランド | europe-north1 |  | 
| フランクフルト | europe-west3 | |
| ロンドン | europe-west2 |  | 
| マドリッド | europe-southwest1 |  | 
| ミラノ | europe-west8 | |
| オランダ | europe-west4 |  | 
| パリ | europe-west9 |  | 
| トリノ | europe-west12 | |
| ワルシャワ | europe-central2 | |
| チューリッヒ | europe-west6 |  | 
| リージョンの説明 | リージョン名 | 詳細 | 
|---|---|---|
| ダンマーム | me-central2 | |
| ドーハ | me-central1 | |
| テルアビブ | me-west1 | 
| リージョンの説明 | リージョン名 | 詳細 | 
|---|---|---|
| ヨハネスブルグ | africa-south1 | 
マルチリージョン
次の表に、共有が可能なマルチリージョンを示します。| マルチリージョンの説明 | マルチリージョン名 | 
|---|---|
| 欧州連合の加盟国内のデータセンター1 | EU | 
| 米国内のデータセンター | US | 
1 EU マルチリージョン内のデータは europe-west2(ロンドン)や europe-west6(チューリッヒ)のデータセンターには保存されません。
オムニ リージョン
次の表に、共有が可能なオムニ リージョンを示します。| オムニ リージョンの説明 | オムニリージョンの名前 | |
|---|---|---|
| AWS | ||
| AWS - US East(北バージニア) | aws-us-east-1 | |
| AWS 米国西部(オレゴン) | aws-us-west-2 | |
| AWS - アジア太平洋(ソウル) | aws-ap-northeast-2 | |
| AWS - アジア太平洋(シドニー) | aws-ap-southeast-2 | |
| AWS - ヨーロッパ(アイルランド) | aws-eu-west-1 | |
| AWS - ヨーロッパ(フランクフルト) | aws-eu-central-1 | |
| Azure | ||
| Azure - East US 2 | azure-eastus2 | |
使用例
このセクションでは、BigQuery で Sharing を使用する方法の例を示します。
ある小売業者が、Forecasting という Google Cloud プロジェクトに、リアルタイムの需要予測データを保持しているとします。この需要予測データを、サプライ チェーン システム内で数百のベンダーと共有したいと考えています。BigQuery Sharing を使用してベンダーとデータを共有する方法は次のとおりです。
管理者
Forecasting プロジェクトのオーナーとして、最初に API を有効にしてから、プロジェクトでデータ エクスチェンジを管理するユーザーに Analytics Hub 管理者のロールを割り当てる必要があります。Analytics Hub 管理者のロールが付与されているユーザーは、管理者と呼ばれます。
この管理者は次のタスクを実行できます。
- 組織の Forecasting プロジェクトで、データ エクスチェンジの作成、更新、削除、共有を行います。 
- Analytics Hub 管理者ロールを使用して、他の管理者を管理します。 
- Analytics Hub パブリッシャーのロールを組織の従業員に付与して、パブリッシャーを管理します。一部の従業員にはリスティングの更新、削除、共有のみを許可し、作成は許可しない場合は、Analytics Hub リスティング管理者のロールを付与します。 
- すべてのベンダーからなる Google グループに Analytics Hub サブスクライバーのロールを付与して、サブスクライバーを管理します。一部のベンダーに、利用可能なエクスチェンジとリスティングに対する表示権限のみを付与する場合は、Analytics Hub 閲覧者のロールを付与します。これらのベンダーは、リスティングをサブスクライブできません。 
詳細については、データ エクスチェンジを管理するをご覧ください。
パブリッシャー
パブリッシャーは、Forecasting プロジェクトまたは別のプロジェクトで、データセットに対して次のリスティングを作成します。
- リスティング A: 需要予測データセット 1
- リスティング B: 需要予測データセット 2
- リスティング C: 需要予測データセット 3
データ プロバイダは、共有データセットの使用状況の指標を追跡できます。使用状況の指標には、次の情報が含まれます。
- 共有データセットに対して実行されるジョブ。
- サブスクライバーのプロジェクトと組織ごとの共有データセットの消費量の詳細。
- ジョブによって処理された行数とバイト数。
詳細については、リスティングを管理するをご覧ください。
定期購入
サブスクライバーは、データ エクスチェンジで各自がアクセスできるリスティングを閲覧できます。このようなリスティングをサブスクライブし、リンク済みデータセットを作成して、プロジェクトにそれらのデータセットを追加することもできます。その後ベンダーが、これらのリンク済みデータセットに対してクエリを行い、結果をリアルタイムで取得できます。
詳細については、リスティングとデータ エクスチェンジを表示して登録するをご覧ください。
料金
データ エクスチェンジやリスティングの管理に追加料金はかかりません。
BigQuery データセットの場合、パブリッシャーは、データ ストレージに対して課金されます。一方、サブスクライバーは、オンデマンド料金モデルまたは容量ベースの料金モデルに基づいて、共有データに対して実行されるクエリの料金を負担します。料金については、BigQuery の料金をご覧ください。
Pub/Sub の場合、トピック パブリッシャーは、共有トピックと下り(外向き)ネットワーク(該当する場合)に書き込まれた合計バイト数(パブリッシュ スループット)に対して課金されます。サブスクライバーは、リンクされたサブスクリプションと下り(外向き)ネットワーク(該当する場合)から読み取られた合計バイト数(サブスクライブ スループット)に対して課金されます。詳しくは、Pub/Sub の料金をご覧ください。
割り当て
BigQuery Sharing の割り当てについては、割り当てと上限をご覧ください。
コンプライアンス
BigQuery の一部である Sharing は、次のコンプライアンス プログラムに準拠しています。
VPC Service Controls
VPC Service Controls の境界が設定されているプロジェクトのデータにパブリッシャーとサブスクライバーがアクセスするために必要な上り(内向き)ルールと下り(外向き)ルールを設定できます。詳細については、Sharing VPC Service Controls のルールをご覧ください。
次のステップ
- リスティングとデータ交換を表示して登録する方法を確認する。
- Analytics Hub のロールを付与する方法を確認する。