sql >> Base de Datos >  >> RDS >> Database

Conexión de PolyBase a Salesforce.com

PolyBase accede y combina datos no relacionales y relacionales, todo desde SQL Server. A partir de SQL Server 2019, PolyBase admite datos de backends para los que hay disponible un controlador ODBC.

Probamos PolyBase con nuestro controlador ODBC de Salesforce para consultar los datos de Salesforce desde SQL Server 2019.

Para empezar:

  1. Instale y obtenga la licencia del controlador ODBC de Salesforce.com en la máquina donde está instalado SQL Server.

    Necesita la compilación 2.0.3 del controlador ODBC de Salesforce.com, que actualmente está disponible poniéndose en contacto con el equipo de soporte de Easysoft ().

  2. En Microsoft SQL Server Management Studio, conéctese a su instancia de SQL Server habilitada para PolyBase. Para verificar si PolyBase está instalado, ejecute esta consulta:
    SELECT SERVERPROPERTY ('IsPolyBaseInstalled') AS IsPolyBaseInstalled;

    Si PolyBase está instalado, esta consulta devolverá:

    1
  3. También debe asegurarse de que PolyBase esté habilitado:
    EXEC SP_CONFIGURE @CONFIGNAME = 'polybase enabled', @CONFIGVALUE = 1;
    RECONFIGURE WITH OVERRIDE;
  4. Si aún no lo ha hecho, inicie los servicios de PolyBase (motor de SQL Server PolyBase, movimiento de datos de SQL Server PolyBase) en la aplicación de servicios de Windows.
  5. Cree una fuente de datos externa de 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. Cree una tabla de SQL Server local que contenga los datos remotos de Salesforce. Esta tabla local es para la tabla Account 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. Consulte los datos remotos:
    SELECT Id FROM dbo.Account WHERE Id = '001i000000AOq3DXYZ'