メインコンテンツにスキップ

Intercomの会話データにSnowflakeでアクセスする

Snowflake Data Sharingを設定して、Intercomの会話データを直接Snowflakeアカウントで参照する方法を解説します。

A
対応者:Ahmed Tidjani

この記事では、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のアカウント識別子を見つけるには:

  1. Snowflakeアカウントにサインインします。

  2. 左下のアカウント名を選択します。

  3. Accountを選択します。

  4. Account Detailsの下で、Data Sharing Account Identifierを確認します。

  5. 識別子をコピーしてIntercomに入力します。形式は<organization>.<account>である必要があります。

注:SnowflakeアカウントがIntercomワークスペースのホストされているAWSリージョン外にある場合、SnowflakeはAuto-Fulfillmentを使用して共有データを安全にアカウントのリージョンへ複製します。追加の設定は不要です。


Snowflake Data Sharingの設定方法

Intercom設定のSnowflake Data Sharing設定ページのスクリーンショット。Snowflakeアカウント接続と更新スケジュール選択の設定画面を示しています。
  1. New Snowflake Data Shareをクリックします。

  2. Snowflake Data Sharing Account Identifierを入力します。

  3. データの更新頻度を選択します:

    • 毎時

    • 毎日

  4. (オプション)過去2年間の会話データをバックフィルするには、過去2年間の履歴データをエクスポートを有効にします。

  5. Create shareをクリックします。

  6. 確認メールをチェックし、データ共有を有効にするために確認リンクをクリックします。確認されると、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は別々に設定でき、同時に使用できます。


関連する記事

こちらの回答で解決しましたか?