PolyBase गैर-संबंधपरक और संबंधपरक दोनों डेटा को एक्सेस और संयोजित करता है, सभी SQL सर्वर के भीतर से। SQL सर्वर 2019 से शुरू होकर, PolyBase बैकएंड से डेटा का समर्थन करता है जिसके लिए ODBC ड्राइवर उपलब्ध है।
SQL सर्वर 2019 से Salesforce डेटा को क्वेरी करने के लिए, हमने अपने Salesforce ODBC ड्राइवर के साथ PolyBase की कोशिश की।
आरंभ करने के लिए:
- उस मशीन पर Salesforce.com ODBC ड्राइवर स्थापित और लाइसेंस करें जहाँ SQL सर्वर स्थापित है।
आपको Salesforce.com ODBC ड्राइवर का 2.0.3 बनाने की आवश्यकता है, जो वर्तमान में Easysoft सहायता टीम () से संपर्क करके उपलब्ध है।
- Microsoft SQL सर्वर प्रबंधन स्टूडियो में, अपने PolyBase-सक्षम SQL सर्वर आवृत्ति से कनेक्ट करें। यह जांचने के लिए कि क्या PolyBase स्थापित है, यह क्वेरी चलाएँ:
SELECT SERVERPROPERTY ('IsPolyBaseInstalled') AS IsPolyBaseInstalled;
यदि पॉलीबेस स्थापित है तो यह क्वेरी वापस आ जाएगी:
1
- आपको यह भी सुनिश्चित करना होगा कि पॉलीबेस सक्षम है:
EXEC SP_CONFIGURE @CONFIGNAME = 'polybase enabled', @CONFIGVALUE = 1; RECONFIGURE WITH OVERRIDE;
- यदि आपने पहले से ऐसा नहीं किया है, तो Windows सेवा अनुप्रयोग में PolyBase सेवाएँ (SQL Server PolyBase Engine, SQL Server PolyBase Data Movement) प्रारंभ करें।
- एक 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 );
- एक स्थानीय SQL सर्वर तालिका बनाएं जिसमें दूरस्थ Salesforce डेटा होगा। यह स्थानीय तालिका खाता 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)
- दूरस्थ डेटा को क्वेरी करें:
SELECT Id FROM dbo.Account WHERE Id = '001i000000AOq3DXYZ'