PolyBase is a new feature of SQL Server that allows you to connect to relational and non-relational data. It allows you to run queries on any external data sources you might have like Oracle, PostgreSQL, Salesforce, MongoDB, Hadoop, etc. Combined with Progress DataDirect ODBC connectors, any query you want to run can be pushed down using PolyBase to provide you with the best performance available.
To help you get started, we put together this tutorial on how you can use PolyBase with Progress DataDirect’s ODBC Connector for Salesforce to query your external data in Salesforce. If you want to connect to any other data source like Oracle, Hadoop, MongoDB, etc., the steps are similar, so please feel free to use the respective connectors when you use this tutorial.
CREATE
MASTER
KEY
ENCRYPTION
BY
PASSWORD
=
'your-strong-password'
;
CREATE
DATABASE
SCOPED CREDENTIAL Salesforce_Cred
WITH
IDENTITY =
'your-salesforce-username'
, Secret =
'your-salesforce-password'
;
CREATE
EXTERNAL DATA SOURCE DataDirect_Salesforce
WITH
( LOCATION =
'odbc://localhost'
,
CONNECTION_OPTIONS =
'DSN=Salesforce'
,
PUSHDOWN =
ON
,
CREDENTIAL = Salesforce_Cred);
CREATE
EXTERNAL
TABLE
OPPORTUNITYCONTACT (
ID NVARCHAR(18)
NOT
NULL
,
OPPORTUNITYID NVARCHAR(18)
NOT
NULL
,
CONTACTID NVARCHAR(18)
NOT
NULL
,
"ROLE"
NVARCHAR(40),
ISPRIMARY
bit
NOT
NULL
)
WITH
(LOCATION=
'OPPORTUNITYCONTACTROLE'
, DATA_SOURCE=DataDirect_Salesforce)
SELECT
TOP
100 *
FROM
OPPORTUNITYCONTACT
SELECT
*
FROM
OPPORTUNITYCONTACT
where
OPPORTUNITYID =
'some-id'
Specified driver could
not
be loaded due
to
system error 126: The specified module cannot be found. (DataDirect 8.0 Salesforce, C:\Program Files\Progress\DataDirect\ODBC\drivers\ddsfrc28.dll).
If you see this error, the issue might be due to the fact that Java is not installed or jvm.dll is not in the PATH. To resolve this, install Java and edit the environment variable PATH to include jvm.dll
Msg 46530,
Level
16, State 11, Line 18
External data sources are
not
supported
with
type GENERIC.
exec
sp_configure @configname =
'PolyBase enabled'
, @configvalue = 1;
RECONFIGURE
WITH
OVERRIDE;