コンテンツへスキップ
All articles
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を実行し、ステージングからテーブルへファイルをロードします。
Example: Snowflake: COPY INTO crm.opportunity FROM @my_stage/opportunity FILE_FORMAT = (TYPE = JSON) MATCH_BY_COLUMN_NAME = CASE_INSENSITIVE;
Example: 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)。
  • 何もエクスポートされない: コネクタが有効化されており、オブジェクトが選択されていることを確認してください。

Open this article inside the system

Read it and want to see it working?

The account is free and the whole manual is available inside the system, with an assistant that answers from this very content.

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