sql >> データベース >  >> RDS >> Database

PolyBaseをSalesforce.comに接続する

    PolyBaseは、すべてSQL Server内から、非リレーショナルデータとリレーショナルデータの両方にアクセスして結合します。 SQL Server 2019以降、PolyBaseはODBCドライバーが利用可能なバックエンドからのデータをサポートします。

    SQL Server 2019からSalesforceデータをクエリするために、SalesforceODBCドライバーを使用してPolyBaseを試しました。

    開始するには:

    1. SQLServerがインストールされているマシンにSalesforce.comODBCドライバーをインストールしてライセンスを取得します。

      Salesforce.com ODBCドライバーのビルド2.0.3が必要です。これは、Easysoftサポートチーム()に連絡して現在入手できます。

    2. Microsoft SQL Server Management Studioで、PolyBase対応のSQLServerインスタンスに接続します。 PolyBaseがインストールされているかどうかを確認するには、次のクエリを実行します。
      SELECT SERVERPROPERTY ('IsPolyBaseInstalled') AS IsPolyBaseInstalled;

      PolyBaseがインストールされている場合、このクエリは次を返します:

      1
    3. また、PolyBaseが有効になっていることを確認する必要があります。
      EXEC SP_CONFIGURE @CONFIGNAME = 'polybase enabled', @CONFIGVALUE = 1;
      RECONFIGURE WITH OVERRIDE;
    4. まだ行っていない場合は、WindowsサービスアプリケーションでPolyBaseサービス(SQL Server PolyBaseエンジン、SQL Server PolyBaseデータ移動)を開始します。
    5. PolyBase外部データソースを作成します:
      CREATE DATABASE PolyBaseDB
      
      USE PolyBaseDB
      
      CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'p455w0rd';
      
      CREATE DATABASE SCOPED CREDENTIAL PolyBaseSalesforce
      WITH IDENTITY = 'myuser, Secret = 'p455w0rd';
      
      CREATE EXTERNAL DATA SOURCE salesforce_data_source
      WITH ( 
      LOCATION = 'odbc://Salesforce',
      CONNECTION_OPTIONS = 'DRIVER={Easysoft Salesforce ODBC Driver};
                            UID=mysalesforceuser@mydomain;
                            PWD=mypassword;TOKEN=1234ABCDEF;',
      CREDENTIAL = PolyBaseSalesforce
      );
      
    6. リモートSalesforceデータを保持するローカルSQLServerテーブルを作成します。このローカルテーブルは、アカウントSalesforceテーブル用です。
      CREATE EXTERNAL TABLE Account([Id] NCHAR(18) COLLATE Latin1_General_CI_AS NOT NULL, [IsDeleted] TINYINT NOT NULL,
      	                      [MasterRecordId] NCHAR(18) COLLATE Latin1_General_CI_AS,
      			      [Name] NVARCHAR(255) COLLATE Latin1_General_CI_AS NOT NULL, [Type] NVARCHAR(255) COLLATE Latin1_General_CI_AS,
      			      [ParentId] NCHAR(18) COLLATE Latin1_General_CI_AS, [BillingStreet] NVARCHAR(4000) COLLATE Latin1_General_CI_AS,
      			      [BillingCity] NVARCHAR(40) COLLATE Latin1_General_CI_AS, [BillingState] NVARCHAR(80) COLLATE Latin1_General_CI_AS,
                                    [BillingPostalCode] NVARCHAR(20) COLLATE Latin1_General_CI_AS, [BillingCountry] NVARCHAR(80) COLLATE Latin1_General_CI_AS,
      			      [BillingStateCode] NVARCHAR(255) COLLATE Latin1_General_CI_AS, [BillingCountryCode] NVARCHAR(255) COLLATE Latin1_General_CI_AS,
      			      [BillingLatitude] FLOAT(53), [BillingLongitude] FLOAT(53), [BillingAddress] NVARCHAR(4000) COLLATE Latin1_General_CI_AS,
      			      [ShippingStreet] NVARCHAR(4000) COLLATE Latin1_General_CI_AS, [ShippingCity] NVARCHAR(40) COLLATE Latin1_General_CI_AS,
      			      [ShippingState] NVARCHAR(80) COLLATE Latin1_General_CI_AS, [ShippingPostalCode] NVARCHAR(20) COLLATE Latin1_General_CI_AS,
      			      [ShippingCountry] NVARCHAR(80) COLLATE Latin1_General_CI_AS, [ShippingStateCode] NVARCHAR(255) COLLATE Latin1_General_CI_AS,
      			      [ShippingCountryCode] NVARCHAR(255) COLLATE Latin1_General_CI_AS, [ShippingLatitude] FLOAT(53), [ShippingLongitude] FLOAT(53),
      			      [ShippingAddress] NVARCHAR(4000) COLLATE Latin1_General_CI_AS, [Phone] NVARCHAR(40) COLLATE Latin1_General_CI_AS,
      			      [Fax] NVARCHAR(40) COLLATE Latin1_General_CI_AS, [AccountNumber] NVARCHAR(40) COLLATE Latin1_General_CI_AS,
      			      [Website] NVARCHAR(255) COLLATE Latin1_General_CI_AS, [PhotoUrl] NVARCHAR(255) COLLATE Latin1_General_CI_AS,
      			      [Sic] NVARCHAR(20) COLLATE Latin1_General_CI_AS, [Industry] NVARCHAR(255) COLLATE Latin1_General_CI_AS, [AnnualRevenue] FLOAT(53),
      			      [NumberOfEmployees] INT, [Ownership] NVARCHAR(255) COLLATE Latin1_General_CI_AS, [TickerSymbol] NVARCHAR(20) COLLATE Latin1_General_CI_AS,
      			      [Description] NVARCHAR(4000) COLLATE Latin1_General_CI_AS, [Rating] NVARCHAR(255) COLLATE Latin1_General_CI_AS,
      			      [Site] NVARCHAR(80) COLLATE Latin1_General_CI_AS, [OwnerId] NCHAR(18) COLLATE Latin1_General_CI_AS NOT NULL,
      			      [CreatedDate] DATETIME2(0) NOT NULL, [CreatedById] NCHAR(18) COLLATE Latin1_General_CI_AS NOT NULL,
      			      [LastModifiedDate] DATETIME2(0) NOT NULL, [LastModifiedById] NCHAR(18) COLLATE Latin1_General_CI_AS NOT NULL,
      			      [SystemModstamp] DATETIME2(0) NOT NULL, [LastActivityDate] DATE, [LastViewedDate] DATETIME2(0), [LastReferencedDate] DATETIME2(0),
      			      [Jigsaw] NVARCHAR(20) COLLATE Latin1_General_CI_AS, [JigsawCompanyId] NVARCHAR(20) COLLATE Latin1_General_CI_AS,
      			      [AccountSource] NVARCHAR(255) COLLATE Latin1_General_CI_AS, [SicDesc] NVARCHAR(80) COLLATE Latin1_General_CI_AS,
      			      [CustomerPriority__c] NVARCHAR(255) COLLATE Latin1_General_CI_AS, [SLA__c] NVARCHAR(255) COLLATE Latin1_General_CI_AS,
      			      [Active__c] NVARCHAR(255) COLLATE Latin1_General_CI_AS, [NumberofLocations__c] FLOAT(53),
      			      [UpsellOpportunity__c] NVARCHAR(255) COLLATE Latin1_General_CI_AS, [SLASerialNumber__c] NVARCHAR(10) COLLATE Latin1_General_CI_AS,
      			      [SLAExpirationDate__c] DATE)
      	WITH (LOCATION='Account', DATA_SOURCE= salesforce_data_source)
    7. リモートデータをクエリします:
      SELECT Id FROM dbo.Account WHERE Id = '001i000000AOq3DXYZ'

    1. Oracleの日付から先行ゼロを削除する方法

    2. プログラムでPostgresJDBCの`DataSource`オブジェクトを生成します

    3. マネージドホスティングアカウントにphpMyAdminをインストールする方法

    4. MySQLでのクロス/外部適用