[Ultimate]{class="badge positive"}

Snowflake ストリーミングソース

IMPORTANT
  • Real-Time CDP Ultimateを購入したユーザーは、API で Snowflake ストリーミングソースを利用できます。

  • Amazon Web Services(AWS)でAdobe Experience Platformを実行するときに、Snowflake ストリーミングソースを使用できるようになりました。 AWS上で動作するExperience Platformは、現在、限られた数のお客様が利用できます。 サポートされるExperience Platform インフラストラクチャについて詳しくは、Experience Platform multi-cloud overview を参照してください。

Adobe Experience Platform を使用すると、データを外部ソースから取得しながら、Experience Platform サービスを使用して、受信データの構造化、ラベル付け、拡張を行うことができます。アドビのアプリケーション、クラウドベースのストレージ、データベースなど、様々なソースからデータを取り込むことができます。

Experience Platformは、Snowflake データベースからのストリーミングデータをサポートしています。

Snowflake ストリーミングソースについて

Snowflake ストリーミングソースは、定期的に SQL クエリを実行し、結果セットの各レコードに出力レコードを作成することで、データを読み込むことで機能します。

Kafka Connect を使用すると、Snowflake ストリーミングソースは各テーブルから受け取った最新のレコードを追跡するので、次のイテレーション用の正しい場所で開始できます。 ソースはこの機能を使用してデータをフィルタリングし、各反復でテーブルから更新された行のみを取得します。

前提条件

次の節では、Snowflake データベースからExperience Platformにデータをストリーミングする前に実行する必要がある前提条件の手順について説明します。

IP アドレスの許可リスト

ソースをExperience Platformに接続する前に、地域固有の IP アドレスを許可リストに追加する必要があります。 詳しくは、Experience Platformへの接続に対する IP アドレスの許可リストに加える に関するガイドを参照してください。

以下のドキュメントでは、API やユーザーインターフェイスを使用して Amazon Redshift をExperience Platformに接続する方法について説明しています。

必要な資格情報の収集

Flow Service を Snowflake に接続するには、次の接続プロパティを指定する必要があります。

基本認証
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2
資格情報 説明
account

サフィックス Snowflake が付いた snowflakecomputing.com アカウントの完全なアカウント識別子(アカウント名またはアカウントロケーター)。 アカウント識別子は、次のように異なる形式にすることができます。

  • {ORG_NAME}-{ACCOUNT_NAME}.snowflakecomputing.com (例:acme-abc12345.snowflakecomputing.com
  • {ACCOUNT_LOCATOR}。{CLOUD_REGION_ID}.snowflakecomputing.com (例:acme12345.ap-southeast-1.snowflakecomputing.com
  • {ACCOUNT_LOCATOR}。{CLOUD_REGION_ID}。{CLOUD}.snowflakecomputing.com (例:acme12345.east-us-2.azure.snowflakecomputing.com

詳しくは、Snowflake document on account identifiers を参照してください。

warehouse Snowflake ウェアハウスは、アプリケーションのクエリ実行プロセスを管理します。 各 Snowflake ウェアハウスは互いに独立しており、データをExperience Platformに取り込む際は個別にアクセスする必要があります。
database Snowflake データベースには、Experience Platformに取り込むデータが含まれています。
username Snowflake アカウントのユーザー名。
password Snowflake ユーザーアカウントのパスワード。
role (オプション)特定の接続に対してユーザーに提供できる、カスタム定義の役割。 指定しない場合、この値はデフォルトで public になります。
connectionSpec.id 接続仕様は、ベース接続とソース接続の作成に関連する認証仕様などの、ソースのコネクタプロパティを返します。Snowflake の接続仕様 ID は 51ae16c2-bdad-42fd-9fce-8d5dfddaf140 です。
キーペア認証

キーペア認証を使用するには、Snowflake ソースのアカウントを作成する際に、2048 ビットの RSA キーペアを生成してから、次の値を指定する必要があります。

table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2
資格情報 説明
account アカウント名は、組織内のアカウントを一意に識別します。 この場合、アカウントを異なる Snowflake 組織で一意に識別する必要があります。 これを行うには、アカウント名の前に組織名を追加する必要があります。 例:orgname-account_name。 詳しくは、​ アカウント識別子の取得 Snowflake に関するガイドを参 ​ してください。 詳しくは、Snowflake ドキュメントを参照してください。
username Snowflake アカウントのユーザー名。
privateKey Base64- アカウントの Snowflake エンコードされた秘密鍵。 暗号化された秘密鍵または暗号化されていない秘密鍵のいずれかを生成できます。 暗号化された秘密鍵を使用している場合は、Experience Platformに対して認証を行う際に、秘密鍵のパスフレーズも指定する必要があります。 詳しくは、​ 秘密鍵の取得 Snowflake に関す ​ ガイドを参照してください。
passphrase パスフレーズは、暗号化された秘密鍵を使用して認証を行う場合に使用する必要がある、追加のセキュリティレイヤーです。 暗号化されていない秘密鍵を使用している場合は、パスフレーズを指定する必要はありません。
database Experience Platformに取り込むデータを含んだ Snowflake データベース。
warehouse Snowflake ウェアハウスは、アプリケーションのクエリ実行プロセスを管理します。 各 Snowflake ウェアハウスは互いに独立しており、データをExperience Platformに取り込む際は個別にアクセスする必要があります。

これらの値について詳しくは、Snowflake キーペア認証ガイド ​ を参照してください。

アカウント識別子の取得 retrieve-your-account-identifier

Experience Platformで Snowflake インスタンスを認証するには、Snowflake UI ダッシュボードからアカウント ID を取得する必要があります。

アカウント識別子を見つけるには、次の手順に従います。

  • Snowflake アプリケーション UI ダッシュボード ​ でアカウントに移動します。
  • 左側のナビゲーションで「Accounts」を選択し、続いてヘッダーから「Active Accounts」を選択します。
  • 次に、情報アイコンを選択し、現在の URL のドメイン名を選択してコピーします。

秘密鍵の取得 retrieve-your-private-key

Snowflake 接続でキーペア認証を使用する場合は、Experience Platformに接続する前に秘密鍵を生成する必要があります。

暗号化された秘密鍵の作成

暗号化された Snowflake 秘密鍵を生成するには、ターミナルで次のコマンドを実行します。

code language-shell
openssl genrsa 2048 | openssl pkcs8 -topk8 -v2 des3 -inform PEM -out rsa_key.p8

成功した場合は、PEM 形式の秘密鍵が届きます。

code language-shell
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIE6T...
-----END ENCRYPTED PRIVATE KEY-----
暗号化されていない秘密鍵の作成

暗号化されていない Snowflake 秘密鍵を生成するには、ターミナルで次のコマンドを実行します。

code language-shell
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt

成功した場合は、PEM 形式の秘密鍵が届きます。

code language-shell
-----BEGIN PRIVATE KEY-----
MIIE6T...
-----END PRIVATE KEY-----

秘密鍵を生成したら、形式やコンテンツを変更せずに、Base64 で直接エンコードします。 エンコードする前に、秘密鍵の末尾に余分なスペースや空白行(末尾の改行を含む)がないことを確認します。

設定の検証

Snowflake データのソース接続を作成する前に、次の設定も満たしていることを確認する必要があります。

  • 特定のユーザーに割り当てられるデフォルトのウェアハウスは、Experience Platformへの認証時に入力するウェアハウスと同じである必要があります。
  • 特定のユーザーに割り当てられたデフォルトのロールは、Experience Platformへの認証時に入力したのと同じデータベースにアクセスできる必要があります。

ロールとウェアハウスを検証するには:

  • 左側のナビゲーションで「Admin」を選択し、「Users & Roles」を選択します。
  • 適切なユーザーを選択し、右上隅にある省略記号(...)を選択します。
  • 表示される Edit user ウィンドウで、Default Role に移動し、特定のユーザーに関連付けられている役割を表示します。
  • 同じウィンドウで、Default Warehouse に移動し、特定のユーザーに関連付けられているウェアハウスを表示します。

正常にエンコードされると、Base64 でエンコードされた秘密鍵をExperience Platformで使用して Snowflake アカウントを認証できます。

役割の設定 configure-role-settings

デフォルトのパブリックロールが割り当てられている場合でも、ソース接続が関連する Snowflake データベース、スキーマおよびテーブルにアクセスできるようにするには、ロールへの権限を設定する必要があります。 様々な Snowflake エンティティに対する様々な権限は次のとおりです。

Snowflake エンティティ
役割権限を必要とする
ウェアハウス
操作、使用
データベース
使用方法
スキーマ
使用方法
テーブル
を選択
NOTE
ウェアハウスの詳細設定コンフィギュレーションで、自動レジュームと自動休止を有効にする必要があります。

役割および権限の管理について詳しくは、Snowflake API リファレンス ​ を参照してください。

制限事項とよくある質問 limitations-and-frequently-asked-questions

  • Snowflake ソースのデータスループットは、1 秒あたり 2000 レコードです。

  • 価格は、倉庫がアクティブな時間と倉庫のサイズによって異なります。 Snowflake ソース統合の場合、最小サイズの x-small ウェアハウスで十分です。 自動休止を有効にして、使用されていないときにウェアハウスが独自に休止できるようにすることをお勧めします。

  • Snowflake ソースは、10 秒ごとに新しいデータをデータベースにポーリングします。

  • 設定オプション:

    • ソース接続を作成する際に、backfill ソースに対して Snowflake ブール値フラグを有効にできます。

      • バックフィルが true に設定されている場合、timestamp.initial の値は 0 に設定されます。 つまり、タイムスタンプ列が 0 エポック時間より大きいデータが取得されます。
      • バックフィルが false に設定されている場合、timestamp.initial の値は–1 に設定されます。 これは、現在の時刻(ソースの取り込みを開始する時刻)より大きいタイムスタンプ列を持つデータが取得されることを意味します。
    • タイムスタンプ列は、TIMESTAMP_LTZ または TIMESTAMP_NTZ 型の形式にする必要があります。 タイムスタンプ列が TIMESTAMP_NTZ に設定されている場合、値が保存される対応するタイムゾーンは timezoneValue パラメーターを介して渡す必要があります。 指定しない場合、値はデフォルトで UTC になります。

      • タイムスタンプ列またはマッピングでは TIMESTAMP_TZ を使用できません。

次の手順

NOTE
ストリーミングデータフローを作成または更新した後、データ損失やデータ削除が発生する可能性を防ぐために、データ取り込みを 5 分間ほど一時停止する必要があります。

次のチュートリアルでは、API を使用して Snowflake ストリーミングソースをExperience Platformに接続する方法の手順を説明します。

recommendation-more-help
337b99bb-92fb-42ae-b6b7-c7042161d089