Creación y modificación de tablas externas delta en Azure Storage
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer
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.
Para acelerar las consultas a través de tablas delta externas, consulte Directiva de aceleración de consultas.
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.