Compartir a través de


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. A partir de la versión preliminar de SQL Server 2025 (17.x), esta característica está disponible en Linux.

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:

En SQL Server 2022 (16.x) y versiones anteriores, 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.

  • Antes de crear una credencial con ámbito de base de datos, debe crear una clave maestra.

Instalación del controlador ODBC

Siga las instrucciones de instalación del sistema operativo.

Sql Server 2025 (17.x) Preview tiene como valor predeterminado Microsoft ODBC Driver versión 18 para SQL Server, para orígenes de datos de PolyBase sqlserver . Este controlador admite TDS 8.0 e incluye varias actualizaciones, características y algunos cambios importantes. Para usar TDS 8.0, debe usar una nueva opción de cifrado e instalar un certificado de confianza en el servidor.

Para obtener más información sobre Microsoft ODBC Driver versión 18 para SQL Server, consulte:

Para obtener más información sobre la compatibilidad con TDS 8.0 de SQL Server, consulte TDS 8.0.

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.

Captura de pantalla de los grupos de escalado horizontal de PolyBase.

En el ejemplo anterior, el nombre del conductor está encerrado en 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 debe crear algunos objetos para completar la configuración.

En esta sección se utilizan los siguientes comandos de Transact-SQL:

  1. 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 de username. Reemplace <password> por una contraseña compleja.

    CREATE DATABASE SCOPED CREDENTIAL credential_name
        WITH IDENTITY = 'username', SECRET = '<password>';
    
  2. 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 puerto 4444
    • Se conecta con CData ODBC Driver For SAP 2015: es el controlador creado en Instalación del controlador ODBC
    • En ServerNodesap_server_node, puerto 5555
    • 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',
        PUSHDOWN = ON,
        CONNECTION_OPTIONS = 'Driver={CData ODBC Driver For SAP 2015};
            ServerNode = sap_server_node:5555',
        CREDENTIAL = credential_name
    );
    

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:

  1. Cree una o varias tablas externas.

    Cree una tabla externa. Debe hacer referencia al origen de datos externo creado anteriormente mediante el DATA_SOURCE argumento y especificar la tabla de origen como LOCATION. No es necesario hacer referencia a todas las columnas, pero debe asegurarse de que los tipos están asignados correctamente.

    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 (
        DATA_SOURCE = [<external_data_source_name>],
        LOCATION = '<sap_table_name>'
    );
    

    Nota:

    Tenga en cuenta que puede reutilizar los objetos dependientes para todas las tablas externas mediante este origen de datos externo.

  2. 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;