Compartir vía


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 administrador de tablas.

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

Sintaxis

(.create | | .alter.create-or-alter) external table TableName [(Schema)] kind delta =(StorageConnectionString ) [with (Propiedad [, ...]])

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Type Obligatorio Descripción
TableName string ✔️ Nombre de tabla externo que cumple 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 al contenedor de blobs de Azure Blob Storage, 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 cadena de conexión de almacenamiento.
Propiedad string 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 obtener 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 obtener 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. En escritura, los nombres de 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 obtiene 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 sea válida y de que el almacenamiento sea 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, debe reemplazar el esquema personalizado por el esquema en función de 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.