Snowflake
Snowflakeは、Software-as-a-Service(SaaS)として提供される専用SQLクラウドデータウェアハウスです。Snowflakeのデータウェアハウスは、従来のデータウェアハウス製品よりも高速で使いやすく、極めて高い柔軟性を備えています。Snowflake独自の特許取得済みアーキテクチャにより、すべてのデータを集約し、迅速な分析を可能にし、すべてのユーザーにデータドリブン型のインサイトを提供することが容易になります。
BrazeはSnowflakeとの2つの統合を提供しています。これらを組み合わせることで、BrazeとSnowflake環境間の完全な双方向データパイプラインを実現します。
統合の選択
データ共有(BrazeからSnowflakeへ)
Snowflakeのセキュアデータ共有を使用すると、Snowflakeインスタンスから直接Brazeのエンゲージメントおよびキャンペーンデータに安全かつリアルタイムでアクセスできます。アカウント間で実際のデータがコピーまたは転送されることはありません。すべての共有は、Snowflake独自のサービスレイヤーとメタデータストアを通じて行われます。
データ共有は、以下のような場合に使用してください。
- Snowflake SQLを使用してBrazeのイベントおよびキャンペーンデータをクエリする
- 複雑なレポートを作成し、アトリビューションモデリングを実行する
- Brazeデータをお使いのSnowflakeデータウェアハウス内の他のデータと結合する
- チャネル、業界、デバイスプラットフォーム全体でエンゲージメントデータをベンチマークする
設定手順については、Snowflakeデータ共有を参照してください。
Cloud Data Ingestion(SnowflakeからBrazeへ)
Cloud Data Ingestion(CDI)を使用すると、Snowflakeインスタンスから直接Brazeにデータを同期できます。これにより、Brazeのユーザー属性、イベント、購入データを、信頼できる唯一の情報源であるデータウェアハウスと常に最新の状態に保つことができます。
Cloud Data Ingestionは、以下のような場合に使用してください。
- Snowflakeからユーザー属性をBrazeのユーザープロファイルに同期する
- SnowflakeからBrazeにイベントデータまたは購入データを送信する
- データウェアハウスで行われるデータ変換とBrazeを同期させる
- SnowflakeからBrazeへのカスタムETLパイプラインの構築とメンテナンスを回避する
Snowflakeのデータ共有の詳細については、Introduction to Secure Data Sharingを参照してください。
前提条件
この機能を使用する前に、以下を完了する必要があります。
| 要件 | 説明 |
|---|---|
| Brazeアクセス | Brazeでこの機能にアクセスするには、Brazeアカウントまたはカスタマーサクセスマネージャーに連絡する必要があります。 |
| Snowflakeアカウント | admin権限を持つSnowflakeアカウント。非HIPAAのお客様の場合、Snowflake StandardまたはEnterprise Editionがサポートされています。HIPAA準拠のデータ共有には、Business Critical Editionが必要です。 |
セキュアデータ共有の設定
Snowflakeでは、データプロバイダーとデータコンシューマーの間でデータ共有が行われます。この仕組みでは、Brazeアカウントがデータ共有を作成・送信するデータプロバイダーであり、Snowflakeアカウントがデータ共有を使用してデータベースを作成するデータコンシューマーとなります。詳細については、Snowflake: Consuming Shared Dataを参照してください。
ステップ1:Brazeからデータ共有を送信する
- Brazeで、パートナー連携 > データ共有に移動します。
- Snowflakeアカウントの詳細とロケーターを入力します。アカウントロケーターを取得するには、宛先アカウントで
SELECT CURRENT_ACCOUNT()を実行します。 - CRR共有を使用している場合は、クラウドプロバイダーとリージョンを指定します。
- 完了したら、Create Datashareを選択します。これにより、データ共有がSnowflakeアカウントに送信されます。
ステップ2:Snowflakeでデータベースを作成する
- 数分後、Snowflakeアカウントにインバウンドデータ共有が届きます。
- インバウンドデータ共有を使用して、テーブルを表示およびクエリするためのデータベースを作成します。例:
1
CREATE DATABASE <name> FROM SHARE <provider_account>.<share_name>
- 新しいデータベースをクエリするための権限を付与します。

Brazeダッシュボードで共有を削除して再作成した場合は、以前作成したデータベースをドロップし、CREATE DATABASE <name> FROM SHARE <provider_account>.<share_name> を使用して再作成し、インバウンド共有をクエリする必要があります。
同じSnowflakeアカウントにデータを共有する複数のワークスペースがある場合は、マルチワークスペース構成の管理に関するガイダンスとしてSnowflakeデータ共有に関するよくある質問を参照してください。
使用方法と可視化
データ共有がプロビジョニングされた後、受信データ共有からデータベースを作成する必要があります。これにより、共有されたすべてのテーブルがSnowflakeインスタンスに表示され、インスタンスに保存されている他のデータと同様にクエリできるようになります。ただし、共有データは読み取り専用であり、クエリのみ可能で、変更や削除はできません。
Currentsと同様に、Snowflakeセキュアデータ共有を使用して以下のことが可能です。
- 複雑なレポートの作成
- アトリビューションモデリングの実行
- 社内での安全な共有
- 未加工のイベントデータやユーザーデータをCRM(Salesforceなど)にマッピング
- その他多数
利用可能なテーブルとカラムの完全なリストについては、SQLテーブルリファレンスを参照してください。Snowflakeデータ共有には、そのリファレンスに記載されているすべてのテーブルに加えて、スナップショット、キャンペーンおよびキャンバスの変更ログ、エージェントコンソールイベント、メッセージリトライイベント用のSnowflake専用テーブルも含まれています。
また、生のテーブルスキーマをダウンロードしてテキストファイルとして取得することもできます。
ユーザーIDスキーマ
ユーザーIDに関するBrazeとSnowflakeの命名規則の違いに注意してください。
| Brazeスキーマ | Snowflakeスキーマ | 説明 |
|---|---|---|
braze_id |
"USER_ID" |
Brazeによって自動的に割り当てられる一意の識別子です。 |
external_id |
"EXTERNAL_USER_ID" |
顧客によって設定されるユーザープロファイルの一意の識別子です。 |
重要な情報と制限事項
破壊的変更と非破壊的変更
非破壊的変更
非破壊的変更はいつでも発生する可能性があり、一般的に追加の機能を提供します。非破壊的変更の例は以下のとおりです。
- 新しいテーブルまたはビューの追加
- 既存のテーブルまたはビューへのカラムの追加

新しいカラムは非破壊的変更とみなされるため、BrazeではSELECT *クエリを使用する代わりに、各クエリで対象のカラムを明示的にリストすることを強くお勧めします。あるいは、カラムを明示的に指定したビューを作成し、テーブルを直接クエリする代わりにそれらのビューをクエリする方法も検討してください。
破壊的変更
可能な場合、破壊的変更の前には告知と移行期間が設けられます。破壊的変更の例には以下が含まれます:
- テーブルまたはビューの削除
- 既存のテーブルまたはビューからのカラムの削除
- 既存のカラムの型またはNULL許容性の変更
Snowflakeリージョン
Brazeは現在、すべてのユーザーレベルデータをSnowflake AWS US East-1、EU-Central(フランクフルト)、AP-Northeast-1(東京)、AP-Southeast-2(シドニー)、AP-Southeast-3(ジャカルタ)リージョンでホストしています。これらのリージョン以外のユーザーについては、BrazeはAWS、Azure、またはGCPの任意のリージョンでSnowflakeインフラをホストしている共同顧客に対してデータ共有を提供できます。
データリテンション
リテンションポリシー
2年以上前のデータはアーカイブされ、長期ストレージに移動されます。アーカイブプロセスの一環として、すべてのイベントは匿名化され、個人を特定できる情報(PII)に関連する機密フィールドは除去されます(propertiesのようなオプションのPIIフィールドも含まれます)。アーカイブされたデータには引き続きuser_idフィールドが含まれており、すべてのイベントデータにわたるユーザーごとの分析が可能です。
各イベントの直近2年間のデータについては、対応するUSERS_*_SHAREDビューでクエリできます。さらに、各イベントにはUSERS_*_SHARED_ALLビューがあり、匿名化されたデータと匿名化されていないデータの両方を返すクエリに使用できます。
履歴データ
Snowflakeの履歴イベントデータのアーカイブは2019年4月まで遡ります。BrazeがSnowflakeにデータを保存し始めた最初の数か月間は、プロダクトの変更が行われたため、一部のデータの見た目がわずかに異なったり、null値が含まれていたりする場合があります(当時はすべての利用可能なフィールドにデータを渡していなかったためです)。2019年8月より前のデータを含む結果は、期待と多少異なる可能性があることを前提としてください。
一般データ保護規則(GDPR)コンプライアンス
Braze に保管されているほぼすべてのイベントレコードには、ユーザーの個人を特定できる情報 (PII) を表すいくつかのフィールドが含まれています。一部のイベントには、メールアドレス、電話番号、デバイスID、言語、性別、および位置情報が含まれる場合があります。ユーザーの削除依頼がBrazeに送信された場合、これらのユーザーに属するイベントのPIIフィールドを無効化します。この方法では、イベントの履歴レコードは削除されませんが、イベントが特定の個人に結び付けられることは一切ありません。
共有データのクエリ:TIMEとクエリパフォーマンス
データ共有ビュー(USERS_BEHAVIORS_CUSTOMEVENT_SHAREDなど)のイベントデータは、TIMEフィールドでクラスタリングされています。イベントの発生時刻でフィルタリングする場合は、TIMEを優先フィルターとして使用してください。TIMEで行を制限するクエリは、クラスタリングがイベント時刻に一致するため、一般的にSF_CREATED_ATでフィルタリングするクエリよりもパフォーマンスが高くなります。
| フィールド | 意味 |
|---|---|
TIME |
イベントが発生した時点のUnixタイムスタンプです。発生時刻でフィルタリングする場合に推奨されます。 |
SF_CREATED_AT |
行がSnowflakeに読み込まれた時点のタイムスタンプ(取り込み時刻)です。 |
クエリの速度、パフォーマンス、コスト
データに対して実行されるクエリの速度、パフォーマンス、コストは、データのクエリに使用するウェアハウスのサイズによって決まります。分析でアクセスするデータ量によっては、クエリを成功させるためにより大きなウェアハウスサイズを使用する必要がある場合もあります。Snowflakeには、最適なサイズの決定方法に関する優れたリソースがあります。ウェアハウスの概要やウェアハウスの考慮事項をご参照ください。
Snowflakeの設定時に参考にできるクエリの例については、サンプルクエリおよびETLイベントパイプラインの設定の例をご確認ください。
設定手順については、クラウドデータインジェスション:データウェアハウス統合を参照してください。