Databricks OpenSharing
Databricks OpenSharing(旧称 Delta Sharing)を使用すると、Brazeのライブのエンゲージメントデータとキャンペーンデータをお客様のDatabricks環境に安全に共有できます。この記事では、データプロバイダーであるBrazeから受信者であるお客様のDatabricksアカウントへの共有の仕組みと、共有テーブルをクエリする方法について説明します。

BrazeでのDatabricks OpenSharingは、US クラスターでホストされている顧客のみが利用できます。その他のリージョンへの対応は現在進行中です。Databricks OpenSharingに関心があるものの US クラスターでホストされていない場合は、カスタマーサクセスマネージャーにお問い合わせください。
Databricks OpenSharingはBraze Data Distributionの一部です。Data Distributionのオプションの概要については、Data Distribution を参照してください。
前提条件
| 要件 | 説明 |
|---|---|
| Braze ワークスペースの権限 | データ共有を表示するには Currents 連携を表示、Databricks 共有を作成、更新、または削除するには Currents 連携を編集の権限が必要です。 |
Databricks OpenSharingを設定する
Databricksでは、データ共有はデータプロバイダーとデータ受信者の間で行われます。Braze アカウントは共有を作成して送信するためデータプロバイダーとなり、Databricks アカウントは共有を利用してクエリ可能なカタログを作成するためデータ受信者となります。詳細については、Databricksのドキュメント「reading data shared using Databricks-to-Databricks OpenSharing (for recipients)」を参照してください。
ステップ 1: Brazeから共有を設定する
- Brazeで パートナー連携 > ダイレクトデータ共有 に移動し、新規作成 > Databricks OpenSharing を選択します。
- Databricksの共有識別子を入力します。
- 完了したら、データ共有を作成 を選択します。Brazeがお客様のDatabricks アカウントに共有を送信します。
ステップ 2: Databricksでカタログを作成する
- 数分後、Databricks アカウントでインバウンド共有を受信します。
-
インバウンド共有を使用してカタログを作成し、テーブルを表示およびクエリします。例:
CREATE CATALOG [IF NOT EXISTS] <catalog-name> USING SHARE braze.<share-name>;
- 適切なユーザーとグループが新しいカタログをクエリできるように権限を付与します。

共有データは Databricks ワークスペース内では読み取り専用です。他のデータと同様にクエリできますが、共有を通じて共有テーブルの行を変更または削除することはできません。
使用法と可視化
Currentsと同様に、Databricks OpenSharingを使用して次のことができます。
- 複雑なレポートの作成
- アトリビューションモデリングの実行
- 社内での安全な共有
- 未加工のイベントデータやユーザーデータをCRM(Salesforceなど)にマッピング
- その他多数
Databricksで利用可能なテーブルと列の一覧については、Databricksの raw テーブルスキーマをテキストファイルとしてダウンロードしてください。このファイルはDatabricks OpenSharingのスキーマ(たとえば、取り込み時刻を表す DB_CREATED_AT)を反映しています。Snowflakeの命名規則とフィールドを説明する Snowflakeの raw テーブルスキーマや SQL テーブルリファレンスとは互換性がありません。

列名と型は Snowflake Data Sharingと異なる場合があります(たとえば、SF_CREATED_AT ではなく DB_CREATED_AT)。
ユーザー ID スキーマ
ユーザー ID に関するBrazeとDatabricksの命名規則には、次の違いがあることに注意してください。
| Braze スキーマ | Databricks スキーマ | 説明 |
|---|---|---|
braze_id |
USER_ID |
Brazeが自動的に割り当てる一意の識別子です。 |
external_id |
EXTERNAL_USER_ID |
Brazeで設定するユーザープロファイルの一意の識別子です。 |
制限事項と考慮事項
破壊的変更と非破壊的変更
非破壊的変更
非破壊的変更はいつでも発生する可能性があり、通常は追加機能を提供します。非破壊的変更の例:
- 新しいテーブルまたはビューの追加
- 既存のテーブルまたはビューへの列の追加

新しい列は非破壊的変更とみなされるため、Brazeでは SELECT * クエリを使用するのではなく、各クエリで対象の列を明示的に列挙することを強く推奨します。あるいは、列を明示的に指定したビューを作成し、共有テーブルを直接クエリする代わりにそのビューをクエリしてください。
破壊的変更
可能な場合、破壊的変更の前には告知と移行期間が設けられます。破壊的変更の例:
- テーブルまたはビューの削除
- 既存のテーブルまたはビューからの列の削除
- 既存の列の型または NULL 許容性の変更
保持ポリシー
対応する USERS_*_SHARED ビューで、各イベントの直近 2 年間のデータをクエリできます。
一般データ保護規則 (GDPR) への準拠
Braze に保管されているほぼすべてのイベントレコードには、ユーザーの個人を特定できる情報 (PII) を表すいくつかのフィールドが含まれています。一部のイベントには、メールアドレス、電話番号、デバイスID、言語、性別、および位置情報が含まれる場合があります。ユーザーの削除依頼がBrazeに送信された場合、これらのユーザーに属するイベントのPIIフィールドを無効化します。この方法では、イベントの履歴レコードは削除されませんが、イベントが特定の個人に結び付けられることは一切ありません。
共有データのクエリ: TIME とクエリパフォーマンス
データ共有ビュー(たとえば USERS_BEHAVIORS_CUSTOMEVENT_SHARED)のイベントデータは、TIME フィールドでクラスタリングされています。イベントの発生時刻でフィルタリングする場合は、TIME をフィルターとして使用することを推奨します。クラスタリングはイベント時刻に基づいているため、TIME を使用して行を絞り込むクエリは、通常 DB_CREATED_AT でフィルタリングするクエリよりもパフォーマンスが高くなります。
| フィールド | 意味 |
|---|---|
TIME |
イベントが発生した Unix タイムスタンプです。発生時刻でフィルタリングする場合はこちらを優先してください。 |
DB_CREATED_AT |
行がDatabricksに読み込まれた時刻(取り込み時刻)のタイムスタンプです。 |
クエリの速度、パフォーマンス、コスト
データに対して実行するクエリの速度、パフォーマンス、コストは、使用する SQL ウェアハウスのサイズによって異なります。アクセスするデータ量によっては、クエリを正常に完了するためにより大きなウェアハウスが必要になる場合があります。詳細については、Databricksのドキュメント「creating and configuring a SQL warehouse」(クラスターサイズとスケーリングを含む)を参照してください。