Introducción a la virtualización de datos con PolyBase

Se aplica a: SQL Server No admitida Azure SQL Database Azure Synapse Analytics Analytics Platform System (PDW)

PolyBase es una característica de virtualización de datos para SQL Server.

¿Qué es PolyBase?

PolyBase permite que la instancia de SQL Server consulte datos con T-SQL directamente de SQL Server, Oracle, Teradata, MongoDB, clústeres de Hadoop, Cosmos DB y el almacenamiento de objetos compatible con S3 sin necesidad de instalar de forma independiente software de conexión de cliente. También puede usar el conector ODBC genérico para conectarse a proveedores adicionales mediante controladores ODBC de terceros. PolyBase permite que las consultas de T-SQL combinen los datos de orígenes externos con tablas relacionales en una instancia de SQL Server.

Un caso de uso clave para la virtualización de datos con la característica de PolyBase es permitir que los datos permanezcan en su ubicación y formato originales. Puede virtualizar los datos externos a través de la instancia de SQL Server, para que se puedan consultar in situ como cualquier otra tabla de SQL Server. Este proceso minimiza la necesidad de procesos ETL para el movimiento de datos. Este escenario de virtualización de datos es posible con el uso de conectores de PolyBase.

Servicios y productos de SQL compatibles

PolyBase proporciona estas mismas funcionalidades para los siguientes productos SQL de Microsoft:

  • SQL Server 2016 (13.x) y versiones posteriores (Windows)
  • SQL Server 2019 (15.x) y versiones posteriores (Windows y Linux)
  • SQL Server Analytics Platform System (PDW)
  • Azure Synapse Analytics

Nota

La virtualización de datos mediante la característica PolyBase está disponible para Azure SQL Managed Instance, con ámbito para consultar datos externos almacenados en archivos de Azure Data Lake Storage (ADLS) Gen2 y Azure Blob Storage. Visite Virtualización de datos con Azure SQL Managed Instance para obtener más información.

Mejoras de PolyBase en SQL Server 2022

Novedad de SQL Server 2022 (16.x) Detalles
Almacenamiento de objetos compatible con S3 SQL Server 2022 (16.x) agrega un nuevo conector, almacenamiento de objetos compatible con S3, mediante la API REST de S3. Puede usar y OPENROWSETEXTERNAL TABLES para consultar archivos de datos en el almacenamiento de objetos compatible con S3.
Algunos conectores independientes de los servicios de PolyBase El conector de almacenamiento de objetos compatible con S3, así como ADSL Gen2 y Azure Blob Storage, ya no dependen de los servicios de PolyBase. No obstante, los servicios de PolyBase deben ejecutarse para admitir la conectividad con Oracle, Teradata, MongoDB y ODBC genérico. Además, debe instalarse la característica PolyBase en la instancia de SQL Server.
Formato de archivo Parquet Ahora, PolyBase es capaz de consultar datos de archivos Parquet almacenados en el almacenamiento de objetos compatible con S3. Para obtener más información, consulte Virtualización del archivo parquet en un almacenamiento de objetos compatible con S3 con PolyBase.
Formato de tabla delta PolyBase ahora es capaz de consultar datos (de solo lectura) del formato de tabla Delta almacenado en el almacenamiento de objetos compatible con S3, la cuenta de Azure Storage V2 y Azure Data Lake Storage Gen2. Para más información, consulte Virtualize Delta Table format (Virtualizar formato de tabla delta).
Crear tabla externa como Select (CETAS) PolyBase ahora puede usar CETAS para crear una tabla externa y, a continuación, exportar, en paralelo, el resultado de una instrucción SELECT de Transact-SQL para Azure Data Lake Storage Gen2, la cuenta de Azure Storage V2 y el almacenamiento de objetos compatible con S3. Para obtener más información, vea CREATE EXTERNAL TABLE AS SELECT (Transact-SQL).

Para obtener más características nuevas de SQL Server 2022 (16.x), consulte Novedades de SQL Server 2022?

Para ver un ejemplo de uso de PolyBase en SQL Server 2022 (16.x) para virtualizar un archivo CSV en Azure Storage, consulte Virtualizar archivo CSV con PolyBase.

Conectores de PolyBase

La característica de PolyBase proporciona conectividad con los siguientes orígenes de datos externos:

Orígenes de datos externos SQL Server 2016-2019 con PolyBase SQL Server 2022 (16.x) con PolyBase PDW DE APS Azure Synapse Analytics
Oracle, MongoDB, Teradata Lectura Lectura No No
ODBC genérico Lectura (solo Windows) Lectura (solo Windows) No No
Azure Storage Lectura/Escritura Lectura/Escritura Lectura/Escritura Lectura/Escritura
Hadoop Lectura/Escritura No Lectura/Escritura No
SQL Server Lectura Lectura No No
Almacenamiento de objetos compatible con S3 No Lectura/Escritura No No
  • SQL Server 2022 (16.x) no admite Hadoop.
  • SQL Server 2016 (13.x) introdujo PolyBase con compatibilidad con conexiones a Hadoop y Azure Blob Storage.
  • SQL Server 2019 (15.x) presentó conectores adicionales, incluido SQL Server, Oracle, Teradata y MongoDB.
  • SQL Server 2022 (16.x) introdujo el conector de almacenamiento compatible con S3.

Algunos ejemplos de conectores externos son:

* PolyBase es compatible con dos proveedores de Hadoop: Hortonworks Data Platform (HDP) y Cloudera Distributed Hadoop (CDH), a través de SQL Server 2019. La compatibilidad de SQL Server con los orígenes de datos externos HDFS Cloudera (CDP) y Hortonworks (HDP) se retirará y no se incluirá en SQL Server 2022 (16.x). Para obtener más información, consulte Opciones de macrodatos en la plataforma Microsoft SQL Server.

Para usar PolyBase, en una instancia de SQL Server:

  1. Instale PolyBase en Windows o instale PolyBase en Linux.
  2. A partir de SQL Server 2019 (15.x), habilite PolyBase en sp_configure, si es necesario.
  3. Cree un origen de datos externo.
  4. Cree una tabla externa.

Integración con Azure

Con la ayuda de PolyBase, las consultas T-SQL también pueden importar y exportar datos desde Azure Blob Storage. Además, PolyBase permite a Azure Synapse Analytics importar y exportar datos desde Azure Data Lake Store y Azure Blob Storage.

Por qué usar PolyBase

PolyBase permite combinar datos de una instancia de SQL Server con datos externos. Antes de PolyBase para combinar datos con orígenes de datos externos, podía:

  • Transferir la mitad de los datos para que todos estuvieran en una sola ubicación.
  • Consultar ambos orígenes de datos, después escribir una lógica de consulta personalizada para combinar e integrar los datos en el nivel de cliente.

PolyBase permite simplemente usar Transact-SQL para combinar los datos.

PolyBase no requiere que instale más software en el entorno de Hadoop. Los datos externos se consultan mediante la misma sintaxis T-SQL que se utiliza para consultar una tabla de base de datos. Las acciones de asistencia implementadas por PolyBase son transparentes. El autor de la consulta no necesita ningún conocimiento sobre el origen externo.

Usos de PolyBase

PolyBase permite estos escenarios en SQL Server:

  • Consulta de datos almacenados en Azure Blob Storage. Azure Blob Storage es un lugar cómodo para almacenar datos para que los usen los servicios de Azure. PolyBase facilita el acceso a los datos mediante T-SQL.

  • Consultar datos almacenados en Hadoop desde una instancia de SQL Server o PDW. Los usuarios almacenan datos en sistemas rentables, distribuidos y escalables, como Hadoop. PolyBase facilita la consulta de datos mediante T-SQL.

  • Importación de datos desde Hadoop, Azure Blob Storage o Azure Data Lake Store Saque partido de la velocidad de la tecnología de almacén de columnas y las capacidades de análisis de Microsoft SQL e importe datos desde Hadoop, Azure Blob Storage o Azure Data Lake Store en tablas relacionales. No hay necesidad de ninguna herramienta independiente de ETL o importación.

  • Exportar datos a Hadoop, Azure Blob Storage o Azure Data Lake Store. Archive datos en Hadoop, Azure Blob Storage o Azure Data Lake Store para disfrutar de un almacenamiento rentable y mantenerlo en línea para un fácil acceso.

  • Integrarse con herramientas de BI. Use PolyBase con la pila de análisis y la inteligencia empresarial de Microsoft o recurra a cualquier herramienta de terceros que sea compatible con SQL Server.

Rendimiento

  • Inserción de cálculo en Hadoop. (Solo se aplica a SQL Server 2016 [13.x], SQL Server 2017 [14.x] y SQL Server 2019 [15.x]). PolyBase inserta algunos cálculos en el origen externo para optimizar la consulta global. El optimizador de consultas toma una decisión basada en costos para insertar cálculo en Hadoop si, al hacerlo, se va a mejorar el rendimiento de las consultas. El optimizador de consultas usa estadísticas relativas a las tablas externas para tomar la decisión basada en costos. La inserción de cálculo crea trabajos MapReduce y aprovecha los recursos de cálculo distribuidos de Hadoop. Para obtener más información, consulte Cálculos de la aplicación en PolyBase.

  • Escala de los recursos de cálculo. (Solo se aplica a SQL Server 2016 [13.x], SQL Server 2017 [14.x] y SQL Server 2019 [15.x]). Para mejorar el rendimiento de las consultas, puede usar grupos de escalado horizontal de PolyBase de SQL Server. Gracias a esto, la transferencia de datos paralelos entre instancias de SQL Server y nodos de Hadoop es factible y, además, se agregan recursos de cálculo para operar en los datos externos.

Importante

Los grupos de escalado horizontal de PolyBase de Microsoft SQL Server se retirarán. La funcionalidad de los grupos de escalabilidad horizontal se quitará del producto en SQL Server 2022 (16.x). La virtualización de datos de PolyBase seguirá siendo totalmente compatible como característica de escalado vertical en SQL Server. Para obtener más información, consulte Opciones de macrodatos en la plataforma Microsoft SQL Server.

Actualización a SQL Server 2022

A partir de SQL Server 2022 (16.x) Hortonworks Data Platform (HDP) y Cloudera Distributed Hadoop (CDH) ya no se admiten. Debido a estos cambios, es necesario quitar manualmente los orígenes de datos externos de PolyBase creados en versiones anteriores de SQL Server que usan TYPE = HADOOP o Azure Storage antes de migrar a SQL Server 2022 (16.x). La eliminación de orígenes de datos externos también requiere quitar los objetos de base de datos asociados, como las credenciales con ámbito de base de datos y las tablas externas.

Los conectores de Azure Storage se deben cambiar en función de la tabla de referencia siguiente:

Origen de datos externo De En
Azure Blob Storage wasb[s] abs
ADLS Gen2 abfs[s] adls

Pasos siguientes

Antes de usar PolyBase, debe instalar PolyBase en Windows o instalar PolyBase en Linux y habilitar PolyBase en sp_configure, si fuera necesario. 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.

Revise la referencia de Transact-SQL de PolyBase con ejemplos de orígenes de datos externos y tablas externas para una variedad de orígenes de datos. Para obtener más tutoriales, revise los siguientes artículos: