Assistente de importação de dados no Azure AI Search

O assistente Importar dados no portal do Azure cria vários objetos usados para indexação e enriquecimento de IA em um serviço de pesquisa. Se você é novo no Azure AI Search, é um dos recursos mais poderosos à sua disposição. Com o mínimo de esforço, você pode criar um pipeline de indexação ou enriquecimento que exercite a maior parte da funcionalidade do Azure AI Search.

Se você estiver usando o assistente para testes de prova de conceito, este artigo explica o funcionamento interno do assistente para que você possa usá-lo de forma mais eficaz.

Este artigo não é um passo a passo. Para obter ajuda com o uso do assistente com dados de exemplo internos, consulte Guia de início rápido: criar um índice de pesquisa ou Guia de início rápido: criar um conjunto de habilidades de tradução de texto e entidade.

Iniciando o assistente

No portal do Azure, abra a página do serviço de pesquisa no painel ou localize seu serviço na lista de serviços. Na página Visão geral do serviço na parte superior, selecione Importar dados.

Screenshot of the Import data command

O assistente abre totalmente expandido na janela do navegador para que você tenha mais espaço para trabalhar.

Você também pode iniciar a Importação de dados de outros serviços do Azure, incluindo o Azure Cosmos DB, o Banco de Dados SQL do Azure, a Instância Gerenciada do SQL e o Armazenamento de Blobs do Azure. Procure Adicionar Pesquisa do Azure AI no painel de navegação esquerdo na página de visão geral do serviço.

Objetos criados pelo assistente

O assistente produzirá os objetos na tabela a seguir. Depois que os objetos são criados, você pode revisar suas definições JSON no portal ou chamá-los a partir do código.

Objeto Description
Indexador Um objeto de configuração que especifica uma fonte de dados, índice de destino, um conjunto de habilidades opcional, agendamento opcional e definições de configuração opcionais para entrega de erros e codificação base-64.
Origem de Dados Persiste as informações de conexão com uma fonte de dados com suporte no Azure. Um objeto de fonte de dados é usado exclusivamente com indexadores.
Índice Estrutura de dados física usada para pesquisa de texto completo e outras consultas.
Conjunto de competências Opcional. Um conjunto completo de instruções para manipular, transformar e moldar conteúdo, incluindo a análise e extração de informações de arquivos de imagem. A menos que o volume de trabalho esteja abaixo do limite de 20 transações por indexador por dia, o conjunto de habilidades deve incluir uma referência a um recurso multisserviço da IA do Azure que fornece enriquecimento.
Loja de conhecimento Opcional. Armazena a saída de um pipeline de enriquecimento de IA em tabelas e blobs no Armazenamento do Azure para análise independente ou processamento downstream.

Benefícios e limitações

Antes de escrever qualquer código, você pode usar o assistente para prototipagem e teste de prova de conceito. O assistente se conecta a fontes de dados externas, faz amostras dos dados para criar um índice inicial e, em seguida, importa os dados como documentos JSON para um índice no Azure AI Search.

Se você estiver avaliando conjuntos de habilidades, o assistente manipulará todos os mapeamentos de campo de saída e adicionará funções auxiliares para criar objetos utilizáveis. A divisão de texto será adicionada se você especificar um modo de análise. A mesclagem de texto é adicionada se você escolher a análise de imagem para que o assistente possa reunir descrições de texto com conteúdo de imagem. Habilidades de modelador adicionadas para suportar projeções válidas se você escolher a opção de armazenamento de conhecimento. Todas as tarefas acima vêm com uma curva de aprendizado. Se você é novo no enriquecimento, a capacidade de ter essas etapas tratadas para você permite que você meça o valor de uma habilidade sem ter que investir muito tempo e esforço.

A amostragem é o processo pelo qual um esquema de índice é inferido e tem algumas limitações. Quando a fonte de dados é criada, o assistente seleciona uma amostra aleatória de documentos para decidir quais colunas fazem parte da fonte de dados. Nem todos os arquivos são lidos, pois isso pode levar horas para fontes de dados muito grandes. Dada uma seleção de documentos, os metadados de origem, como nome ou tipo de campo, são usados para criar uma coleção de campos em um esquema de índice. Dependendo da complexidade dos dados de origem, talvez seja necessário editar o esquema inicial para precisão ou estendê-lo para integridade. Você pode fazer suas alterações embutidas na página de definição de índice.

No geral, as vantagens de usar o assistente são claras: desde que os requisitos sejam atendidos, você pode prototipar um índice consultável em poucos minutos. Algumas das complexidades da indexação, como a serialização de dados como documentos JSON, são tratadas pelo assistente.

O assistente não está isento de limitações. As restrições são resumidas da seguinte forma:

  • O assistente não suporta iteração ou reutilização. Cada passagem pelo assistente cria um novo índice, conjunto de habilidades e configuração de indexador. Somente as fontes de dados podem ser mantidas e reutilizadas no assistente. Para editar ou refinar outros objetos, exclua os objetos e comece de novo ou use as APIs REST ou o SDK do .NET para modificar as estruturas.

  • O conteúdo de origem deve residir em uma fonte de dados suportada.

  • A amostragem é feita sobre um subconjunto de dados de origem. Para fontes de dados grandes, é possível que o assistente perca campos. Talvez seja necessário estender o esquema ou corrigir os tipos de dados inferidos, se a amostragem for insuficiente.

  • O enriquecimento da IA, conforme exposto no portal, é limitado a um subconjunto de habilidades integradas.

  • Um repositório de conhecimento, que pode ser criado pelo assistente, é limitado a algumas projeções padrão e usa uma convenção de nomenclatura padrão. Se quiser personalizar nomes ou projeções, você precisará criar o armazenamento de conhecimento por meio da API REST ou dos SDKs.

  • O acesso público a todas as redes deve ser habilitado na fonte de dados suportada enquanto o assistente é usado, pois o portal não poderá acessar a fonte de dados durante a configuração se o acesso público estiver desabilitado. Isso significa que, se a fonte de dados tiver um firewall habilitado ou você tiver definido um link privado compartilhado, deverá desativá-los, executar o assistente de Importação de Dados e habilitá-lo após a conclusão da configuração do assistente. Se essa não for uma opção, você pode criar a fonte de dados, o indexador, o conjunto de habilidades e o índice do Azure AI Search por meio da API REST ou dos SDKs.

Fluxo de Trabalho

O assistente está organizado em quatro etapas principais:

  1. Conecte-se a uma fonte de dados do Azure com suporte.

  2. Crie um esquema de índice, inferido pela amostragem de dados de origem.

  3. Opcionalmente, adicione enriquecimento de IA para extrair ou gerar conteúdo e estrutura. As entradas para a criação de um repositório de conhecimento são coletadas nesta etapa.

  4. Execute o assistente para criar objetos, carregar dados, definir uma agenda e outras opções de configuração.

O fluxo de trabalho é um pipeline, então é uma maneira. Você não pode usar o assistente para editar nenhum dos objetos que foram criados, mas pode usar outras ferramentas do portal, como o designer de índice ou indexador ou os editores JSON, para atualizações permitidas.

Configuração da fonte de dados no assistente

O assistente Importar dados liga-se a uma fonte de dados externa suportada utilizando a lógica interna fornecida pelos indexadores do Azure AI Search, que estão equipados para obter amostras da origem, ler metadados, decifrar documentos para ler conteúdo e estrutura e serializar conteúdos como JSON para importação subsequente para o Azure AI Search.

Você pode colar em uma conexão com uma fonte de dados suportada em uma assinatura ou região diferente, mas o seletor Escolha uma conexão existente tem como escopo a assinatura ativa.

Screenshot of the Connect to your data tab.

Nem todas as fontes de dados de visualização têm a garantia de estar disponíveis no assistente. Como cada fonte de dados tem o potencial de introduzir outras alterações a jusante, uma fonte de dados de visualização só será adicionada à lista de fontes de dados se oferecer suporte total a todas as experiências no assistente, como definição de conjunto de habilidades e inferência de esquema de índice.

Você só pode importar de uma única tabela, exibição de banco de dados ou estrutura de dados equivalente, no entanto, a estrutura pode incluir subestruturas hierárquicas ou aninhadas. Para obter mais informações, consulte Como modelar tipos complexos.

Configuração do conjunto de habilidades no assistente

A configuração do conjunto de habilidades ocorre após a definição da fonte de dados porque o tipo de fonte de dados informará a disponibilidade de determinadas habilidades internas. Em particular, se você estiver indexando arquivos do Armazenamento de Blobs, sua escolha do modo de análise desses arquivos determinará se a análise de sentimento está disponível.

O assistente adicionará as habilidades que você escolher, mas também adicionará outras habilidades necessárias para alcançar um resultado bem-sucedido. Por exemplo, se você especificar um repositório de conhecimento, o assistente adicionará uma habilidade Shaper para dar suporte a projeções (ou estruturas de dados físicas).

Os conjuntos de habilidades são opcionais e há um botão na parte inferior da página para pular à frente se você não quiser enriquecimento de IA.

Configuração do esquema de índice no assistente

O assistente faz uma amostra da fonte de dados para detetar os campos e o tipo de campo. Dependendo da fonte de dados, ele também pode oferecer campos para indexação de metadados.

Como a amostragem é um exercício impreciso, analise o índice para as seguintes considerações:

  1. A lista de campos é precisa? Se a fonte de dados contiver campos que não foram selecionados na amostragem, você poderá adicionar manualmente quaisquer novos campos perdidos e remover os que não agreguem valor a uma experiência de pesquisa ou que não sejam usados em uma expressão de filtro ou perfil de pontuação.

  2. O tipo de dados é apropriado para os dados recebidos? O Azure AI Search dá suporte aos tipos de dados de modelo de dados de entidade (EDM). Para dados SQL do Azure, há um gráfico de mapeamento que estabelece valores equivalentes. Para obter mais informações, consulte Mapeamentos e transformações de campo.

  3. Você tem um campo que pode servir como chave? Este campo deve ser Edm.string e deve identificar exclusivamente um documento. Para dados relacionais, eles podem ser mapeados para uma chave primária. Para blobs, pode ser o metadata-storage-path. Se os valores de campo incluírem espaços ou traços, você deverá definir a opção Chave de codificação Base-64 na etapa Criar um indexador, em Opções avançadas, para suprimir a verificação de validação desses caracteres.

  4. Defina atributos para determinar como esse campo é usado em um índice.

    Dedique seu tempo a esta etapa porque os atributos determinam a expressão física dos campos no índice. Se você quiser alterar atributos mais tarde, mesmo programaticamente, quase sempre precisará descartar e reconstruir o índice. Os principais atributos, como Pesquisável e Recuperável, têm um impacto insignificante no armazenamento. A ativação de filtros e o uso de sugestões aumentam os requisitos de armazenamento.

    • Pesquisável permite a pesquisa de texto completo. Todos os campos usados em consultas de forma livre ou em expressões de consulta devem ter esse atributo. Índices invertidos são criados para cada campo marcado como pesquisável.

    • Recuperável retorna o campo nos resultados da pesquisa. Cada campo que fornece conteúdo para os resultados da pesquisa deve ter esse atributo. A definição deste campo não afeta significativamente o tamanho do índice.

    • Filtrável permite que o campo seja referenciado em expressões de filtro. Cada campo usado em uma expressão $filter deve ter esse atributo. As expressões de filtro são para correspondências exatas. Como as cadeias de texto permanecem intactas, é necessário mais armazenamento para acomodar o conteúdo literal.

    • Facetable habilita o campo para navegação facetada. Apenas os campos também marcados como Filtráveis podem ser marcados como Facetable.

    • Classificável permite que o campo seja usado em uma classificação. Cada campo usado em uma expressão $Orderby deve ter esse atributo.

  5. Precisa de análise lexical? Para campos Edm.string que são pesquisáveis, você pode definir um Analyzer se quiser indexação e consulta com idioma aprimorado.

    O padrão é Standard Lucene , mas você pode escolher o inglês da Microsoft se quiser usar o analisador da Microsoft para processamento lexical avançado, como resolver formas verbais e substantivos irregulares. Apenas analisadores de linguagem podem ser especificados no portal. O uso de um analisador personalizado ou de um analisador não linguístico como Palavra-chave, Padrão e assim por diante, deve ser feito programaticamente. Para obter mais informações sobre analisadores, consulte Adicionar analisadores de idioma.

  6. Você precisa da funcionalidade typeahead na forma de preenchimento automático ou resultados sugeridos? Marque a caixa de seleção Sugestionar para habilitar sugestões de consulta de digitação antecipada e preenchimento automático nos campos selecionados. Os sugestionadores aumentam o número de termos tokenizados em seu índice e, portanto, consomem mais armazenamento.

Configuração do indexador no assistente

A última página do assistente coleta entradas do usuário para a configuração do indexador. Você pode especificar uma agenda e definir outras opções que variarão de acordo com o tipo de fonte de dados.

Internamente, o assistente também configura as seguintes definições, que não são visíveis no indexador até que ele seja criado:

Próximos passos

A melhor maneira de entender os benefícios e limitações do assistente é percorrê-lo. O guia de início rápido a seguir explica cada etapa.