コンテンツへスキップ
すべての記事
Setup

データウェアハウス: BigQuery、Snowflake、Redshiftへのエクスポート

CRMのオブジェクト(リード、連絡先、商談など)をあなたのデータウェアハウスに送信します。BigQueryは自動、SnowflakeとRedshiftはファイル+COPY方式です。

データウェアハウス連携は、CRMのオブジェクトをあなたの会社のウェアハウスにエクスポートします(「持ち込みアカウント」モデル、BYO)。ウェアハウスはあなたのものであり、当社側でのコスト・マージン・仲介は一切発生しません。設定・有効化するまでは何も送信されない、完全に不活性な状態から始まります。読み取りは常にあなたのテナントのデータに限定されます。

各オブジェクトは、id、created_at、updated_at、owner_id、および各フィールド(フィールドのapi_name)の列という安定したカラム構成の行としてエクスポートされます。BIコネクタと同じカラム構成のため、一度マッピングすれば済みます。

前提条件

  • BigQuery: Google Cloud上のプロジェクト、対象データセット、そのデータセットに対する「BigQuery データ編集者」ロールを持つサービスアカウント、およびそのアカウントのJSONキー。
  • Snowflake/Redshift: ファイルを受け取るための自分で管理するステージング場所(S3/GCS/Azureバケットの署名付きURL)、およびCOPYコマンドを実行するためのウェアハウスへのアクセス。
  • Sellioにおいて、設定→連携で認証情報を保存しエクスポートを有効化できる管理者権限。

設定場所

  1. 設定→連携を開きます。
  2. 対象のウェアハウスカードを選びます: Google BigQuery、Snowflake、またはAmazon Redshift。
  3. 認証情報を入力し、エクスポートするオブジェクトを選び、有効化します。
  4. 「今すぐエクスポート」で任意のタイミングで送信できます。

BigQuery(自動送信)

BigQueryではストリーミング(tabledata.insertAll)により自動的に送信されます。あなたがサービスアカウントを用意し、当社はあなたのテーブルに直接書き込みます。

  1. Google Cloudでサービスアカウントを作成し、対象データセットに「BigQuery データ編集者」ロールを付与します。
  2. そのサービスアカウントのJSONキーを生成します。
  3. データセット内に、安定したカラム(id STRING、created_at TIMESTAMP、updated_at TIMESTAMP、owner_id STRING、各フィールドの列)を持つ、オブジェクトごとのテーブルを作成します。
  4. BigQueryカードで、プロジェクトID、データセット、任意のテーブルプレフィックスを入力し、キーのJSONを貼り付けます。有効化し、「今すぐエクスポート」をクリックします。
💡 各オブジェクトのテーブル名は <prefix><api_name> です(例: プレフィックス「crm_」→ テーブルcrm_opportunity)。プレフィックスがない場合、テーブル名はapi_nameそのものになります。送信にはレコードのidをinsertIdとして使用するため、同じバッチを再送しても重複しません。

SnowflakeとRedshift(ファイル+COPY方式)

SnowflakeとRedshiftでは、オブジェクトごとに1ファイル(デフォルトはNDJSON、またはCSV)を生成し、あなたが管理するステージング先URL(例えば自分のS3/GCS/Azureバケットの署名付きURL)に送信します。ウェアハウスへの最終的なロードはCOPYコマンドで行い、これはあなた自身がウェアハウス上で実行(またはスケジュール)します。

  1. Snowflake/Redshiftカードで、ステージングURL(ファイルの送信先)、フォーマット(NDJSONまたはCSV)、送信先が要求する場合は認証ヘッダー+シークレットを入力します。
  2. オブジェクトを選び、有効化します。「今すぐエクスポート」をクリックすると、ファイルがあなたのステージングにPUTされます。
  3. ウェアハウス上でCOPYを実行し、ステージングからテーブルへファイルをロードします。
: Snowflake: COPY INTO crm.opportunity FROM @my_stage/opportunity FILE_FORMAT = (TYPE = JSON) MATCH_BY_COLUMN_NAME = CASE_INSENSITIVE;
: Redshift: COPY crm.opportunity FROM 's3://my-bucket/opportunity.json' IAM_ROLE 'arn:aws:iam::...:role/redshift' FORMAT AS JSON 'auto ignorecase';
💡 認証情報(BigQueryサービスアカウントキー、ステージングシークレット)は暗号化して保存され、二度と表示されません。変更する場合は再度貼り付けてください。

テスト方法

  1. コネクタを有効化し、オブジェクトを選んで「今すぐエクスポート」をクリックします。
  2. BigQuery: データセット内の<prefix><api_name>テーブルを開き、行が届いていることを確認します(insertIdがレコードのidのため、同じバッチを再送しても重複しません)。
  3. Snowflake/Redshift: ファイルがステージングに書き込まれた(PUTされた)ことを確認し、COPYを実行してテーブル内の行を確認します。

トラブルシューティング

  • BigQuery 403/permission denied: サービスアカウントにデータセットへの「BigQuery データ編集者」権限がないか、JSONキーが不完全です。ロールを再付与し、JSONを貼り直してください。
  • BigQuery「table not found」: 先に、安定したカラム(id STRING、created_at/updated_at TIMESTAMP、owner_id STRING、各フィールドの列)を持つオブジェクトごとのテーブルを作成してください。名前は<prefix><api_name>です。
  • Snowflake/Redshift: ステージングへのPUTが失敗する: 署名付きURLの有効期限が切れているか書き込みが許可されていないか、送信先の認証ヘッダーが間違っています。新しいURLを生成し、シークレットを確認してください。
  • COPYがロードされない: FILE_FORMAT(NDJSONかCSVか)とカラムのマッピングを確認してください(例: SnowflakeのMATCH_BY_COLUMN_NAME、RedshiftのFORMAT AS JSON)。
  • 何もエクスポートされない: コネクタが有効化されており、オブジェクトが選択されていることを確認してください。

この記事をシステム内で開く

読んだあとは、実際に動かしてみませんか。

アカウントは無料です。マニュアルはすべてシステム内でも参照でき、この内容をもとに回答するアシスタントも使えます。

無料アカウントを作成
データウェアハウス: BigQuery、Snowflake、Redshiftへのエクスポート · Sellio