Compartir a través de


CREATE EXTERNAL FILE FORMAT (Transact-SQL)

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Crea un objeto de formato de archivo externo que define datos externos almacenados en Hadoop, Azure Blob Storage, Azure Data Lake Store o para los flujos de entrada y salida asociados con flujos externos. La creación de un formato de archivo externo es un requisito previo para crear una tabla externa. Al crear un formato de archivo externo, se especifica el diseño real de los datos a los que hace referencia una tabla externa. Para crear una tabla externa, vea CREATE EXTERNAL TABLE (Transact-SQL).

Se admiten los formatos de archivo siguientes:

Convenciones de sintaxis de Transact-SQL

Sintaxis

-- Create an external file format for DELIMITED (CSV/TSV) files.
CREATE EXTERNAL FILE FORMAT file_format_name
WITH (
        FORMAT_TYPE = DELIMITEDTEXT
    [ , FORMAT_OPTIONS ( <format_options> [ ,...n  ] ) ]
    [ , DATA_COMPRESSION = {
           'org.apache.hadoop.io.compress.GzipCodec'
        }
     ]);

<format_options> ::=
{
    FIELD_TERMINATOR = field_terminator
    | STRING_DELIMITER = string_delimiter
    | FIRST_ROW = integer -- Applies to: Azure Synapse Analytics and SQL Server 2022 and later versions
    | DATE_FORMAT = datetime_format
    | USE_TYPE_DEFAULT = { TRUE | FALSE }
    | ENCODING = {'UTF8' | 'UTF16'}
    | PARSER_VERSION = {'parser_version'}

}

Argumentos

file_format_name

Especifica un nombre para el formato de archivo externo.

FORMAT_TYPE

Especifica el formato de los datos externos.

  • FORMAT_TYPE = PARQUET

    Especifica un formato Parquet.

  • FORMAT_TYPE = ORC

    Especifica un formato ORC (Optimized Row Columnar). Esta opción requiere Hive versión 0.11 o superior en el clúster externo de Hadoop. En Hadoop, el formato de archivo ORC ofrece un rendimiento y una comprensión mejores que el formato de archivo RCFILE.

  • FORMAT_TYPE = RCFILE, SERDE_METHOD = SERDE_method

    Especifica un formato de archivo de Record Columnar. Esta opción exige especificar un método Serializer y Deserializer (SerDe) de Hive. Este requisito es el mismo si se usa Hive/HiveQL en Hadoop para consultar archivos RC. Tenga en cuenta que el método SerDe distingue mayúsculas de minúsculas.

    Ejemplos de especificación de RCFile con los dos métodos SerDe que admite PolyBase.

    • FORMAT_TYPE = RCFILE, SERDE_METHOD = 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe'
    • FORMAT_TYPE = RCFILE, SERDE_METHOD = 'org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe'
  • FORMAT_TYPE = DELIMITEDTEXT

    Especifica un formato de texto con delimitadores de columna, también denominados terminadores de campo.

  • FORMAT_TYPE = JSON

    Especifica un formato JSON. Solo se aplica a Azure SQL Edge.

  • FORMAT_TYPE = DELTA

    Especifica un formato de Delta Lake. Se aplica a los grupos de SQL sin servidor en Azure Synapse Analytics y a SQL Server 2022 (16.x).

FORMAT_OPTIONS

Opcional. Solo para tipos de datos de texto delimitados.

Solo los grupos de SQL sin servidor en Azure Synapse Analytics admiten PARSER_VERSION.

Los grupos de SQL sin servidor no admiten la DATE_FORMAT opción .

DATA_COMPRESSION = data_compression_method

Especifica el método de compresión de datos de los datos externos. Cuando DATA_COMPRESSION no se especifica, el valor predeterminado es datos sin comprimir.

Para funcionar correctamente, los archivos comprimidos Gzip deben tener la .gz extensión de archivo.

El DELIMITEDTEXT tipo de formato admite este método de compresión: DATA_COMPRESSION = org.apache.hadoop.io.compress.GzipCodec

Opciones de formato de texto delimitado

Las opciones de formato descritas en esta sección son opcionales y solo se aplican a archivos de texto delimitado.

FIELD_TERMINATOR = field_terminator

Se aplica solo a los archivos de texto delimitado. El terminador de campo especifica uno o varios caracteres que marcan el final de cada campo (columna) en el archivo de texto delimitado. El valor predeterminado es el carácter de barra vertical |. Para garantizar la compatibilidad, se recomienda usar uno o varios caracteres ASCII.

Ejemplos:

  • FIELD_TERMINATOR = '|'
  • FIELD_TERMINATOR = ' '
  • FIELD_TERMINATOR = ꞌ\tꞌ
  • FIELD_TERMINATOR = '~|~'

STRING_DELIMITER

STRING_DELIMITER = *string_delimiter*

Especifica un carácter que incluye los valores textuales en el archivo delimitado por texto. El valor predeterminado es la cadena vacía "". El valor de STRING_DELIMITER es funcionalmente equivalente a la opción FIELDQUOTE de la OPENROWSET BULK función .

Nota

Las tablas de Hadoop en grupos de SQL dedicados de Synapse permiten especificar uno o varios caracteres en STRING_DELIMITER. En el grupo de SQL sin servidor, solo puede usar un carácter.

Ejemplos:

  • STRING_DELIMITER = '"'

  • STRING_DELIMITER = '0x22' (comilla doble hexadecimal)

  • STRING_DELIMITER = '*'

  • STRING_DELIMITER = ꞌ,ꞌ

  • STRING_DELIMITER = '0x7E0x7E' (Dos tildes, por ejemplo, ~~) : se admite en el grupo de SQL dedicado.

FIRST_ROW = first_row_int

Se aplica a: Azure Synapse Analytics, SQL Server 2022 y versiones posteriores.

Especifica el número de filas que se leen en primer lugar en todos los archivos durante una carga de PolyBase. Este parámetro puede tener los valores comprendidos entre 1 y 15. Si el valor se establece en dos, se omite la primera fila de cada archivo (fila de encabezado) al cargar los datos. Las filas se omiten en función de la existencia de terminadores de fila (/r/n, /r, /n). Cuando esta opción se usa para la exportación, se agregan filas a los datos para asegurarse de que el archivo pueda leerse sin pérdida de datos. Si el valor se establece en >2, la primera fila exportada son los nombres de columna de la tabla externa.

DATE_FORMAT = datetime_format

Especifica un formato personalizado para todos los datos de fecha y hora que pueden aparecer en un archivo de texto delimitado. Si el archivo de origen usa formatos de fecha y hora predeterminados, esta opción no es necesaria. Solo se permite un formato de fecha y hora personalizado por archivo. No se puede especificar más de un formato de fecha y hora personalizado por archivo. Pero puede usar más de un formato de fecha y hora si cada uno de ellos es el predeterminado de su tipo de datos respectivo en la definición de la tabla externa.

Importante

PolyBase solo usa el formato de fecha personalizado para importar los datos. No lo usa para escribir datos en un archivo externo.

Si DATE_FORMAT no se especifica o es una cadena vacía, PolyBase usa los formatos predeterminados siguientes:

  • datetime: 'yyyy-MM-dd HH:mm:ss'

  • smalldatetime: 'yyyy-MM-dd HH:mm'

  • fecha: 'yyyy-MM-dd'

  • datetime2: 'yyyy-MM-dd HH:mm:ss'

  • datetimeoffset: 'yyyy-MM-dd HH:mm:ss'

  • hora: 'HH:mm:ss'

Importante

Si se especifican invalidaciones personalizadas DATE_FORMAT , se invalidan todos los formatos de tipo predeterminados. Esto significa que deberá tener los mismos formatos de fecha en todas las celdas de datetime, fecha y hora de sus archivos. Con la invalidada DATE_FORMAT, no puede tener valores de fecha y hora en un formato diferente.

Los formatos de fecha de ejemplo se encuentran en la tabla siguiente:

Notas sobre la tabla:

  • El año, el mes y el día pueden adoptar distintos formatos y órdenes. La tabla muestra solo el formato amd. El mes puede tener uno o dos dígitos, o tres caracteres. El día puede tener uno o dos dígitos. El año puede tener dos o cuatro dígitos.

  • No se requieren milisegundos (fffffff).

  • am o pm (tt) no es necesario. El valor predeterminado es AM.

Tipo de fecha Ejemplo Descripción
datetime DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fff Además del año, mes y día, este formato de fecha incluye 00-24 horas, 00-59 minutos, 00-59 segundos y tres dígitos para milisegundos.
datetime DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffftt Además del año, mes y día, este formato de fecha incluye 00-12 horas, 00-59 minutos, 00-59 segundos, tres dígitos para milisegundos y AM, am, PMo pm.
smalldatetime DATE_FORMAT = yyyy-MM-dd HH:mm Además de año, mes y día, este formato de fecha incluye 00-23 horas, 00-59 minutos.
smalldatetime DATE_FORMAT = yyyy-MM-dd hh:mmtt Además del año, mes y día, este formato de fecha incluye 00-11 horas, 00-59 minutos, sin segundos y AM, am, PMo pm.
fecha DATE_FORMAT = yyyy-MM-dd Año, mes y día. No se incluye ningún elemento de hora.
fecha DATE_FORMAT = yyyy-MMM-dd Año, mes y día. Cuando se especifica month con MMM, el valor de entrada es una o las cadenas, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov o Dec.
datetime2 DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fffffff Además del año, mes y día, este formato de fecha incluye 00-23 horas, 00-59 minutos, 00-59 segundos y siete dígitos para milisegundos.
datetime2 DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffffffftt Además del año, mes y día, este formato de fecha incluye 00-11 horas, 00-59 minutos, 00-59 segundos, siete dígitos para milisegundos y AM, am, PMo pm.
datetimeoffset DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fffffff zzz Además de año, mes y día, este formato de fecha incluye 00-23 horas, 00-59 minutos, 00-59 segundos y 7 dígitos para los milisegundos, además del desfase de zona horaria incluido en el archivo de entrada como {+&#124;-}HH:ss. Por ejemplo, puesto que la hora de Los Ángeles sin horario de verano aplicado es 8 horas por delante de la hora UTC, un valor de -08:00 en el archivo de entrada especifica la zona horaria de Los Ángeles.
datetimeoffset DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffffffftt zzz Además del año, mes y día, este formato de fecha incluye 00-11 horas, 00-59 minutos, 00-59 segundos, siete dígitos para milisegundos, (AM, am, PMo pm) y el desplazamiento de zona horaria. Vea la descripción de la fila anterior.
tiempo DATE_FORMAT = HH:mm:ss No hay ningún valor de fecha, solo 00-23 horas, 00-59 minutos y 00-59 segundos.

Formatos de fecha y hora admitidos

El formato de archivo externo puede describir un gran número de formatos de fecha y hora:

datetime smalldatetime fecha datetime2 datetimeoffset
[M[M]]M-[d]d-[yy]yy HH:mm:ss[.fff] [M[M]]M-[d]d-[yy]yy HH:mm[:00] [M[M]]M-[d]d-[yy]yy [M[M]]M-[d]d-[yy]yy HH:mm:ss[.fffffff] [M[M]]M-[d]d-[yy]yy HH:mm:ss[.fffffff] zzz
[M[M]]M-[d]d-[yy]yy hh:mm:ss[.fff][tt] [M[M]]M-[d]d-[yy]yy hh:mm[:00][tt] [M[M]]M-[d]d-[yy]yy hh:mm:ss[.fffffff][tt] [M[M]]M-[d]d-[yy]yy hh:mm:ss[.fffffff][tt] zzz
[M[M]]M-[yy]yy-[d]d HH:mm:ss[.fff] [M[M]]M-[yy]yy-[d]d HH:mm[:00] [M[M]]M-[yy]yy-[d]d [M[M]]M-[yy]yy-[d]d HH:mm:ss[.fffffff] [M[M]]M-[yy]yy-[d]d HH:mm:ss[.fffffff] zzz
[M[M]]M-[yy]yy-[d]d hh:mm:ss[.fff][tt] [M[M]]M-[yy]yy-[d]d hh:mm[:00][tt] [M[M]]M-[yy]yy-[d]d hh:mm:ss[.fffffff][tt] [M[M]]M-[yy]yy-[d]d hh:mm:ss[.fffffff][tt] zzz
[yy]yy-[M[M]]M-[d]d HH:mm:ss[.fff] [yy]yy-[M[M]]M-[d]d HH:mm[:00] [yy]yy-[M[M]]M-[d]d [yy]yy-[M[M]]M-[d]d HH:mm:ss[.fffffff] [yy]yy-[M[M]]M-[d]d HH:mm:ss[.fffffff] zzz
[yy]yy-[M[M]]M-[d]d hh:mm:ss[.fff][tt] [yy]yy-[M[M]]M-[d]d hh:mm[:00][tt] [yy]yy-[M[M]]M-[d]d hh:mm:ss[.fffffff][tt] [yy]yy-[M[M]]M-[d]d hh:mm:ss[.fffffff][tt] zzz
[yy]yy-[d]d-[M[M]]M HH:mm:ss[.fff] [yy]yy-[d]d-[M[M]]M HH:mm[:00] [yy]yy-[d]d-[M[M]]M [yy]yy-[d]d-[M[M]]M HH:mm:ss[.fffffff] [yy]yy-[d]d-[M[M]]M HH:mm:ss[.fffffff] zzz
[yy]yy-[d]d-[M[M]]M hh:mm:ss[.fff][tt] [yy]yy-[d]d-[M[M]]M hh:mm[:00][tt] [yy]yy-[d]d-[M[M]]M hh:mm:ss[.fffffff][tt] [yy]yy-[d]d-[M[M]]M hh:mm:ss[.fffffff][tt] zzz
[d]d-[M[M]]M-[yy]yy HH:mm:ss[.fff] [d]d-[M[M]]M-[yy]yy HH:mm[:00] [d]d-[M[M]]M-[yy]yy [d]d-[M[M]]M-[yy]yy HH:mm:ss[.fffffff] [d]d-[M[M]]M-[yy]yy HH:mm:ss[.fffffff] zzz
[d]d-[M[M]]M-[yy]yy hh:mm:ss[.fff][tt] [d]d-[M[M]]M-[yy]yy hh:mm[:00][tt] [d]d-[M[M]]M-[yy]yy hh:mm:ss[.fffffff][tt] [d]d-[M[M]]M-[yy]yy hh:mm:ss[.fffffff][tt] zzz
[d]d-[yy]yy-[M[M]]M HH:mm:ss[.fff] [d]d-[yy]yy-[M[M]]M HH:mm[:00] [d]d-[yy]yy-[M[M]]M [d]d-[yy]yy-[M[M]]M HH:mm:ss[.fffffff] [d]d-[yy]yy-[M[M]]M HH:mm:ss[.fffffff] zzz
[d]d-[yy]yy-[M[M]]M hh:mm:ss[.fff][tt] [d]d-[yy]yy-[M[M]]M hh:mm[:00][tt] [d]d-[yy]yy-[M[M]]M hh:mm:ss[.fffffff][tt] [d]d-[yy]yy-[M[M]]M hh:mm:ss[.fffffff][tt] zzz

Detalles:

  • Para separar los valores de mes, día y año, debe usar uno de los siguientes separadores: -, / o .. Para simplificar, en la tabla solo se usa el separador -.

  • Para especificar el mes como texto, use tres o más caracteres. Los meses con uno o dos caracteres se interpretan como un número.

  • Para separar valores de hora, use el símbolo :.

  • Las letras entre corchetes son opcionales.

  • Las letras tt designan [AM|PM|am|pm]. AM es el valor predeterminado. Cuando tt se especifica , el valor de hora (hh) debe estar en el intervalo de 0 a 12.

  • Las letras zzz designan el desplazamiento de zona horaria para la zona horaria actual del sistema con el formato {+|-}HH:ss].

USE_TYPE_DEFAULT = { TRUE | FALSE }

Especifica cómo administrar valores que faltan en archivos de texto delimitado cuando PolyBase recupera datos del archivo de texto. El valor predeterminado es FALSE.

  • VERDADERO

    Al recuperar datos del archivo de texto, cada valor que falta se almacena mediante el valor predeterminado del tipo de datos de la columna correspondiente en la definición de la tabla externa. Por ejemplo, reemplace un valor que falta con:

    • 0 si la columna se define como una columna numérica. Las columnas decimales no se admiten y generarán un error.

    • Cadena vacía "" si la columna es una columna de cadena.

    • 1900-01-01 si la columna es una columna de fecha.

    • En Azure Synapse Analytics, USE_TYPE_DEFAULT=true no se admite para FORMAT_TYPE = DELIMITEDTEXT, PARSER_VERSION = '2.0'.

  • FALSO

    Almacene todos los valores que faltan como NULL. Los NULL valores almacenados mediante la palabra NULL del archivo de texto delimitado se importan como la cadena NULL.

ENCODING = {'UTF8' | 'UTF16'}

En Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW) (APS CU7.4), PolyBase puede leer archivos de texto delimitados y codificados con UTF8 y UTF16-LE.

En SQL Server, PolyBase no puede leer archivos codificados UTF16.

Permisos

Requiere el permiso ALTER ANY EXTERNAL FILE FORMAT.

Observaciones

El formato de archivo externo es de ámbito de base de datos en SQL Server y Azure Synapse Analytics. Es de ámbito de servidor en Sistema de la plataforma de análisis (PDW).

Las opciones de formato son todas opcionales y solo se aplican a archivos de texto delimitado.

Cuando los datos se almacenan en uno de los formatos comprimidos, PolyBase primero descomprime los datos para devolver los registros de datos.

Limitaciones

El delimitador de filas de los archivos de texto delimitado tiene que ser compatible con LineRecordReader de Hadoop. Debe ser \r, \n o \r\n. El usuario no puede configurar estos delimitadores.

Las combinaciones de métodos SerDe compatibles con RCFiles y los métodos de compresión de datos admitidos se han enumerado anteriormente en este artículo. No se admiten todas las combinaciones.

El número máximo de consultas de PolyBase simultáneas es 32. Si se están ejecutando 32 consultas simultáneas, cada consulta puede leer un máximo de 33.000 archivos de la ubicación del archivo externo. La carpeta raíz y cada subcarpeta también cuentan como un archivo. Si el grado de simultaneidad es menor que 32, la ubicación del archivo externo puede contener más de 33.000 archivos.

Debido a la limitación en el número de archivos en la tabla externa, se recomienda almacenar menos de 30.000 archivos en la raíz y las subcarpetas de la ubicación del archivo externo. Además, se recomienda mantener el número de subcarpetas bajo el directorio raíz en un número pequeño. Si hay referencias a demasiados archivos, podría producirse una excepción de memoria insuficiente de Máquina virtual Java.

Al exportar datos a Hadoop o Azure Blob Storage mediante PolyBase, solo se exportan los datos y no los nombres de columna (metadatos), tal como se define en el comando CREATE EXTERNAL TABLE.

Bloqueo

Toma un bloqueo compartido en el objeto EXTERNAL FILE FORMAT.

Rendimiento

El uso de archivos comprimidos siempre tiene el inconveniente de tener que elegir entre transferir menos datos entre el origen de datos externo y SQL Server y aumentar el uso de CPU para comprimir y descomprimir los datos.

Los archivos de texto comprimidos de Gzip no son divisibles. Para mejorar el rendimiento de los archivos de texto comprimidos de Gzip, se recomienda generar varios archivos que se almacenen en el mismo directorio del origen de datos externo. Esta estructura de archivos permite a PolyBase leer y descomprimir los datos con mayor rapidez al usar varios procesos de lector y descompresión. El número ideal de archivos comprimidos es el número máximo de procesos de lector de datos por nodo de proceso. En SQL Server

En Analytics Platform System (PDW), el número máximo de procesos de lector de datos es de 8 por nodo. En Azure Synapse Analytics, el número máximo de procesos de lector de datos es de 20 lectores por nodo.

Ejemplos

Un. Crear un formato de archivo externo DELIMITEDTEXT

En este ejemplo se crea un formato de archivo externo denominado textdelimited1 para un archivo de texto delimitado. Las opciones enumeradas para FORMAT_OPTIONS especifican que los campos del archivo deben separarse con un carácter de barra vertical |. El archivo de texto además se comprime con el códec de Gzip. Si DATA_COMPRESSION no se especifica, el archivo de texto no se comprimirá.

En un archivo de texto delimitado, el método de compresión de datos puede ser el códec predeterminado, org.apache.hadoop.io.compress.DefaultCodec, o el códec de Gzip, org.apache.hadoop.io.compress.GzipCodec.

CREATE EXTERNAL FILE FORMAT textdelimited1
WITH (
    FORMAT_TYPE = DELIMITEDTEXT,
    FORMAT_OPTIONS (
        FIELD_TERMINATOR = '|',
        DATE_FORMAT = 'MM/dd/yyyy' ),
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.GzipCodec'
);

B. Crear un formato de archivo externo RCFile

Este ejemplo crea un formato de archivo externo para un archivo RCFile que usa el método serialization/deserialization de org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe. Además se especifica el uso del códec predeterminado para el método de compresión de datos. Si DATA_COMPRESSION no se especifica, el valor predeterminado no es compresión.

CREATE EXTERNAL FILE FORMAT rcfile1
WITH (
    FORMAT_TYPE = RCFILE,
    SERDE_METHOD = 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe',
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.DefaultCodec'
);

C. Crear un formato de archivo externo ORC

En este ejemplo se crea un formato de archivo externo para un archivo ORC que comprime los datos con el método de compresión de datos org.apache.io.compress.SnappyCodec. Si DATA_COMPRESSION no se especifica, el valor predeterminado no es compresión.

CREATE EXTERNAL FILE FORMAT orcfile1
WITH (
    FORMAT_TYPE = ORC,
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);

D. Crear un formato de archivo externo PARQUET

En este ejemplo se crea un formato de archivo externo para un archivo Parquet que comprime los datos con el método de compresión de datos org.apache.io.compress.SnappyCodec. Si DATA_COMPRESSION no se especifica, el valor predeterminado no es compresión.

CREATE EXTERNAL FILE FORMAT parquetfile1
WITH (
    FORMAT_TYPE = PARQUET,
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);

E. Crear un archivo de texto delimitado y omitir la fila de encabezado

Se aplica a: Azure Synapse Analytics y SQL Server 2022 (16.x) y versiones posteriores.

En este ejemplo se crea un formato de archivo externo para el archivo CSV con una sola fila de encabezado. Para obtener más información, consulte Virtualización de un archivo CSV con PolyBase.

CREATE EXTERNAL FILE FORMAT skipHeader_CSV
WITH (FORMAT_TYPE = DELIMITEDTEXT,
      FORMAT_OPTIONS(
          FIELD_TERMINATOR = ',',
          STRING_DELIMITER = '"',
          FIRST_ROW = 2,
          USE_TYPE_DEFAULT = True)
);

F. Crear un formato de archivo externo JSON

Se aplica a: Azure SQL Edge.

En este ejemplo se crea un formato de archivo externo para un archivo JSON que comprime los datos con el método de compresión de datos org.apache.io.compress.SnappyCodec. Si DATA_COMPRESSION no se especifica, el valor predeterminado no es compresión. Este ejemplo se aplica a Azure SQL Edge y actualmente no es compatible con otros productos de SQL.

CREATE EXTERNAL FILE FORMAT jsonFileFormat
WITH (
    FORMAT_TYPE = JSON,
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);

G. Crear un formato de archivo externo de tabla delta

En este ejemplo se crea un formato de archivo externo para el formato de archivo de tipo de tabla delta. Este ejemplo se aplica a SQL Server 2022 (16.x). Para obtener más información, consulte Virtualizar tabla delta con PolyBase.

CREATE EXTERNAL FILE FORMAT DeltaFileFormat
WITH (
    FORMAT_TYPE = DELTA
);