Snowflakeデータソースについて
この記事では、SnowflakeデータをTealiumにインポートする方法について説明します。
要件
この機能には以下が必要です:
- Tealium EventStreamまたはTealium AudienceStream
- Snowflakeアカウント
USAGE
権限とユーザータイプがLEGACY_SERVICE
のSnowflakeロール。
詳細については、認証を参照してください。
動作原理
Snowflakeデータソースを使用して、Snowflakeテーブルまたはビューからほぼリアルタイムで大量データをインポートします。インポートされたデータは変換され、Tealiumの属性にマッピングされ、ターゲットアクティベーションのためのエンリッチメントされたオーディエンスを作成するために使用できます。
始めるには、Snowflakeテーブルまたはビューごとに1つのSnowflakeデータソースを作成し、データセットのためのクエリモードとSQLのWHERE
句をカスタマイズします。次に、データベースの列をTealiumの属性にマッピングします。Snowflakeソースからインポートされた各行はTealiumでイベントとして処理されます。
プロファイルごとに最大10個のクラウドデータウェアハウスデータソースを有効にすることができます。
認証
キーペア
RSAキーペアを使用して接続を認証するには、Tealiumが暗号化されていないキーを生成できます。この生成された公開キーは、SnowflakeテーブルまたはビューにアクセスするSnowflakeユーザーに割り当てる必要があります。
セキュリティ要件に基づいて、RSA-2048、RSA-3072、またはRSA-4096のキーアルゴリズムから選択できます。
キーが生成された後、公開キーファイルをダウンロードし、キーをSnowflakeユーザーに割り当てます。ユーザーの公開キーが正しく割り当てられたことを確認する必要がある場合は、キーの指紋も提供されます。
詳細については、Snowflakeデータソースの管理を参照してください。
レート制限
Snowflakeからのインポートは通常、アカウントごとに秒間200イベントに制限されていますが、変動する場合があります。標準の属性サイズ制限も適用されます。詳細については、属性について > サイズ制限を参照してください。
バッチサイズ
Snowflakeデータソースはデータをバッチでインポートし、バッチあたりの最大行数は1,000行です。この動作は、クエリモードを選択する際に考慮することが重要です。
Snowflakeテーブル
各Snowflakeデータソースは、一つのSnowflakeテーブルまたはビューからデータをインポートすることをサポートしています。複数のSnowflakeテーブルからデータをインポートするには、Snowflakeでビューを作成し、データソース構成でそのビューを選択します。Snowflakeのビューについての詳細は、Snowflake: ビューの概要を参照してください。
データタイプ
Snowflakeデータソースは、すべてのSnowflakeデータタイプをサポートしています。データが正しくインポートされるように、以下のガイドラインに従ってSnowflakeデータタイプをマッピングしてください:
Snowflake | Tealium |
---|---|
数値データタイプ | 数値属性 |
文字列およびバイナリデータタイプ | 文字列属性 |
論理データタイプ | ブール属性 |
日付および時間データタイプ | 日付属性 |
配列 | 文字列の配列、数値の配列、またはブールの配列 |
オブジェクト、バリアント、地理、ジオメトリ、ベクターデータタイプ | 文字列属性 |
Snowflakeデータタイプについての詳細は、Snowflake: データタイプの概要を参照してください。
イベント
デフォルトのTealium データ収集の操作順序では、Snowflakeデータソースからのイベントはイベント受信ステップの前に処理され、操作の順序は変更されません。
Snowflakeデータソースのイベントは、他のデータソースからのイベントと同様にEventStreamおよびAudienceStreamに送信されますが、以下の重要な例外があります:
- ブラウザ固有の属性:ユーザーエージェントなどのブラウザ固有の属性は入力されません。
- エンリッチメント:AudienceStreamの事前読み込み属性に対するエンリッチメントは実行されませんが、「最初の訪問」属性を除きます。
- 関数:データ変換関数は実行されません。
- 単一ページ訪問:受信イベントは単一ページ訪問/訪問の基準から除外されます。他のデータソースからの単一ページ訪問および訪問はAudienceStreamに保持されません。詳細については、AudienceStreamで単一ページ訪問がどのように処理されるかを参照してください(Tealiumログインが必要です)。
- 訪問の長さ:Snowflakeデータソースイベントによって開始された訪問は60秒間続きます。
- 訪問IDマッピング:Snowflakeデータソース構成でAudienceStream訪問ID属性をマッピングする場合、訪問IDは選択した列の値に直接構成され、追加のエンリッチメントは必要ありません。
クエリモード
Snowflakeデータソースは、Snowflakeテーブルまたはビューからデータをインポートする方法を制御するために、3つのクエリモードをサポートしています。各モードはタイムスタンプ列、インクリメント列、またはその両方を使用して、インポートする行を決定します。
列の要件
クエリモードを効果的に使用するためには、以下のいずれかが必要です:
タイムスタンプ列
行が追加または変更された現在の時間に構成されたタイムスタンプ列。この列は、次のいずれかのSnowflakeデータタイプでなければなりません:TIMESTAMP_LTZ
、TIMESTAMP_TZ
、またはTIMESTAMP_NTZ
。
詳細については、Snowflake: 日付&時間を参照してください。
インクリメント列
行が追加されるたびに値が増加する数値列。この列はNUMBERタイプまたはDECIMAL、NUMERIC、INT、INTEGER、BIGINTなどの同義語タイプでなければなりません。
詳細については、Snowflake: 数値データタイプを参照してください。
自動インクリメント列の推奨定義は以下の通りです:
COL1 NUMBER AUTOINCREMENT START 1 INCREMENT 1
利用可能なクエリモード
使用事例の要件に合わせてモードを選択します。これらのモードの動作例については、クエリモードの例を参照してください。
タイムスタンプ + インクリメント(推奨)
このモードは、タイムスタンプ列とインクリメント列の両方を使用して、新規または変更された行をインポートします。行は次の場合にインポートされます:
- 前回のインポートより新しいタイムスタンプがある場合、および/または
- 最後にインポートされた行よりも大きいインクリメント値がある場合。
このモードは、すべての行が意図した通りにインポートされることを最も確実に保証します。
タイムスタンプ
このモードはタイムスタンプ列を使用して、新規または更新された行をインポートします。行は前回のインポートより新しいタイムスタンプがある場合にインポートされます。
テーブルに挿入または更新操作ごとにタイムスタンプ列が構成されている場合、このモードを使用します。
同じタイムスタンプを持つ行の数がバッチサイズを超える場合、一部の行はインポートされないことに注意してください。
インクリメント
このモードはインクリメント列を使用して行をインポートします。行は最後にインポートされた行よりも大きいインクリメント値がある場合にインポートされます。前回のインポートからの最大値以下のインクリメント値を持つ行はスキップされます。このモードは既存の行の変更を検出しません。
テーブルにタイムスタンプ列がない場合、このモードを使用します。
自分でインクリメント列を維持する場合は、値が常に増加することを確認してください。
クエリモードの例
次の例は、行のバッチ処理とクエリモードがどのように連携して機能するかを示しています。以下の表では、modification_time
がタイムスタンプ列であり、customer_id
が増加列です。
customer_id |
modification_time |
customer_segment |
---|---|---|
1 |
01Apr 13:00 |
A |
2 |
01Apr 13:00 |
B |
… | … | … |
1000 |
01Apr 13:00 |
D |
1001 |
01Apr 13:00 |
E |
1002 |
02Apr 14:00 |
A |
Snowflakeデータソースは、一度に1,000行のデータを取得し、バッチデータからタイムスタンプおよび/または増加列の最大値をマークします。
- タイムスタンプ + 増加 モードを使用する場合: データソースは行1-1000を取得します。次にデータソースがデータを取得する際には、
modification_time
が01Apr 13:00
でcustomer_id
が1000
より大きい行、 またはmodification_time
が01Apr 13:00
を超える行を探します。 - 増加 モードを使用する場合: データソースは行1-1000を取得し、
1000
の最大増加値をマークします。次のインポートでは、最初のインポート以降に変更された場合でも、行1-1000はスキップされます。例のcustomer_id
を増加させる新しい行のみが処理されます。 - タイムスタンプ モード(例の
modification_time
): データソースは行1-1000を取得し、01Apr 13:00
の最大タイムスタンプをマークします。次のインポートでは、01Apr 13:00
を超えるタイムスタンプの行がインポートされます。この場合、行1001
は前回のデータバッチで取得された同じタイムスタンプ値を持っているためスキップされます。
SQLクエリ
Snowflakeデータソースのクエリ構成で、Tealiumにインポートしたい列を選択します。処理のための追加条件を追加するには、SQLのWHERE
句を使用します。このオプションはクエリにWHERE
文を追加します。WHERE
文は基本的なSQL構文をサポートします。
WHERE
句は複数のテーブルからのサブクエリをサポートしていません。複数のSnowflakeテーブルからデータをインポートするには、Snowflakeでビューを作成し、データソース構成でビューを選択します。詳細については、Snowflake: ビューの概要を参照してください。
列マッピング
列マッピング構成は、Snowflakeテーブルの各列に対応するイベント属性を決定します。
列名はしばしばCustomer Data Hubの属性名と異なるため、このマッピングはデータが適切にインポートされることを保証します。たとえば、テーブルにはpostalCode
という列があるかもしれませんが、対応するイベント属性はcustomer_zip
という名前ですので、それらを関連付けるマッピングが必要です。
SnowflakeデータタイプをTealiumデータタイプにマッピングする情報については、データタイプセクションを参照してください。
訪問IDマッピング
インポートされたデータがウェブ、モバイル、またはHTTP APIなどの他のソースと繋がるようにするために、Snowflakeテーブルの各行には一意の訪問IDの列が含まれていることを確認します。その後、訪問ID列と対応するイベント属性を訪問ID属性(AudienceStreamでの訪問識別のための一意の属性タイプ)にマッピングします。マップされたイベント属性の値はtealium_visitor_id
属性に割り当てられ、既存の訪問プロファイルに直接マッチします。
AudienceStreamでの訪問IDマッピングについての詳細は、Tealiumデータソースを使用した訪問識別を参照してください。
許可するIPアドレス
Snowflakeアカウントに厳格なシステム要求がある場合、Tealium IPアドレスをSnowflakeの許可リストに追加してください。
最終更新日 :: 2025年June月12日