LoginSignup
0
0

More than 3 years have passed since last update.

FlySpeed Database Migration でSalesforce データをSQL Server に移行(コピー)

Last updated at Posted at 2019-12-21

SQL Server へのマイグレーションツール、[FlySpeed Migrate]https://www.activedbsoft.com/overview-migrate.html) は、ODBC データソースで接続したデータをSQL Server やMySQL にコピーできるツールです。

image.png

この記事では、Salesforce データのコピーをSQL Server に作成します。CData ODBC Driver for Salesforce を利用することによって、Salesforce データをFlySpeed Database Migration ツールで利用可能にします。

image.png

CData ODBC Driver for Salesforce のインストールと接続設定

ドライバーのダウンロード

CData ODBC Driver for Salesforce は、Salesforce 内のデータを仮想RDB としてODBC 経由でのアクセスを可能にするライブラリです。

  • 32-bit、64-bit アプリケーションをサポート。
  • ODBC 3.8 準拠のネイティブプロトコルドライバー。
  • ANSI SQL-92 をサポート。
  • Unicode をサポートし、多様な言語、データをサポート。
  • Windows、Linux、macOS にクロスプラットフォームで対応するODBC Drivers。

製品をDL してインストールを行います。デフォルト設定のままでクリックしてDL してください。

Salesforce への接続

Salesforce アカウントへの接続にはSalesforce 側でセキュリティトークンを発行する必要があります。

Salesforce 画面の右上の[アカウント名]→[私の設定]を開き、[個人用]からセキュリティトークンを発行しておきます。

CData ODBC Driver for Salesforce のインストール終了後にODBC DSN の設定画面が開きます。

  • User: Salesforce のユーザー名
  • Password:Salesforce のパスワード
  • Serucity Token:上記で取得したセールストークン image.png

[接続のテスト]で接続を確認し、問題がなければ[OK]を押して接続を確立します。

FlySpeed Database Migration でSalesforce データをコピー

[FlySpeed Migrate]https://www.activedbsoft.com/overview-migrate.html) をダウンロードします。Free 版は、一部のデータしかマイグレーションできないそうです。とりあえず今回は動作確認なのでFree 版を使っています。

今回はSalesforce データをODBC 経由で取得し、SQL Server に新規テーブルを作ってデータを移行します。

まずは、ODBC 接続を選択します。
スクリーンショット (887).png

上のステップで作成した[CData Salesforce Source]を選択します。
スクリーンショット (877).png

スキーマおよびオブジェクト選択です。設定してもいいですし、すべてのオブジェクトを取得することもできます。CData ODBC Driver によってSaleforce 内のオブジェクトがRDB 的なスキーマを付与されています。
スクリーンショット (878).png

移行するオブジェクトを選択します。今回は[Lead]オブジェクトを使います。
スクリーンショット (879).png

移管先のSQL Server のデータベースを設定します。今回は事前に[FlySpeed]という空のデータベースを作っておきましたので、それを使います。テーブルなどはまだ作っていません。
スクリーンショット (880).png

これまでのステップで指定したSalesforce Lead オブジェクトのテーブルスキーマをSQL Server に作成しに行きます。ODBC 経由で取得したスキーマを書き込むSQLを自動生成してくれていますので、実行します。実行されたSQL は以下でした。


CREATE TABLE [Lead](
    [Id] nvarchar(36) NOT NULL,
    [IsDeleted] bit NOT NULL,
    [MasterRecordId] nvarchar(36) NULL,
    [LastName] nvarchar(160) NOT NULL,
    [FirstName] nvarchar(80) NULL,
    [Salutation] nvarchar(80) NULL,
    [Name] nvarchar(242) NOT NULL,
    [Title] nvarchar(256) NULL,
    [Company] nvarchar(510) NOT NULL,
    [Street] nvarchar(510) NULL,
    [City] nvarchar(80) NULL,
    [State] nvarchar(160) NULL,
    [PostalCode] nvarchar(40) NULL,
    [Country] nvarchar(160) NULL,
    [Latitude] float NULL,
    [Longitude] float NULL,
    [GeocodeAccuracy] nvarchar(80) NULL,
    [Phone] nvarchar(80) NULL,
    [MobilePhone] nvarchar(80) NULL,
    [Fax] nvarchar(80) NULL,
    [Email] nvarchar(160) NULL,
    [Website] nvarchar(510) NULL,
    [PhotoUrl] nvarchar(510) NULL,
    [Description] ntext NULL,
    [LeadSource] nvarchar(80) NULL,
    [Status] nvarchar(80) NOT NULL,
    [Industry] nvarchar(80) NULL,
    [Rating] nvarchar(80) NULL,
    [AnnualRevenue] float NULL,
    [NumberOfEmployees] int NULL,
    [OwnerId] nvarchar(36) NOT NULL,
    [IsConverted] bit NOT NULL,
    [ConvertedDate] date NULL,
    [ConvertedAccountId] nvarchar(36) NULL,
    [ConvertedContactId] nvarchar(36) NULL,
    [ConvertedOpportunityId] nvarchar(36) NULL,
    [IsUnreadByOwner] bit NOT NULL,
    [CreatedDate] datetime NOT NULL,
    [CreatedById] nvarchar(36) NOT NULL,
    [LastModifiedDate] datetime NOT NULL,
    [LastModifiedById] nvarchar(36) NOT NULL,
    [SystemModstamp] datetime NOT NULL,
    [LastActivityDate] date NULL,
    [LastViewedDate] datetime NULL,
    [LastReferencedDate] datetime NULL,
    [Jigsaw] nvarchar(40) NULL,
    [JigsawContactId] nvarchar(40) NULL,
    [CleanStatus] nvarchar(80) NULL,
    [CompanyDunsNumber] nvarchar(18) NULL,
    [DandbCompanyId] nvarchar(36) NULL,
    [EmailBouncedReason] nvarchar(510) NULL,
    [EmailBouncedDate] datetime NULL,
    [SICCode__c] nvarchar(30) NULL,
    [ProductInterest__c] nvarchar(510) NULL,
    [Primary__c] nvarchar(510) NULL,
    [CurrentGenerators__c] nvarchar(200) NULL,
    [NumberofLocations__c] float NULL
)
GO

ALTER TABLE [Lead]
    ADD CONSTRAINT [Lead_PRIMARYKEY_Id] 
    PRIMARY KEY CLUSTERED ([Id])
WITH (
    IGNORE_DUP_KEY = OFF)
GO

スクリーンショット (882).png

dbo.Lead テーブルが作成されたので、移行先テーブルとして選択します。ここでフィールドごとのマッピングがカスタマイズできます。カスタマイズなしで次に進みます。
スクリーンショット (883).png

文字セットやインポートオプションを設定可能です。
スクリーンショット (884).png

内容を確認して、Migration(移行)を実行。
スクリーンショット (885).png

Lead オブジェクトがコピーされました。
スクリーンショット (886).png

SQL Server 側をSSMS で見てみましょう。たしかにSalesforce のLead データが移行されています。
image.png

まとめ

このようにCData ODBC Driver for Salesforce を使うことで、FlySpeed Database Migration でSalesforce データをSQL Server にノーコードで移行することができました。

CData ODBC Driver は、他にも150以上のSaaS およびNoSQL へのODBC アクセスを実現します。
image.png

また、CData では、CData Syncという製品でSQL Server だけでなく多様なRDB やクラウドデータストア・DWH へのデータ移行や反復同期が可能です。より細かなクエリ設定、タイマー起動の反復同期、差分更新などのニーズにもお答えします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0