Snowflake用Tealium Audience Discoveryのインストール
SnowflakeマーケットプレイスからSnowflake用Tealium Audience Discoveryをインストールし、必要なロールと権限を構成します。
このガイドでは、SnowflakeマーケットプレイスからSnowflake用Tealium Audience Discoveryをインストールし、それを使用するために必要なロールと権限を構成する方法について説明します。
要件
- Snowflakeのアカウント所有者または管理者ロール。
- オーディエンス作成に使用したいSnowflakeのデータベースとスキーマへのアクセス。
アプリのインストール
SnowflakeマーケットプレイスからSnowflake用Tealium Audience Discoveryをインストールします。インストール後、次のセクションのSQLを実行してアプリを構成し、起動します。
サービスの構成
インストール後、以下のSQLを実行してアプリを構成し、開始します。<SOURCE_DATABASE>をデータが含まれているデータベースに置き換えてください。インストール時に異なるアプリケーション名を選択した場合は、TEALIUM_AUDIENCE_DISCOVERY_APPをそれに応じて置き換えてください。
-
アプリ専用のコンピュートプールを作成します。
CPU_X64_XS(2 vCPU、8 GB)はほとんどのワークロードに適しています。大規模なオーディエンスや重い同時使用の場合は、CPU_X64_S(4 vCPU、16 GB)を使用してください。CREATE COMPUTE POOL IF NOT EXISTS TEALIUM_AUDIENCE_DISCOVERY_POOL FOR APPLICATION TEALIUM_AUDIENCE_DISCOVERY_APP MIN_NODES = 1 MAX_NODES = 1 INSTANCE_FAMILY = CPU_X64_XS; -
倉庫を作成するか、既存のものを使用します。
CREATE WAREHOUSE IF NOT EXISTS TEALIUM_AUDIENCE_DISCOVERY_WH WAREHOUSE_SIZE = 'X-SMALL'; -
アプリにコンピュートプールと倉庫へのアクセスを許可します。
GRANT USAGE ON COMPUTE POOL TEALIUM_AUDIENCE_DISCOVERY_POOL TO APPLICATION TEALIUM_AUDIENCE_DISCOVERY_APP; GRANT USAGE ON WAREHOUSE TEALIUM_AUDIENCE_DISCOVERY_WH TO APPLICATION TEALIUM_AUDIENCE_DISCOVERY_APP; -
アプリにソースデータへの読み取りアクセスを許可します。
GRANT USAGE ON DATABASE <SOURCE_DATABASE> TO APPLICATION TEALIUM_AUDIENCE_DISCOVERY_APP; GRANT USAGE ON ALL SCHEMAS IN DATABASE <SOURCE_DATABASE> TO APPLICATION TEALIUM_AUDIENCE_DISCOVERY_APP; GRANT SELECT ON ALL TABLES IN DATABASE <SOURCE_DATABASE> TO APPLICATION TEALIUM_AUDIENCE_DISCOVERY_APP; GRANT SELECT ON ALL VIEWS IN DATABASE <SOURCE_DATABASE> TO APPLICATION TEALIUM_AUDIENCE_DISCOVERY_APP; -
サービスを開始します。
CALL TEALIUM_AUDIENCE_DISCOVERY_APP.main_schema.create_app_service( 'TEALIUM_AUDIENCE_DISCOVERY_POOL', 'TEALIUM_AUDIENCE_DISCOVERY_WH' ); -
サービスの状態を確認します。状態が
READYになるまで待ってから続行します。CALL TEALIUM_AUDIENCE_DISCOVERY_APP.main_schema.check_service_status(); -
アプリケーションのURLを取得します。
CALL TEALIUM_AUDIENCE_DISCOVERY_APP.main_schema.get_app_url();
アプリを開く
- ステップ7で返されたURLを開くか、Snowsight > Data Products > Apps > TEALIUM_AUDIENCE_DISCOVERY_APP > Endpointsに移動します。
- audience-discovery-endpointをクリックしてウェブインターフェースを開きます。
- Data Explorerを使用して利用可能なテーブルを閲覧します。
追加の構成
追加のデータベースへのアクセスを許可する
アプリは、オーディエンスを構築したいすべてのデータベースへの読み取りアクセスが必要です。以下を追加の各データベースに対して繰り返します。
GRANT USAGE ON DATABASE <SOURCE_DATABASE> TO APPLICATION TEALIUM_AUDIENCE_DISCOVERY_APP;
GRANT USAGE ON ALL SCHEMAS IN DATABASE <SOURCE_DATABASE> TO APPLICATION TEALIUM_AUDIENCE_DISCOVERY_APP;
GRANT SELECT ON ALL TABLES IN DATABASE <SOURCE_DATABASE> TO APPLICATION TEALIUM_AUDIENCE_DISCOVERY_APP;
GRANT SELECT ON ALL VIEWS IN DATABASE <SOURCE_DATABASE> TO APPLICATION TEALIUM_AUDIENCE_DISCOVERY_APP;
アプリはソースデータを読み取るだけで、テーブルを変更することはありません。
Cortex AIの有効化(オプション)
アプリには、ユーザーが自然言語でオーディエンスセグメンテーションルールを記述できるCortexモードが含まれています。Cortex Analystは、Snowflakeのセマンティックビューを使用して自動的にSQLクエリを生成します。
アプリケーションにセマンティックビューが割り当てられていない場合、この機能は無効になります。
-
Cortex AIデータベースロールを許可します。
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO APPLICATION TEALIUM_AUDIENCE_DISCOVERY_APP; -
セマンティックビューへのアクセスを許可します。
GRANT USAGE ON DATABASE <SEMANTIC_VIEW_DB> TO APPLICATION TEALIUM_AUDIENCE_DISCOVERY_APP; GRANT USAGE ON SCHEMA <SEMANTIC_VIEW_DB>.<SEMANTIC_VIEW_SCHEMA> TO APPLICATION TEALIUM_AUDIENCE_DISCOVERY_APP; GRANT SELECT ON ALL VIEWS IN SCHEMA <SEMANTIC_VIEW_DB>.<SEMANTIC_VIEW_SCHEMA> TO APPLICATION TEALIUM_AUDIENCE_DISCOVERY_APP; GRANT SELECT ON SEMANTIC VIEW <SEMANTIC_VIEW_NAME> TO APPLICATION TEALIUM_AUDIENCE_DISCOVERY_APP; -
(オプション)利用可能な大規模言語モデル(LLMs)を構成します。モデルリストを管理するために、役割に
app_adminを付与します。GRANT APPLICATION ROLE TEALIUM_AUDIENCE_DISCOVERY_APP.app_admin TO ROLE <ADMIN_ROLE>;インストール中にシードされたデフォルトモデルを表示します。
SELECT * FROM TEALIUM_AUDIENCE_DISCOVERY_APP.AUDIENCE_DISCOVERY_SCHEMA.AVAILABLE_LLMS;リストを自分のモデルに置き換えます。
DELETE FROM TEALIUM_AUDIENCE_DISCOVERY_APP.AUDIENCE_DISCOVERY_SCHEMA.AVAILABLE_LLMS; INSERT INTO TEALIUM_AUDIENCE_DISCOVERY_APP.AUDIENCE_DISCOVERY_SCHEMA.AVAILABLE_LLMS (MODEL_NAME) VALUES ('mistral-large2'), ('llama3.1-70b'), ('llama3.1-405b'), ('snowflake-arctic'), ('claude-3-5-sonnet');Snowflakeリージョンで有効になっているモデルのみをリストに含めます。モデルをテストするには、
SELECT AI_COMPLETE(model => '<model_name>', prompt => 'Hello');を使用します。
Webhook配信の有効化(オプション)
アプリは、オーディエンスデータを外部HTTPエンドポイントに送信することができます。この機能はデフォルトでは無効になっており、管理者の構成が必要です。
ネットワークルールと外部アクセス統合が構成されていない場合、この機能は無効です。
-
Webhookホストのためのネットワークルールを作成します。
CREATE OR REPLACE NETWORK RULE webhook_egress_rule TYPE = HOST_PORT MODE = EGRESS VALUE_LIST = ('your-webhook-host.example.com:443'); -
外部アクセス統合を作成します。
CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION webhook_external_access ALLOWED_NETWORK_RULES = (webhook_egress_rule) ENABLED = TRUE; -
アプリケーションに統合の使用を許可します。
GRANT USAGE ON INTEGRATION webhook_external_access TO APPLICATION TEALIUM_AUDIENCE_DISCOVERY_APP; -
機能を有効にします。これにより、実行中のサービスに外部アクセス統合が自動的に添付されます。
-- デフォルトの統合名 WEBHOOK_EXTERNAL_ACCESS を使用します CALL TEALIUM_AUDIENCE_DISCOVERY_APP.main_schema.set_webhook_enabled(TRUE); -- カスタム統合名を指定します CALL TEALIUM_AUDIENCE_DISCOVERY_APP.main_schema.set_webhook_enabled(TRUE, 'MY_CUSTOM_INTEGRATION');後でWebhook配信を無効にする場合:
CALL TEALIUM_AUDIENCE_DISCOVERY_APP.main_schema.set_webhook_enabled(FALSE);
オーディエンスデータを送信するには、オーディエンスを開き、三点リーダーメニューをクリックし、Send to Webhookを選択します。HTTPS webhook URLを入力し、必要に応じてBasic認証資格情報を提供し、Sendをクリックします。データはデフォルトで1,000行のバッチでJSON形式で配信され、最大1,000,000行までです。
すべての配信は AUDIENCE_DISCOVERY_SCHEMA.WEBHOOK_LOG にログされます。
SELECT * FROM TEALIUM_AUDIENCE_DISCOVERY_APP.AUDIENCE_DISCOVERY_SCHEMA.WEBHOOK_LOG
ORDER BY STARTED_AT DESC;
Tealiumコネクターの外部アクセスの構成
各オーディエンスには、Tealium Snowflakeコネクターなどの外部消費者向けにUSERS_EXTERNALセキュアビューが含まれています。このビューは、オーディエンスが非アクティブ化されたときに自動的にゼロ行を返し、再アクティブ化されたときに再開します。
-
外部サービスアカウント用に専用のロールを作成します。
CREATE ROLE IF NOT EXISTS TEALIUM_AUDIENCE_DISCOVERY_EXTERNAL_ROLE; -
app_externalアプリケーションロールを付与します。このロールはセキュアビューのみにアクセスを提供し、テーブルにはアクセスしません。GRANT APPLICATION ROLE TEALIUM_AUDIENCE_DISCOVERY_APP.app_external TO ROLE TEALIUM_AUDIENCE_DISCOVERY_EXTERNAL_ROLE; -
クエリ実行のためのウェアハウス使用を許可します。
GRANT USAGE ON WAREHOUSE TEALIUM_AUDIENCE_DISCOVERY_WH TO ROLE TEALIUM_AUDIENCE_DISCOVERY_EXTERNAL_ROLE; -
Tealiumサービスアカウントユーザーにロールを付与します。
GRANT ROLE TEALIUM_AUDIENCE_DISCOVERY_EXTERNAL_ROLE TO USER <TEALIUM_SERVICE_USER>;
Tealiumコネクターは次のクエリを使用してオーディエンスを照会します:
SELECT * FROM TEALIUM_AUDIENCE_DISCOVERY_APP.<AUDIENCE_SCHEMA>.USERS_EXTERNAL;
ロール制限を確認するために、テスト前にセカンダリロールを無効にします。
USE SECONDARY ROLES NONE;
USE ROLE TEALIUM_AUDIENCE_DISCOVERY_EXTERNAL_ROLE;
-- アクティブなオーディエンスのデータを返すべきです
SELECT * FROM TEALIUM_AUDIENCE_DISCOVERY_APP.AUD_XXXXXXXXXXXXXXXX.USERS_EXTERNAL;
-- 権限不足で失敗するはずです
SELECT * FROM TEALIUM_AUDIENCE_DISCOVERY_APP.AUD_XXXXXXXXXXXXXXXX.USERS;
-- 完了したらセカンダリロールを再有効化します
USE SECONDARY ROLES ALL;
USE ROLE SYSADMIN;
サービスの管理
アプリサービスのライフサイクルを管理するために、以下のストアドプロシージャを使用します。サービスを初めて作成するには、サービスの構成を参照してください。削除後に再作成するには、同じSQLを実行します。
サービスの停止
サービスを削除せずに一時停止します。コンテナは停止しますが、サービス定義は保持されます。
CALL TEALIUM_AUDIENCE_DISCOVERY_APP.main_schema.stop_app_service();
サービスの再開
以前に一時停止されたサービスを再開します。
CALL TEALIUM_AUDIENCE_DISCOVERY_APP.main_schema.resume_app_service();
サービスの更新
アプリケーションのアップグレード後に新しいコンテナイメージを取り入れるために、サービス仕様を再適用します。
CALL TEALIUM_AUDIENCE_DISCOVERY_APP.main_schema.refresh_app_service('TEALIUM_AUDIENCE_DISCOVERY_WH');
サービスの削除
サービスを永久に削除します。再作成するにはcreate_app_service()を使用します。
CALL TEALIUM_AUDIENCE_DISCOVERY_APP.main_schema.drop_app_service();
サービスの状態確認
CALL TEALIUM_AUDIENCE_DISCOVERY_APP.main_schema.check_service_status();
サービスログの表示
CALL SYSTEM$GET_SERVICE_LOGS('TEALIUM_AUDIENCE_DISCOVERY_APP.main_schema.audience_discovery_service', 0, 'audience-discovery-app', 100);
トラブルシューティング
| 問題 | 解決策 |
|---|---|
| サービスがまだ作成されていない | コンピュートプールとウェアハウスを指定してcreate_app_service()を実行します。 |
| アプリケーションには専用のコンピュートプールが必要です | プールはFOR APPLICATION TEALIUM_AUDIENCE_DISCOVERY_APPで作成する必要があります。 |
| コンピュートプールが存在しないか、認証されていない | FOR APPLICATIONでプールを作成し、アプリにUSAGEを付与します。 |
| ソースデータが表示されない | ソースデータベースに対してアプリケーションにUSAGEとSELECTを付与します。 |
| サービスの状態がPENDINGに固定されている | DESCRIBE COMPUTE POOL <pool>を実行し、状態がACTIVEになるのを待ちます。 |
| エンドポイントにアクセスできない | BIND SERVICE ENDPOINTを付与してSnowsightを更新してみてください。 |
| Webhookの配信が有効になっていない | CALL main_schema.set_webhook_enabled(TRUE)を実行します。これにより、外部アクセス統合もサービスに接続されます。 |
| Webhook接続エラー | ネットワークルールVALUE_LISTを更新して、webhookホストを含めます。 |
セキュリティとデータ取扱い
データ居住地
すべてのデータはSnowflakeアカウント内に残ります。アプリは:
- デフォルトでは外部ネットワークリクエストを行いません。唯一の組み込みHTTPコールは、同じSnowflakeインフラストラクチャ上のSnowflake Cortex Analyst REST APIへのものです。
- テレメトリ、アナリティクス、自動データ流出を含みません。
- クッキーを使用しません。
- 平文でのシークレットの保存は行いません。認証はSnowpark Container Services (SPCS)のSnowflakeのOAuthトークンメカニズムを通じて処理されます。
- ビルド時にコンテナイメージにバンドルされた自己ホスト型フォントを使用します。実行時に外部サーバーへのリクエストは行われません。
オプションのwebhook配信機能は、ネットワークルールと外部アクセス統合を持つ管理者が明示的に有効にした場合に限り、ユーザーが指定したHTTPSエンドポイントにオーディエンスデータを送信することを可能にします。管理者がこの機能を有効にし、ユーザーが送信を開始した場合にのみ、発信リクエストが発生します。
認証
すべてのアクセスにはSnowflake認証が必要です。Web UIはSnowflakeのイングレスエンドポイントを通じて提供されます。公開されている非認証エンドポイントはありません。
作成されるオブジェクト
アプリはSnowflakeアカウントに次のオブジェクトを作成します。
スキーマ:
MAIN_SCHEMA— インフラAUDIENCE_DISCOVERY_SCHEMA— メタデータTEALIUM_EXTERNAL_ACCESS— 外部アクセス用のセキュアビュー- オーディエンスごとに1つの
AUD_*スキーマ
テーブル:
AUDIENCES— オーディエンスメタデータAVAILABLE_LLMS— LLM構成WEBHOOK_CONFIG— 機能フラグWEBHOOK_LOG— webhook配信監査ログ- オーディエンスごとに1つの
USERSテーブル
ビュー:
- オーディエンスごとに1つの
USERS_EXTERNALセキュアビュー。オーディエンスが非アクティブ化されるとゼロ行を返し、再アクティブ化されると再開します。
プロシージャ: オーディエンスライフサイクルのサービス管理と所有者権限DDL実行者。
タスク: アクティブなオーディエンスごとに1つのREFRESH_TASKがスケジュールされたリフレッシュのためにあります。
サービス: コンテナ化されたアプリケーションを実行するaudience_discovery_service。
データ保持
オーディエンスメタデータ(名前、説明、構成、ユーザー数、タイムスタンプ)はAUDIENCESテーブルに無期限に保存されます。各オーディエンスバージョンは歴史的追跡のために別の行として保存されます。オーディエンスを削除すると、関連するすべてのデータ(メタデータ行およびオーディエンススキーマを含む)が削除されます。
最終更新日 :: 2026年May月13日