5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BigQueryAdvent Calendar 2024

Day 10

Analytics Hub / BigQuery データシェアリング 2024

Last updated at Posted at 2024-12-09

BigQuery のデータシェアリングに関する機能も徐々に強化され、2024 年現在では、BigQuery データセットのほとんどに加え Pub/Sub トピックまで、Analytics Hub を通して他の組織へ共有できるようになりました。

Analytics Hub には、2 種類の利用者がいます。

  • サブスクライバーとして、共有されたデータを自組織の BigQuery に接続する
  • パブリッシャーとして、自組織のデータを他の組織に共有する

どちらの目線でも、より良いデータシェアリングのために使える機能について確認していきましょう。

Google Cloud Champion Innovators Advent Calendar 2024
9 日目および BigQuery Advent Calendar 2024 10 日目の記事です。

誰?

私は Analytics Hub を使って、いくつかのオープンデータを BigQuery で使いやすいように提供しています。76 組織超、124 名の方にサブスクライブしていただいています。

Analytics Hub とは何か

Analytics Hub は、BigQuery データセットと Pub/Sub トピックを、組織間で共有できるサービスです。2024 年から Analytics Hub の一般公開にフォームの申請がいらなくなり、公開されるデータも増えてきています。

一般公開されているデータを使いたい

Google Cloud の利用者であれば、BigQuery > Analytics Hub > SEARCH LISTINGS から検索ができます。

リスティングを選び、SUBSCRIBE ボタンが有効状態で表示されていれば、すぐに利用可能です。無効状態で表示されており、REQUEST ACCESS ボタンが表示されている場合は、公開している組織に連絡を取って、サブスクライブの権限をもらう必要があります。
image.png

全ての一般公開リスティングから探すのが大変な場合は、@toshiyasuimai さんが作成してくださっている、GCP Analytics Hub resource(日本の一般公開データセット) が参考になるかもしれません。

データを共有したい

2024 年現在、Analytics Hub はアップデートを重ね、BigQuery データセットに入るほぼ全てのオブジェクト、および Pub/Sub トピックの共有をサポートしています。
オブジェクトの共有自体では機能の不足はないように感じます。

共有可能オブジェクト

Analytics Hub の共有可能オブジェクト
大項目 小項目 サポート
テーブル 標準のテーブル
BigLake 外部テーブル
BigQuery Omni
オブジェクト テーブル
外部テーブル
テーブル クローン
テーブル スナップショット
ビュー 標準のビュー
マテリアライズド ビュー
マテリアライズド ビューのレプリカ
ルーティン ユーザー定義関数
リモート関数
テーブル関数
SQL ストアド プロシージャ
Apache Spark ストアド プロシージャ
BigQuery ML モデル
Pub/Sub トピック 標準のトピック ⭕ プレビュー
Amazon Kinesis Data Streams インポート トピック
Cloud Storage インポート トピック
承認によるアクセスの制御 承認済みビュー
承認済みルーティン
承認済みデータセット

(この記事を読む BigQuery 利用者なら非正規化テーブルも問題ないはず)

共有時に付与できる制約

これらに加え、共有するデータの集計を制限する機能も以下のように充実しています。

  • クエリ結果を含めたテーブルデータのコピーを制限
  • 差分プライバシーなどの分析ルールを適用
  • データ マスキングの適用(BigQuery エディション Standard を除く)
  • VPC Service Controls 境界を利用した制限

パブリッシャーとしてデータ共有を設定する場合、サブスクライバーが利用している BigQuery エディションまたはオンデマンド モデルによっては、機能がブロックされ、クエリできないものがある点には注意が必要です。例えば「行レベルのセキュリティ」を設定されたテーブルには、BigQuery エディション Standard を利用しているサブスクライバーはクエリジョブを正しく実行できません。

管理用の機能

使用状況の指標

Analytics Hub でデータシェアリングを始めると、どの組織から何件クエリが発行されているか確認することができます(具体的な組織や回数は適当に埋めてあります)。

image.png

SUBSCRIPTIONS タブを見ると、どの組織の誰が、サブスクライブをしているか確認と、削除が行えます。サブスクリプションを削除すると、接続されたデータセットの中身がクエリできなくなり、サブスクライバーおよびその組織からクエリされなくなります。
API を使ったサブスクリプションの取消しもできるため、契約期間の終了等で、サブスクリプションの削除の自動化も可能です。

INFORMATION_SCHEMA.SHARED_DATASET_USAGE

使用状況の指標では、集約されすぎていると感じる場合は、INFORMATION_SCHEMA.SHARED_DATASET_USAGE ビューを利用できます。このビューには、共有データセット テーブルの使用状況に関するメタデータが含まれています。
どの組織の誰が、どのプロジェクトどのリージョンで、ジョブを実行したかが分かります。クエリ本文は見れません。

機能の不足

他のデータシェアリングと比べて、以下のような機能が不足している点は注意すべきです。

  • クロスリージョンのデータ共有
    • BigQuery でリージョンを合わせる処理を別途実装する必要がある
  • 有料リスティング / データ交換
    • BigQuery の外側で課金の管理を実装する必要がある
  • データ交換リクエストの管理
    • BigQuery の外側でデータ交換リクエストを処理して、権限付与を行う必要がある

ただし、データシェアリングの最も大きな利点は、利用者のすぐそばにデータを届けることにあります。BigQuery を利用していない人にデータを共有するために他のデータシェアリングが使えるわけでもないため、割り切って利用する必要があります。

まとめ

サブスクライバーとしては、Analytics Hub 上の一般公開リスティングが増え、用途に合うデータを探しやすくなった 1 年でした。
パブリッシャーとしても、ほとんどの BigQuery オブジェクトの共有がサポートされ、管理機能も少しずつ充実してきて、多くの組織におすすめできる機能群になってきたと思います。

ぜひ、みんなで使って改善要望を伝えていきましょう。

Appendix. 2024 年のリリースノート

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?