Configurar PolyBase para acceder a datos externos en SQL Server
Se aplica a:
SQL Server (todas las versiones admitidas)
En este artículo se explica cómo usar PolyBase en una instancia de SQL Server para consultar datos externos en otra instancia de SQL Server.
Prerrequisitos
Si no ha instalado PolyBase, consulte Instalación de PolyBase. En el artículo de instalación se explican los requisitos previos. Una vez instalado, asegúrese también de habilitar PolyBase.
El origen de datos externo de SQL Server usa la autenticación de SQL.
Se debe crear una Clave maestra antes de crear una credencial de ámbito de base de datos.
Configuración de un origen de datos externos de SQL Server
Para consultar los datos de un origen de datos de SQL Server, debe crear tablas externas que hagan referencia a los datos externos. En esta sección se proporciona código de ejemplo para crear estas tablas externas.
Para obtener un rendimiento óptimo de las consultas, cree estadísticas en las columnas de tabla externa, sobre todo en las que se usan para las combinaciones, los filtros y los agregados.
En esta sección se utilizan los siguientes comandos de Transact-SQL:
- CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)
- CREATE EXTERNAL DATA SOURCE (Transact-SQL)
- CREATE EXTERNAL TABLE (Transact-SQL)
- CREATE STATISTICS (Transact-SQL)
Cree una credencial de ámbito de base de datos para acceder al origen de SQL Server. En el ejemplo siguiente se crea una credencial para el origen de datos externo con
IDENTITY = 'username'ySECRET = 'password'.CREATE DATABASE SCOPED CREDENTIAL SqlServerCredentials WITH IDENTITY = 'username', SECRET = 'password';Importante
El conector ODBC de SQL para PolyBase solo admite la autenticación básica, no la autenticación Kerberos.
Cree un origen de datos externo con CREATE EXTERNAL DATA SOURCE. En el ejemplo siguiente:
- Se crea un origen de datos externo denominado
SQLServerInstance. - Se identifica el origen de datos externo (
LOCATION = '<vendor>://<server>[:<port>]'). En el ejemplo, se apunta a una instancia predeterminada de SQL Server. - Se identifica si el cálculo se debe insertar en el origen (
PUSHDOWN).PUSHDOWNesONde forma predeterminada.
Por último, en el ejemplo se usa la credencial creada antes.
CREATE EXTERNAL DATA SOURCE SQLServerInstance WITH ( LOCATION = 'sqlserver://SqlServer', PUSHDOWN = ON, CREDENTIAL = SQLServerCredentials);- Se crea un origen de datos externo denominado
Cree la tabla externa con CREATE EXTERNAL TABLE La instrucción requiere intercalación y la ubicación requiere la notación de tres partes (
<database>.<schema>.<table>).CREATE EXTERNAL TABLE DatabasesExternal ( name VARCHAR(128) COLLATE SQL_Latin1_General_CP1_CI_AS) WITH (LOCATION = 'master.sys.databases', DATA_SOURCE = SQLServerInstance);Opcionalmente, cree estadísticas en una tabla externa.
Para obtener un rendimiento óptimo de las consultas, cree estadísticas en las columnas de tabla externa, sobre todo las que se usan para combinaciones, filtros y agregados.
CREATE STATISTICS statistics_name ON customer (C_CUSTKEY)
WITH FULLSCAN;
Importante
Una vez que se haya creado un origen de datos externos, se puede usar el comando CREATE EXTERNAL TABLE para crear una tabla consultable a través de ese origen.
Tipos compatibles con el Conector de SQL Server
Puede realizar una conexión con otros orígenes de datos que reconozca una conexión de SQL Server. Use el conector de SQL Server PolyBase para crear una tabla externa de Azure Synapse Analytics y Azure SQL Database. Para realizar esta tarea, siga los mismos pasos indicados anteriormente. Asegúrese de que la credencial de ámbito de base de datos, la dirección del servidor, el puerto y la cadena de ubicación se correspondan con los del origen de datos compatible al que quiere conectarse.
Pasos siguientes
Para obtener más información sobre PolyBase, consulte la información general de SQL Server PolyBase.