sql >> Databasteknik >  >> RDS >> Database

Ansluter PolyBase till Salesforce.com

PolyBase får åtkomst till och kombinerar både icke-relationell och relationsdata, allt från SQL Server. Från och med SQL Server 2019 stöder PolyBase data från backends för vilka en ODBC-drivrutin är tillgänglig.

Vi försökte PolyBase med vår Salesforce ODBC-drivrutin för att fråga Salesforce-data från SQL Server 2019.

För att komma igång:

  1. Installera och licensiera Salesforce.com ODBC-drivrutinen på maskinen där SQL Server är installerad.

    Du behöver build 2.0.3 av Salesforce.com ODBC-drivrutinen, som för närvarande är tillgänglig genom att kontakta Easysofts supportteam ().

  2. I Microsoft SQL Server Management Studio, anslut till din PolyBase-aktiverade SQL Server-instans. För att kontrollera om PolyBase är installerat, kör den här frågan:
    SELECT SERVERPROPERTY ('IsPolyBaseInstalled') AS IsPolyBaseInstalled;

    Om PolyBase är installerat kommer denna fråga att returnera:

    1
  3. Du måste också se till att PolyBase är aktiverat:
    EXEC SP_CONFIGURE @CONFIGNAME = 'polybase enabled', @CONFIGVALUE = 1;
    RECONFIGURE WITH OVERRIDE;
  4. Om du inte redan har gjort det, starta PolyBase-tjänsterna (SQL Server PolyBase Engine, SQL Server PolyBase Data Movement) i Windows Services-applikationen.
  5. Skapa en extern PolyBase-datakälla:
    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. Skapa en lokal SQL Server-tabell som innehåller Salesforce-fjärrdata. Den här lokala tabellen är för konto Salesforce-tabellen:
    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. Fråga fjärrdata:
    SELECT Id FROM dbo.Account WHERE Id = '001i000000AOq3DXYZ'

  1. Hur skriver man ett REST API?

  2. CRUD-drift med ASP.NET Core MVC, Entity Framework Core och SQL Server

  3. Hur kopierar man en post i en SQL-tabell men byter ut det unika ID:t för den nya raden?

  4. SQL Left Join