Salesforce と SQL Server のデータ連携

CData DBAmp を使えば、SQL Server チームは標準の T-SQL と既存のツールを使って、Salesforce をリアルタイムでクエリしたり、ローカルにミラーリングしたり、変更を書き戻したりできます。ミドルウェアも新しいインフラも不要です。

Salesforce
CData DBAmp
SQL Server Microsoft SQL Server
バックアップ
ローカルレポート
データ連携

主な機能

使い慣れたツールとプロダクションレベルの信頼性で、Salesforce と Microsoft SQL Server を完全にコントロールして接続できます。

リアルタイム SQL アクセス

Linked Server で標準の T-SQL を使って、Salesforce オブジェクトをオンデマンドでクエリできます。API 連携のコードを書くことなく、SELECTJOINWHEREORDER BY ステートメントで運用クエリやレポートを実行できます。

高精度なレプリケーション

SF_MirrorSF_Replicate ストアドプロシージャを使って、Salesforce オブジェクトを SQL Server テーブルにミラーリングします。一貫性のある信頼できるコピーで、分析、ガバナンス付きバックアップ、下流システムとの連携をサポートします。

双方向の更新

SQL Server から Salesforce への INSERT、UPDATE、UPSERT が可能です。標準の INSERTUPDATEUPSERT パターンで、リバース ETL や運用ワークフローを実現します。

SQL Server ツールとの連携

SSIS、SSRS、SQL Agent ジョブ、既存の監視ツールを使って Salesforce データを運用できます。すべてがデータベース管理者(DBA)が既に管理している SQL Server 環境内で動作します。

Bulk/API 対応の高パフォーマンス

ワークロードに応じて適切な Salesforce API(Bulk、REST、Tooling)を自動選択します。バッチ処理と増分戦略により、大量データを効率的に処理します。

セキュリティを重視した設計

Salesforce の権限とプロファイルを尊重し、認証情報を安全に保存し、SQL Server のガバナンスで監査の可視性を維持します。DBAmp は最小権限環境向けに設計されています。

DBAmp のしくみ

SQL Server に DBAmp を一度インストールし、Salesforce への Linked Server を設定するだけで、使い慣れた T-SQL とストアドプロシージャでクエリ、レプリケーション、同期が可能になります。

1

DBAmp コンポーネントをインストール
インストーラーを実行して、DBAmp ストアドプロシージャの追加と前提条件の設定を行います。

2

Salesforce への Linked Server を作成
接続、認証情報、プロバイダ設定を定義します。シンプルな SELECT ステートメントでセットアップを確認できます。

3

ライブクエリまたはローカルミラーリング
Linked Server でオンデマンドクエリを実行するか、SF_Mirror / SF_Replicate プロシージャでローカルテーブルを作成・更新します。

4

SQL Agent と SSIS で自動化
増分ジョブのスケジュール、パイプラインのオーケストレーション、標準的な SQL Server の手法での監視が可能です。

サンプル:

Linked Server 経由のライブクエリ

-- データをコピーせずに Salesforce の Account をクエリ
SELECT  a.Name, a.AccountNumber, a.Industry, a.BillingCountry
FROM  SALESFORCE.CData.Salesforce.Account a
WHERE  a.Industry IN ('Manufacturing','Technology')
ORDER BY a.Name; 
サンプル:

ミラーリングと増分更新

-- 選択したオブジェクトのローカルテーブルを作成・更新
EXEC dbo.SF_Mirror @table_server = 'SALESFORCE',
    @objects = 'Account,Contact,Opportunity',
    @pkchunk = 'AUTO',
    @createdate = 'AUTO'; 

DBAmp を選ぶ理由

DBAmp は、Salesforce データを他の SQL ワークロードと同じように扱いたい DBA や SQL Server チーム向けに設計されています。使い慣れたワークフロー、予測可能なパフォーマンス、そして完全な運用コントロールを提供します。

ネイティブ SQL 体験

Linked Server、T-SQL、SSIS、既存の監視ツールを使って Salesforce を操作できます。

大規模環境でも安定動作

大規模組織や大量のオブジェクトを、予測可能なパフォーマンスで処理します。

スムーズなガバナンス

既存の SQL Server ガバナンス、監査、バックアップの手法を Salesforce データに適用できます。

比較表

アプローチ
メリット
トレードオフ
カスタムコードで Salesforce API を直接利用
最大限の柔軟性
開発・保守コストが高い。SQL 機能を再実装する必要あり
汎用 ETL/ELT ツール
多様なコネクタ、ビジュアルパイプライン
追加インフラが必要。学習コストあり。DBA 中心の SQL ワークフローが不足する場合も
DBAmp(SQL ネイティブ)
T-SQL と Linked Server を使用。シンプルなレプリケーション。書き戻しに対応
SQL Server に特化(設計上の特徴)

リソース

製品ドキュメント

インストール、Linked Server の設定、ストアドプロシージャ、レプリケーションオプション、トラブルシューティングについて説明しています。

クイックスタートガイド

DBAmp のインストール、Salesforce への接続、最初の Linked Server クエリの実行、主要オブジェクトのミラーリング手順を説明しています。

トライアルをダウンロード

お使いの環境と Salesforce 組織で DBAmp をお試しください。

一般的なユースケース

DBAmp を使えば、DBA、データエンジニア、アプリケーションチームは、既存のツールとガバナンスを活用して、SQL ネイティブな方法で Salesforce データを運用できます。

運用レポート

Salesforce と社内 SQL テーブルを結合して、統合ダッシュボードやレポートを作成します。

  • リアルタイム Linked Server クエリ
  • SSRS、Power BI、T-SQL を使用

レプリケーションと分析

分析や履歴保持のために、オブジェクトをローカルテーブルにミラーリングします。

  • SF_Mirror で増分更新
  • SQL Agent でオーケストレーション

バックアップ/アーカイブ

ガバナンス対応の SQL コピーでコンプライアンスと DR を実現します。

  • オブジェクトの全体/部分選択
  • 標準的な DBA 保持ポリシー

リバース ETL(SQL → Salesforce)

マスタリングされた SQL データを Salesforce に公開します。

  • INSERT / UPDATE / UPSERT
  • 外部 ID による Upsert

データ品質と MDM

SQL Server の DQ ルールを使用し、クリーンな結果を伝播します。

  • SQL DQ ツール
  • 制御された伝播

移行と統合

Salesforce 組織の統合やモダナイゼーションをサポートします。

  • 選択的オブジェクトレプリケーション
  • 再現可能でスクリプト化されたジョブ

アーキテクチャと互換性

DBAmp は SQL Server が稼働する場所で動作し、Salesforce API と通信します。

概要

項目
DB プラットフォーム
Microsoft SQL Server
アクセスモード
ライブ Linked Server クエリ、ローカルミラー/レプリケーション
API
Salesforce Bulk、REST、Tooling
書き戻し
INSERT / UPDATE / UPSERT(外部 ID 対応)
ツール
SSIS、SSRS、T-SQL、SQL Agent
セキュリティ
Salesforce 権限を尊重、標準 SQL Server コントロール

デプロイパターン

SQL Server が DBAmp コンポーネントをホストし、Salesforce に直接接続します。

以下のいずれかを選択できます:

  • ライブアクセス:Linked Server 経由で Salesforce をオンデマンドでクエリ
  • ローカルミラー:オブジェクトをコピーして増分更新

下流のツールは通常どおり SQL Server を使用します。SQL Agent で更新をオーケストレーションします。

高度な設定

API、バッチ処理、チャンキング、ランタイム動作、書き戻しパターンを詳細に制御したい DBA やデータエンジニア向けに、DBAmp は予測可能なパフォーマンスとスケールを実現する成熟した SQL ネイティブオプションを提供しています。

実行モデル

  • Linked Server アドレッシング:[LinkedServer].[CData].[Salesforce].[Object] のような4部構成の名前を使用します。例:SALESFORCE.CData.Salesforce.Account
  • API の選択(読み取りパス):SF_MirrorSF_ReplicateSOAPBulk を自動選択し、必要に応じて PK チャンキングを行います。手動で SOAP または Bulk(soap、bulkapi)を強制することも可能です。
  • 設定項目:プロバイダプロパティで API バージョン、Bulk ポーリング間隔、タイムアウトを調整できます。

スループット制御

  • PK チャンキング:SF_Replicatepkchunk を使用して Bulk API ジョブを送信できます。オプションで batchsize(N) も指定可能です。
  • グローバルテーブルオプション:DBAmpTableOptions を使用して、オブジェクトまたはパターンごとに pkchunkbulkapibatchsize を適用できます。
  • API コールの効率化:読み取りはバッチで実行されます。SF_TableLoader は行単位の DML ではなくバッチ書き込みをサポートします。

書き戻しパターン(安全かつ高速)

ステージングされた入力テーブル + Bulk プロシージャの使用を推奨します。

-- 1) SF_TableLoader 用の入力テーブルを作成
--    入力テーブルは有効なオブジェクト名で開始(例:Account_Load)
			
CREATE TABLE dbo.Account_Load (
  Id            varchar(18) NULL,
  ExternalId__c varchar(128) NULL,
  Name          nvarchar(255) NOT NULL,
  BillingCity   nvarchar(100) NULL
-- ...マッピングされたフィールドのみ 
);

-- 2) SF_TableLoader で Upsert(行数に基づいて API を自動選択)
EXEC dbo.SF_TableLoader 'Upsert','SALESFORCE','dbo.Account_Load','ExternalId__c';

SF_TableLoader は、行数が少ない場合は SOAP、多い場合は Bulk API を自動選択します。

ミラーリング、変更データ、履歴

  • 増分更新:SF_Mirror はメタデータを再利用します。可能な場合は増分、スキーマ変更時はフル更新を行います。
  • テンポラルテーブル:履歴用に有効化できます。派生フィールドによってはフル更新が必要な場合があります。
  • システムビュー:SF_CreateSysViews がパイプライン用のメタデータビューを構築します。

運用化

ステージングされた入力テーブル + Bulk プロシージャの使用を推奨します。

-- オブジェクトごとにミラージョブをスケジュール(SQL Agent)
EXEC dbo.SF_Mirror 'SALESFORCE','Account';
-- オブジェクトごとに繰り返し、各呼び出しで必要なオプションを使用するか、
-- DBAmpTableOptions で処理します
-- または、すべてのテーブルを取得する場合は SF_MirrorAll を使用

EXEC dbo.SF_MirrorAll 'SALESFORCE' 
-- xp_cmdshell なしでミラーリングを実行(Agent CmdExec)
-- 'MirrorCopy' と単一のターゲットオブジェクトで DBAmpAZ.exe を使用
-- 引数の例:
--	"C:\Program Files\CData\CData DBAmp\bin\DBAmpAZ.exe"
-- MirrorCopy Account "MSSQL01" "SalesforceBackups" SALESFORCE pkchunk,batchsize(50000)
-- 完全なパラメータリストはドキュメントを参照

Agent 対応:T-SQL でミラーリングするか、DBAmpAZ.exe を使用します(xp_cmdshell 不要)。

クエリのヒント

ステージングされた入力テーブル + Bulk プロシージャの使用を推奨します。

  • OPENQUERY vs 4部構成:シンプルさを重視する場合は4部構成を使用。複雑なリモートプッシュダウンには OPENQUERY を使用します。
  • JOIN:ローカル + リモートを混在させる場合、まず最小限のリモートサブセットを取得します。


クイックリファレンス

設定
機能
使用するタイミング
pkchunk
大きなオブジェクトを Bulk API 用の PK 範囲に分割
非常に大きなテーブル
batchsize(N)
いずれかの API のバッチサイズを制御
ネットワーク/行幅または Apex 制限に合わせて調整
bulkapi
Bulk API を強制(PK チャンクなし)
チャンキングが不要な大きなテーブル
Temporal Mirror
行履歴を維持
監査と SCD パターン

今すぐ CData DBAmp を始めましょう

インストール、接続、そして最初のクエリを数分で実行できます。