Complemento infer_storage_schema_with_suggestions
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer
Este infer_storage_schema_with_suggestions
complemento deduce el esquema de datos externos y devuelve un objeto JSON. Para cada columna, el objeto proporciona un tipo inferido, un tipo recomendado y la transformación de asignación recomendada. La lógica de sugerencias proporciona el tipo y la asignación recomendados que determinan el tipo óptimo mediante la siguiente lógica:
- Columnas de identidad: si el tipo inferido de una columna es
long
y el nombre de columna termina conid
, el tipo sugerido esstring
porque proporciona una indexación optimizada para las columnas de identidad en las que los filtros de igualdad son comunes. - Columnas datetime de Unix: si el tipo inferido de una columna es
long
y una de las transformaciones de asignación de fecha y hora de unix genera un valor datetime válido, el tipo sugerido esdatetime
y la asignación sugeridaApplicableTransformationMapping
es la que generó un valor de fecha y hora válido.
El complemento se invoca con el evaluate
operador . Para obtener el esquema de tabla que usa el esquema deducido para Crear y modificar tablas externas de Azure Storage sin sugerencias, use el complemento infer_storage_schema .
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_with_suggestions(
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
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
StorageContainers | dynamic |
✔️ | Matriz de cadena de conexión de almacenamiento que representan el URI de prefijo para artefactos de datos almacenados. |
DataFormat | string |
✔️ | Uno de los formatos de datos admitidos para la ingesta |
FileExtension | string |
Si se especifica, la función solo examina los archivos que terminan con esta extensión de archivo. Especificar la extensión puede acelerar el proceso o eliminar problemas de lectura de datos. | |
FileNamePrefix | string |
Si se especifica, la función solo examina los archivos a partir de este prefijo. Especificar el prefijo puede acelerar el proceso. | |
Modo | string |
Estrategia de inferencia de esquema. Valor de: any , last , all . La función deduce el esquema de datos del primer archivo encontrado, del último archivo escrito o de todos los archivos respectivamente. El valor predeterminado es last . |
|
InferenceOptions | dynamic |
Más opciones de inferencia. Opciones válidas: UseFirstRowAsHeader para formatos de archivo delimitados. Por ejemplo: 'InferenceOptions': {'UseFirstRowAsHeader': true} . |
Devoluciones
El infer_storage_schema_with_suggestions
complemento devuelve una sola tabla de resultados que contiene una sola fila o columna que contiene una cadena JSON.
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 usarlos.
Ejemplo
let options = dynamic({
'StorageContainers': [
h@'https://storageaccount.blob.core.windows.net/MobileEvents;secretKey'
],
'FileExtension': '.json',
'FileNamePrefix': 'js-',
'DataFormat': 'json'
});
evaluate infer_storage_schema_with_suggestions(options)
Datos de entrada de ejemplo
{
"source": "DataExplorer",
"created_at": "2022-04-10 15:47:57",
"author_id": 739144091473215488,
"time_millisec":1547083647000
}
Salida
{
"Columns": [
{
"OriginalColumn": {
"Name": "source",
"CslType": {
"type": "string",
"IsNumeric": false,
"IsSummable": false
}
},
"RecommendedColumn": {
"Name": "source",
"CslType": {
"type": "string",
"IsNumeric": false,
"IsSummable": false
}
},
"ApplicableTransformationMapping": "None"
},
{
"OriginalColumn": {
"Name": "created_at",
"CslType": {
"type": "datetime",
"IsNumeric": false,
"IsSummable": true
}
},
"RecommendedColumn": {
"Name": "created_at",
"CslType": {
"type": "datetime",
"IsNumeric": false,
"IsSummable": true
}
},
"ApplicableTransformationMapping": "None"
},
{
"OriginalColumn": {
"Name": "author_id",
"CslType": {
"type": "long",
"IsNumeric": true,
"IsSummable": true
}
},
"RecommendedColumn": {
"Name": "author_id",
"CslType": {
"type": "string",
"IsNumeric": false,
"IsSummable": false
}
},
"ApplicableTransformationMapping": "None"
},
{
"OriginalColumn": {
"Name": "time_millisec",
"CslType": {
"type": "long",
"IsNumeric": true,
"IsSummable": true
}
},
"RecommendedColumn": {
"Name": "time_millisec",
"CslType": {
"type": "datetime",
"IsNumeric": false,
"IsSummable": true
}
},
"ApplicableTransformationMapping": "DateTimeFromUnixMilliseconds"
}
]
}