Share via


Creación y modificación de tablas externas delta en Azure Storage

Los comandos de este artículo se pueden usar para crear o modificar una tabla externa delta en la base de datos desde la que se ejecuta el comando. Una tabla externa delta hace referencia a los datos de tabla de Delta Lake ubicados en Azure Blob Storage, Azure Data Lake Store Gen1 o Azure Data Lake Store Gen2.

Nota

Si la tabla existe, se producirá un error en el .create comando. Use .create-or-alter o .alter para modificar las tablas existentes.

Permisos

Para .create requerir al menos permisos de usuario de base de datos y para .alter requerir al menos permisos de table Administración.

Para .create-or-alter una tabla externa mediante la autenticación de identidad administrada, se requieren permisos AllDatabasesAdmin .

Syntax

(.create.alter | | .create-or-alter) externaltableTableName [(Schema)] kind(=deltaStorageConnectionString) [with(Property [, ...])]

Más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Requerido Descripción
TableName string ✔️ Un nombre de tabla externo que se adhiere a las reglas de nombres de entidad . Una tabla externa no puede tener el mismo nombre que una tabla normal en la misma base de datos.
Esquema string El esquema de datos externos opcional es una lista separada por comas de uno o varios nombres de columna y tipos de datos, donde cada elemento sigue el formato: ColumnName:ColumnType. Si no se especifica, se deducirá automáticamente del registro delta en función de la versión más reciente de la tabla delta.
StorageConnectionString string ✔️ ruta de acceso de la carpeta raíz de la tabla delta, incluidas las credenciales. Puede apuntar a Azure Blob Storage contenedor de blobs, al sistema de archivos de Azure Data Lake Gen 2 o al contenedor de Azure Data Lake Gen 1. El tipo de almacenamiento de tablas externas viene determinado por el cadena de conexión proporcionado. Consulte cadenas de conexión de almacenamiento.
Propiedad string Un par de propiedades clave-valor con el formato PropertyName=PropertyValue. Consulte las propiedades opcionales.

Nota

  • Si se proporciona un esquema personalizado, las columnas o columnas no existentes que tengan tipos incompatibles se rellenarán con valores NULL.
  • La información sobre las particiones se deduce automáticamente del registro delta. Las columnas de partición se agregan como columnas virtuales al esquema de tabla. Para más información, consulte Columnas virtuales.
  • El formato de ruta de acceso se deduce automáticamente de la información de creación de particiones. Para más información, consulte Formato de ruta de acceso.

Sugerencia

Para un esquema personalizado, puede usar el complemento infer_storage_schema para deducir el esquema en función del contenido del archivo externo.

Autenticación y autorización

El método de autenticación para acceder a una tabla externa se basa en el cadena de conexión proporcionado durante su creación y los permisos necesarios para acceder a la tabla varían en función del método de autenticación.

Los métodos de autenticación admitidos son los mismos que los admitidos por las tablas externas de Azure Storage.

Propiedades opcionales

Propiedad Tipo Descripción
folder string Carpeta de la tabla
docString string Cadena que documenta la tabla
namePrefix string Si se establece, indica el prefijo de los archivos. En las operaciones de escritura, todos los archivos se escribirán con este prefijo. En las operaciones de lectura, solo se leen los archivos con este prefijo.
fileExtension string Si se establece, indica las extensiones de archivo de los archivos. Al escribir, los nombres de los archivos terminarán con este sufijo. En lectura, solo se leerán los archivos con esta extensión de archivo.
encoding string Indica cómo se codifica el texto: UTF8NoBOM (valor predeterminado) o UTF8BOM.
dryRun bool Si se establece, la definición de tabla externa no se conserva. Esta opción es útil para validar la definición de tabla externa, especialmente junto con el filesPreview parámetro o sampleUris .

Nota

Se tiene acceso a la tabla delta externa durante la creación, para deducir la información de creación de particiones y, opcionalmente, el esquema. Asegúrese de que la definición de tabla es válida y de que el almacenamiento es accesible.

Ejemplos

Crear o modificar una tabla externa delta con un esquema inferido

En la tabla externa siguiente, el esquema se deduce automáticamente de la versión más reciente de la tabla delta.

.create-or-alter external table ExternalTable  
kind=delta 
( 
   h@'https://storageaccount.blob.core.windows.net/container1;secretKey'
) 

Creación de una tabla externa delta con un esquema personalizado

En la tabla externa siguiente, se especifica un esquema personalizado e invalida el esquema de la tabla delta. Si, en algún momento posterior, debe reemplazar el esquema personalizado por el esquema basado en la versión más reciente de la tabla delta, ejecute el .alter | .create-or-alter comando sin especificar un esquema, como en el ejemplo anterior.

.create external table ExternalTable (Timestamp:datetime, x:long, s:string) 
kind=delta
( 
   h@'abfss://filesystem@storageaccount.dfs.core.windows.net/path;secretKey'
)

Limitaciones

  • No se admite el viaje en el tiempo. Solo se usa la versión más reciente de la tabla delta.