CREATE EXTERNAL TABLE AS SELECT (CETAS)
Esta unidad examina con más detalle el comando CREATE EXTERNAL TABLE AS SELECT (CETAS) y las ventajas que proporciona.
CETAS admite Azure Blob Storage, Azure Data Lake Storage, almacenamiento de objetos compatible con S3 y bases de datos externas. CETAS también admite la exportación de formatos de archivo como archivos CSV o Parquet.
La capacidad más potente de CETAS es su combinación con otras operaciones SELECT, como OPENROWSET o con otras tablas externas. Esta combinación permite usar CETAS de maneras diferentes y flexibles.
Casos de uso para CETAS
Hay muchos casos de uso diferentes para CETAS, pero los tres principales son:
- Informes
- Almacenamiento en niveles de datos o descarga
- Centro de exportación de datos
Informes
El caso de uso más obvio para CETAS es simplificar los informes mediante todas las funcionalidades de polyBase y la flexibilidad de SQL Server. Puede conectarse a cualquier origen de datos, tabla o archivo admitidos y usar T-SQL para manipular y exportar los resultados. Por ejemplo, en lugar de conectar herramientas de informes a SQL Server, puede usar CETAS para realizar todas las consultas necesarias, exportar el resultado como un archivo Parquet y apuntar la herramienta de informes a los datos exportados.
Almacenamiento en niveles de datos o descarga
Otro escenario común es exportar datos de archivo o de solo lectura de tablas de SQL Server al almacenamiento remoto, pero consultarlos normalmente a través de tablas externas. De este modo, solo puede mantener los datos activos en SQL Server, guardar los recursos, pero seguir teniendo acceso a los datos de forma transparente siempre que sea necesario. Desde un punto de vista de la aplicación, es igual que acceder a una tabla normal de SQL Server.
Por ejemplo, imagine que la order tabla tiene datos históricos de los últimos años que no cambian, pero aún necesita que sea totalmente accesible. CETAS puede ayudar a exportar todos los order datos de tabla a otra ubicación, lo que reduce el tamaño de la base de datos y el tiempo de mantenimiento necesario. Con una tabla externa, los datos exportados se comportan igual que una tabla normal.
Centro de exportación de datos
Mediante el uso de SQL Server 2025 como centro de datos, puede combinar CETAS con todas las funcionalidades existentes de PolyBase, incluida la conexión a otros orígenes de datos como Oracle, Teradata, ODBC u otras versiones de SQL Server.
Requisitos de CETAS
Para usar CETAS en SQL Server 2025, debe habilitar la propiedad ALLOW POLYBASE EXPORT mediante sp_configure. Para obtener más información, consulte el ejercicio siguiente.
Permisos CETAS
Para usar CETAS, necesita tres niveles de permisos diferentes:
Permiso para acceder al origen de datos y leerlo. Si los datos residen fuera de SQL Server, ya sea en un recurso compartido de red u otro servidor de base de datos, la cuenta de servicio de SQL Server debe tener permiso para acceder al origen de datos.
Permiso en SQL Server 2025 para usar el comando CETAS. Para que el usuario de la base de datos ejecute el comando CETAS, necesita permisos de ADMINISTRAR OPERACIONES MASIVAS, ALTERAR CUALQUIER FUENTE DE DATOS EXTERNA y ALTERAR CUALQUIER FORMATO DE ARCHIVO EXTERNO.
Permiso de escritura en el destino para escribir los resultados de CETAS. Para poder escribir en el archivo de destino, Parquet o CSV, el usuario necesita permisos de escritura en el destino. Por ejemplo, para escribir en Azure Blob Storage o Azure Data Lake Storage, el usuario necesita permisos LIST, READ, CREATE y WRITE en esos destinos.
Para obtener más información sobre los permisos de CETAS, consulte Permisos de CREATE EXTERNAL TABLE AS SELECT (CETAS).
Formatos compatibles con CETAS
CETAS recibe un flujo de datos, mediante un comando SELECT como entrada y exporta los resultados en formato CSV o Parquet. La entrada admite los mismos formatos que un comando SELECT, incluidos los resultados de OPENROWSET.
La entrada puede ser una tabla que se ejecuta localmente en la instancia de SQL Server, un archivo de red al que se accede a través de una operación OPENROWSET, una tabla en otro sistema de base de datos o un archivo Delta almacenado en Azure Blob Storage, Azure Data Lake Storage o almacenamiento de objetos compatible con S3.
- Para obtener una lista completa de los formatos admitidos, vea CREATE EXTERNAL FILE FORMAT.
- Para obtener una lista completa de los orígenes de datos admitidos, consulte CREATE EXTERNAL DATA SOURCE.
- Para obtener información sobre el acceso a archivos remotos mediante OPENROWSET, consulte OPENROWSET.
Estructura T-SQL de CETAS
Para comprender mejor CETAS, puede desglosar la sintaxis general de T-SQL. La estructura T-SQL de CETAS sigue un enfoque lógico de abajo arriba. Es más fácil empezar al final de la instrucción e ir avanzando hacia el principio de la instrucción T-SQL.
- La parte inferior de la estructura CETAS contiene una instrucción SELECT que se usa para definir qué datos se van a exportar.
- En el medio, hay parámetros opcionales que puede usar para rechazar los datos que no desea exportar.
- En la parte superior de la instrucción CETAS, después de declarar CREATE EXTERNAL TABLE, se agrega información sobre la ubicación de destino, el nombre de archivo y el formato de archivo.
Esta estructura permite combinar CETAS con cualquier instrucción SELECT para consultar datos fuera de SQL Server, dentro de SQL Server o desde cualquier otra base de datos compatible. SQL Server 2025 crea automáticamente el nombre de archivo y divide los resultados en varios archivos para la optimización. Por ejemplo, una tabla exportada como Parquet puede generar varios archivos, según el tamaño de los datos exportados. La instrucción select define la definición y el tipo de columna de tabla externa.
Exportación de una tabla desde SQL Server como Parquet
En el ejemplo siguiente se usa CETAS para exportar una tabla de SQL Server como Parquet:
CREATE EXTERNAL TABLE ext_sales
WITH (
LOCATION = '/cetas',
DATA_SOURCE = s3_eds,
FILE_FORMAT = ParquetFileFormat
) AS
SELECT *
FROM AdventureWorks2025.[Sales].[SalesOrderDetail];
Leer un archivo Delta y exportarlo como Parquet
En el ejemplo siguiente se usa CETAS para leer un archivo Delta y exportarlo como Parquet:
CREATE EXTERNAL TABLE Delta_to_Parquet
WITH (
LOCATION = N'/backup/sales',
DATA_SOURCE = s3_parquet,
FILE_FORMAT = ParquetFileFormat
) AS
SELECT *
FROM OPENROWSET(BULK N'/delta/sales_fy22/',
FORMAT = 'DELTA',
DATA_SOURCE = 's3_delta') AS [r];
En el ejercicio siguiente, usará CETAS para:
- Exportar una tabla como Parquet.
- Mover los datos fríos de una base de datos al almacenamiento.
- Cree una tabla externa para acceder a los datos almacenados.
- Usar vistas, búsqueda con comodín, eliminación de carpetas y metadatos como estrategias de consulta.