Configuración de PolyBase para acceder a datos externos con tipos genéricos de ODBC
Se aplica a: SQL Server
PolyBase a partir de SQL Server 2019 permite conectarse a orígenes de datos compatibles con ODBC por medio del conector ODBC.
En este artículo se muestra cómo crear la configuración de la conectividad mediante un origen de datos ODBC. En las instrucciones proporcionadas se usa un controlador ODBC específico como ejemplo. Consulte con el proveedor de ODBC para obtener ejemplos específicos. Consulte la documentación del controlador ODBC para el origen de datos con el fin de determinar las opciones de cadena de conexión apropiadas. Es posible que los ejemplos de este artículo no se apliquen a ningún controlador ODBC específico.
Requisitos previos
Nota:
Esta característica requiere SQL Server en Windows.
PolyBase debe instalarse y habilitarse para la instalación de PolyBase de la instancia de SQL Server.
Se debe crear una Clave maestra antes de crear una credencial de ámbito de base de datos.
Instalación del controlador ODBC
Descargue e instale el controlador ODBC del origen de datos al que quiere conectarse en cada uno de los nodos de PolyBase. Una vez que el controlador está instalado correctamente, puede verlo y probarlo desde el Administrador de orígenes de datos ODBC.
En el ejemplo anterior, el nombre del controlador aparece rodeado de un círculo rojo. Use este nombre al crear el origen de datos externo.
Importante
Para mejorar el rendimiento de las consultas, habilite la agrupación de conexiones. Esto se puede hacer desde el Administrador de orígenes de datos ODBC.
Creación de objetos dependientes en SQL Server
Para usar el origen de datos ODBC, primero se deben crear algunos objetos para completar la configuración.
En esta sección se utilizan los siguientes comandos de Transact-SQL:
Cree una credencial de ámbito de base de datos para acceder al origen de datos ODBC.
CREATE DATABASE SCOPED CREDENTIAL [<credential_name>] WITH IDENTITY = '<username>', Secret = '<password>';
Por ejemplo, en el ejemplo siguiente se crea una credencial denominada
credential_name
, con una identidad deusername
y una contraseña compleja.CREATE DATABASE SCOPED CREDENTIAL credential_name WITH IDENTITY = 'username', Secret = 'BycA4ZjrE#*2W%!';
Cree un origen de datos externo con CREATE EXTERNAL DATA SOURCE.
CREATE EXTERNAL DATA SOURCE [<external_data_source_name>] WITH ( LOCATION = 'odbc://<ODBC server address>[:<port>]', CONNECTION_OPTIONS = 'Driver={<Name of Installed Driver>}; ServerNode = <name of server address>:<Port>', -- PUSHDOWN = [ON] | OFF, CREDENTIAL = [<credential_name>] );
En el ejemplo siguiente se crea un origen de datos externo:
- Con el nombre
external_data_source_name
- Se encuentra en el
SERVERNAME
ODBC y el puerto4444
- Se conecta con
CData ODBC Driver For SAP 2015
: es el controlador creado en Instalación del controlador ODBC - En
ServerNode
sap_server_node
, puerto5555
- Configurado para el procesamiento que se inserta en el servidor (
PUSHDOWN = ON
) - Mediante la credencial
credential_name
CREATE EXTERNAL DATA SOURCE external_data_source_name WITH ( LOCATION = 'odbc://SERVERNAME:4444', CONNECTION_OPTIONS = 'Driver={CData ODBC Driver For SAP 2015}; ServerNode = sap_server_node:5555', PUSHDOWN = ON, CREDENTIAL = credential_name );
- Con el nombre
Creación de una tabla externa
Una vez que haya creado los objetos dependientes, puede crear una tabla externa mediante T-SQL.
En esta sección se utilizan los siguientes comandos de Transact-SQL:
Cree una o varias tablas externas.
Cree una tabla externa. Tendrá que hacer referencia al origen de datos externo creado anteriormente mediante el argumento
DATA_SOURCE
y especificar la tabla de origen comoLOCATION
. No es necesario hacer referencia a todas las columnas, pero deberá asegurarse de que los tipos están correctamente asignados.CREATE EXTERNAL TABLE [<your_table_name>] ( [<col1_name>] DECIMAL(38) NOT NULL, [<col2_name>] DECIMAL(38) NOT NULL, [<col3_name>] CHAR COLLATE Latin1_General_BIN NOT NULL ) WITH ( LOCATION='<sap_table_name>', DATA_SOURCE= [<external_data_source_name>] ) ;
Nota:
Tenga en cuenta que puede volver a usar los objetos dependientes para todas las tablas externas que usan este origen de datos externo.
Opcional: cree estadísticas en una tabla externa.
Para obtener un rendimiento óptimo de las consultas, se recomienda crear estadísticas en las columnas de tabla externa, sobre todo en las que se usan para combinaciones, filtros y agregados.
CREATE STATISTICS statistics_name ON contact (FirstName) WITH FULLSCAN;
Pasos siguientes
Para obtener más información sobre PolyBase, consulte la información general de SQL Server PolyBase.
Para obtener más tutoriales sobre cómo crear orígenes de datos externos y tablas externas en una variedad de orígenes de datos, consulte Referencia de Transact-SQL de PolyBase.