Compartilhar via


plugin infer_storage_schema_with_suggestions

Aplica-se a: ✅Microsoft FabricAzure 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 com id, 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 sugerido ApplicableTransformationMapping 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

evaluateinfer_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"
    }
  ]
}