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

Brazeダッシュボードで共有を削除して再作成した場合、以前作成したデータベースをドロップし、CREATE DATABASE <name> FROM SHARE <provider_account>.<share_name> を使用して再作成する必要があります。
複数のワークスペースが同じSnowflakeアカウントにデータを共有している場合は、Snowflakeデータ共有に関するFAQでマルチワークスペース構成の管理に関するガイダンスを参照してください。
使用方法と可視化
データ共有がプロビジョニングされたら、受信データ共有からデータベースを作成する必要があります。これにより、共有されたすべてのテーブルが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フィールドが引き続き含まれるため、すべてのイベントデータにわたるユーザー単位の分析が可能です。
各イベントの対応するUSERS_*_SHAREDビューで、直近2年間のデータをクエリできます。さらに、各イベントには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イベントパイプラインの設定の例をご確認ください。
設定手順については、クラウドデータ取り込み:データウェアハウス統合を参照してください。