Complemento infer_storage_schema
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer
Este complemento deduce el esquema de datos externos y lo devuelve como cadena de esquema de CSL. La cadena se puede usar al crear tablas externas. El complemento se invoca con el evaluate
operador .
Autenticación y autorización
En las propiedades de la solicitud, especifique los cadena de conexión de almacenamiento a los que acceder. Cada cadena de conexión de almacenamiento especifica el método de autorización que se va a usar para el acceso al almacenamiento. En función del método de autorización, es posible que sea necesario conceder permisos a la entidad de seguridad en el almacenamiento externo para realizar la inferencia de esquema.
En la tabla siguiente se enumeran los métodos de autenticación admitidos y los permisos necesarios por tipo de almacenamiento.
Método de autenticación | Azure Blob Storage/Data Lake Storage Gen2 | Data Lake Storage Gen1 |
---|---|---|
Suplantación | Lector de datos de blobs de almacenamiento | Lector |
Token de acceso compartido (SAS) | Lista y lectura | Este método de autenticación no se admite en Gen1. |
Token de acceso de Microsoft Entra | ||
Clave de acceso de la cuenta de almacenamiento | Este método de autenticación no se admite en Gen1. |
Sintaxis
evaluate
infer_storage_schema(
Opciones )
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
Opciones | dynamic |
✔️ | Contenedor de propiedades que especifica las propiedades de la solicitud. |
Propiedades admitidas de la solicitud
Devoluciones
El infer_storage_schema
complemento devuelve una sola tabla de resultados que contiene una sola fila o columna que contiene la cadena de esquema CSL.
Nota:
- Las claves secretas del URI del contenedor de almacenamiento deben tener los permisos para List además de Read.
- La estrategia de inferencia de esquemas "all" es una operación muy "costosa", ya que implica la lectura de todos los artefactos encontrados y la combinación de su esquema.
- Es posible que algunos tipos devueltos no sean los reales como resultado de una estimación de tipo incorrecta (o, como resultado del proceso de combinación de esquemas). Este es el motivo por el que debe revisar el resultado cuidadosamente antes de crear una tabla externa.
Ejemplo
let options = dynamic({
'StorageContainers': [
h@'https://storageaccount.blob.core.windows.net/MobileEvents;secretKey'
],
'FileExtension': '.parquet',
'FileNamePrefix': 'part-',
'DataFormat': 'parquet'
});
evaluate infer_storage_schema(options)
Salida
CslSchema |
---|
app_id:string, user_id:long, event_time:datetime, country:string, city:string, device_type:string, device_vendor:string, ad_network:string, campaign:string, site_id:string, event_type:string, event_name:string, organic:string, days_from_install:int, revenue:real |
Use el esquema devuelto en la definición de tabla externa:
.create external table MobileEvents(
app_id:string, user_id:long, event_time:datetime, country:string, city:string, device_type:string, device_vendor:string, ad_network:string, campaign:string, site_id:string, event_type:string, event_name:string, organic:string, days_from_install:int, revenue:real
)
kind=blob
partition by (dt:datetime = bin(event_time, 1d), app:string = app_id)
pathformat = ('app=' app '/dt=' datetime_pattern('yyyyMMdd', dt))
dataformat = parquet
(
h@'https://storageaccount.blob.core.windows.net/MovileEvents;secretKey'
)