この記事では、IntercomワークスペースをSnowflakeに接続し、データ共有を設定して会話データを直接クエリする方法を説明します。SnowflakeのSecure Data Sharingにより、エクスポートされたファイルをSnowflakeに取り込むためのETLパイプラインを構築・維持する必要がなくなり、Intercomデータを他のデータウェアハウスと一緒に分析しやすくなります。
誰がSnowflake Data Sharingを利用できますか?
Snowflake Data Sharingの概要:
この機能にアクセスできるワークスペースで利用可能です。
ワークスペースのデータを管理できる権限を持つチームメンバーが設定できます。
AWSでホストされているSnowflakeアカウントで利用可能です。他のAWSリージョンのSnowflakeアカウントは、共有データを自動的にアカウントのリージョンへ複製するSnowflakeのAuto-Fulfillmentでサポートされます。
Snowflake Data Sharingを設定する前に必要なもの
Snowflake Data Sharingを設定する前に、次を確認してください:
Snowflakeアカウント。
形式が
<organization>.<account>のSnowflakeのData Sharing Account Identifier。Intercomでワークスペースのデータを管理できる権限を持つチームメンバー。
Snowflakeのアカウント識別子を見つけるには:
Snowflakeアカウントにサインインします。
左下のアカウント名を選択します。
Accountを選択します。
Account Detailsの下で、Data Sharing Account Identifierを確認します。
識別子をコピーしてIntercomに入力します。形式は
<organization>.<account>である必要があります。
注:SnowflakeアカウントがIntercomワークスペースのホストされているAWSリージョン外にある場合、SnowflakeはAuto-Fulfillmentを使用して共有データを安全にアカウントのリージョンへ複製します。追加の設定は不要です。
Snowflake Data Sharingの設定方法
Intercomで、Settings > Data > Imports & exports > Snowflake data sharingに移動します。
New Snowflake Data Shareをクリックします。
Snowflake Data Sharing Account Identifierを入力します。
データの更新頻度を選択します:
毎時
毎日
(オプション)過去2年間の会話データをバックフィルするには、過去2年間の履歴データをエクスポートを有効にします。
Create shareをクリックします。
確認メールをチェックし、データ共有を有効にするために確認リンクをクリックします。確認されると、Intercomはデータ共有をプロビジョニングし、次のスケジュールされたエクスポート後にデータがSnowflakeで利用可能になります。
注:確認メールが検証されるまではデータは共有されません。
確認されると、Intercomはデータ共有をプロビジョニングします。次のスケジュールされたエクスポート後にデータがSnowflakeで利用可能になります。
Snowflakeで共有データにアクセスする方法
データ共有が確認され有効になったら、次のSQLコマンドを使用してSnowflakeでIntercomの会話データを検索、インポート、クエリできます。
1. 共有リスティングを探す
次のSQLを実行してIntercomのリスティングを見つけます:
SHOW AVAILABLE LISTINGS IS_SHARED_WITH_ME = TRUE;
SELECT "global_name", "title", "profile", "is_ready_for_import" FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())) WHERE "title" = 'Intercom Conversations Export' AND "profile" LIKE 'PEOSZPH.INTERCOM_DATA_SHARING_%';
global_name列で返された値をコピーします。
2. リスティングをリクエストしてデータベースを作成する
前の手順の値で<global_name>を置き換えます。
CALL SYSTEM$REQUEST_LISTING_AND_WAIT('<global_name>');
CREATE DATABASE INTERCOM_CONVERSATIONS FROM LISTING '<global_name>';SYSTEM$REQUEST_LISTING_AND_WAITプロシージャは、リスティングへのアクセスをリクエストし、インポート可能になるまで待機します。
3. データベースを検証して会話をクエリする
DESC DATABASE INTERCOM_CONVERSATIONS;
各ワークスペースはそれぞれのスキーマで公開されます:
SELECT * FROM INTERCOM_CONVERSATIONS.APP_<numeric_id>.CONVERSATIONS;
<numeric_id>をIntercomのワークスペースIDに置き換えます。
Snowflake Data Sharingの設定後に期待すること
設定後:
選択した場合、過去データのエクスポートが最初に処理されます。
新規および更新された会話は、選択した更新スケジュールに従って自動的に共有されます。
会話の削除は自動的にSnowflakeに反映されます。
共有データは追加設定なしで最新の状態に保たれます。
Snowflake Data Sharingの現在の制限
Snowflake Data Sharingには現在以下の制限があります:
Snowflake Data Sharingは現在会話データに対応しています。
更新頻度は毎時または毎日のどちらかを選択できます。
履歴エクスポートは過去2年に制限されています。
管理者が確認メールを承認するまではデータは共有されません。
宛先のSnowflakeアカウントを変更するには、新しいデータ共有を作成する必要があります。
Snowflake Data Sharingのトラブルシューティング
Snowflakeでデータが見えません
データは、確認メール確認後の次回のスケジュールされたエクスポート後に利用可能になります。履歴エクスポートは処理されるデータ量によって時間がかかる場合があります。
Snowflake Data Sharingを設定できません
Intercomでワークスペースのデータを管理できる権限があることを確認してください。
Snowflakeのアカウント識別子はどこで確認できますか?
SnowflakeでAccount Detailsに移動し、Data Sharing Account Identifierをコピーします。
Snowflakeアカウントが別のAWSリージョンにある場合
追加の操作は不要です。SnowflakeはAuto-Fulfillmentを自動的に使用して共有データをアカウントのリージョンに複製します。
Snowflake Data SharingはCloud Storage Exportと併用できますか?
はい。Snowflake Data SharingとCloud Storage Exportは別々に設定でき、同時に使用できます。
