plugin infer_storage_schema_with_suggestions
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer
Este infer_storage_schema_with_suggestions
plug-in infere o esquema de dados externos e retorna um objeto JSON. Para cada coluna, o objeto fornece o tipo inferido, um tipo recomendado e a transformação de mapeamento recomendada. O tipo e o mapeamento recomendados são fornecidos pela lógica de sugestão que determina o tipo ideal usando a seguinte lógica:
- Colunas de identidade: se o tipo inferido de uma coluna for
long
e o nome da coluna terminar comid
, o tipo sugerido serástring
uma vez que fornece indexação otimizada para colunas de identidade em que os filtros de igualdade são comuns. - Colunas de data e hora do Unix: se o tipo inferido de uma coluna for
long
e uma das transformações de mapeamento de tempo para data e hora do unix produzir um valor de data e hora válido, o tipo sugerido serádatetime
e o mapeamento sugeridoApplicableTransformationMapping
será aquele que produziu um valor de data e hora válido.
O plug-in é invocado com o evaluate
operador. Para obter o esquema de tabela que usa o esquema inferido para Criar e alterar tabelas externas do Armazenamento do Azure sem sugestões, use o plug-in infer_storage_schema .
Autenticação e autorização
Nas propriedades da solicitação, você especifica cadeias de conexão de armazenamento a serem acessadas. Cada cadeia de conexão de armazenamento especifica o método de autorização a ser usado para acessar o armazenamento. Dependendo do método de autorização, a entidade de segurança pode precisar receber permissões no armazenamento externo para executar a inferência de esquema.
A tabela a seguir lista os métodos de autenticação com suporte e todas as permissões necessárias por tipo de armazenamento.
Método de autenticação | Armazenamento de Blobs do Azure/Data Lake Storage Gen2 | Data Lake Storage Gen1 |
---|---|---|
Representação | Leitor de Dados do Blob de Armazenamento | Leitor |
Token de Acesso Compartilhado (SAS) | Listar + Ler | Não há suporte para esse método de autenticação no Gen1. |
Token de acesso do Microsoft Entra | ||
Chave de acesso da conta de armazenamento | Não há suporte para esse método de autenticação no Gen1. |
Sintaxe
evaluate
infer_storage_schema_with_suggestions(
Opções )
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Digitar | Obrigatória | Descrição |
---|---|---|---|
Opções | dynamic |
✔️ | Um recipiente de propriedades especificando as propriedades da solicitação. |
Propriedades com suporte da solicitação
Nome | Digitar | Obrigatória | Descrição |
---|---|---|---|
Contêineres de armazenamento | dynamic |
✔️ | Uma matriz de cadeias de conexão de armazenamento que representam o URI de prefixo para artefatos de dados armazenados. |
DataFormat | string |
✔️ | Um dos formatos de dados suportados com suporte para assimilação |
FileExtension | string |
Se especificado, a função verifica apenas os arquivos que terminam com essa extensão de arquivo. Especificar a extensão pode acelerar o processo ou eliminar problemas de leitura de dados. | |
Prefixo do nome do arquivo | string |
Se especificado, a função verifica apenas arquivos que começam com esse prefixo. Especificar o prefixo pode acelerar o processo. | |
Modo | string |
A estratégia de inferência de esquema. Um valor de: any , last , all . A função infere o esquema de dados do primeiro arquivo encontrado, do último arquivo gravado ou de todos os arquivos, respectivamente. O valor padrão é last . |
|
Opções de inferência | dynamic |
Mais opções de inferência. Opções válidas: UseFirstRowAsHeader para formatos de arquivo delimitados. Por exemplo, 'InferenceOptions': {'UseFirstRowAsHeader': true} . |
Devoluções
O infer_storage_schema_with_suggestions
plug-in retorna uma única tabela de resultados contendo uma única linha/coluna contendo uma string JSON.
Observação
- As chaves secretas do URI do contêiner de armazenamento devem ter as permissões para Lista , além de Leitura.
- A estratégia de inferência de esquema 'all' é uma operação muito "cara", pois implica ler todos os artefatos encontrados e mesclar seu esquema.
- Alguns tipos retornados podem não ser os reais como resultado de uma suposição de tipo incorreta (ou, como resultado do processo de mesclagem de esquema). É por isso que você deve revisar o resultado cuidadosamente antes de usá-los.
Exemplo
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)
Exemplo de dados de entrada
{
"source": "DataExplorer",
"created_at": "2022-04-10 15:47:57",
"author_id": 739144091473215488,
"time_millisec":1547083647000
}
Saída
{
"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"
}
]
}