Compartilhar via


Configurar a ingestão de streaming no cluster do Azure Data Explorer

A ingestão de streaming é útil para carregar dados quando você precisa de baixa latência entre ingestão e consulta. Considere usar a ingestão de streaming nos seguintes cenários:

  • A latência de menos de um segundo é necessária.
  • Para otimizar o processamento operacional de muitas tabelas em que o fluxo de dados em cada tabela é relativamente pequeno (alguns registros por segundo), mas o volume geral de ingestão de dados é alto (milhares de registros por segundo).

Se o fluxo de dados em cada tabela for alto (mais de 4 GB por hora), considere usar a ingestão em lote.

Para saber mais sobre diferentes métodos de ingestão, confira a visão geral da ingestão de dados.

Escolha o tipo de ingestão de streaming apropriado

Há suporte para dois tipos de ingestão de streaming:

Tipo de ingestão Descrição
Conexão de dados As conexões de dados do Hub de Eventos, do Hub IoT e da Grade de Eventos podem usar a ingestão de streaming, desde que ela esteja habilitada no nível do cluster. A decisão de usar a ingestão de streaming é feita de acordo com a política de ingestão de streaming configurada na tabela de destino.
Para obter informações sobre como gerenciar conexões de dados, consulte Hub de Eventos, Hub IoT e Grade de Eventos.
Ingestão personalizada A ingestão personalizada exige que você escreva um aplicativo que use uma das bibliotecas de clientes do Azure Data Explorer.
Use as informações neste tópico para configurar a ingestão personalizada. Você também pode achar útil o exemplo de aplicativo para ingestão de streaming em C#.

Use a tabela a seguir para ajudá-lo a escolher o tipo de ingestão apropriado para seu ambiente:

Critério Conexão de dados Ingestão personalizada
Atraso de dados entre a iniciação da ingestão e os dados disponíveis para consulta Atraso mais longo Atraso mais curto
Sobrecarga de desenvolvimento Configuração rápida e fácil, sem sobrecarga de desenvolvimento Alta sobrecarga de desenvolvimento para criar um aplicativo ingerir os dados, manipular erros e garantir a consistência dos dados

Observação

Você pode gerenciar o processo para habilitar e desabilitar a ingestão de streaming em seu cluster usando o portal do Azure ou programaticamente em C#. Se você estiver usando O C# para seu aplicativo personalizado, talvez seja mais conveniente usar a abordagem programática.

Pré-requisitos

Considerações operacionais e de desempenho

Os principais fatores que podem afetar a ingestão de streaming são:

  • Tamanho da VM e do cluster: desempenho de ingestão de streaming e escalas de capacidade com maior tamanho de VM e cluster. O número de solicitações de ingestão simultâneas é limitado a seis por núcleo. Por exemplo, para SKUs de 16 núcleos, como D14 e L16, a carga máxima com suporte é de 96 solicitações de ingestão simultâneas. Para dois SKUs principais, como D11, a carga máxima com suporte é de 12 solicitações de ingestão simultâneas.
  • Limite de tamanho de dados: o limite de tamanho de dados para uma solicitação de ingestão de streaming é de 4 MB. Isso inclui quaisquer dados criados para políticas de atualização durante a ingestão.
  • Atualizações de esquema: atualizações de esquema, como criação e modificação de tabelas e mapeamentos de ingestão, podem levar até cinco minutos para o serviço de ingestão de streaming. Para obter mais informações, consulte ingestão de streaming e alterações de esquema.
  • Capacidade do SSD: habilitar a ingestão de streaming em um cluster, mesmo quando os dados não são ingeridos por streaming, utiliza parte do disco SSD local das máquinas do cluster para dados de ingestão em streaming e reduz o armazenamento disponível para cache ativa.

Habilitar a ingestão de streaming em seu cluster

Antes de usar a ingestão de streaming, você deve habilitar a funcionalidade em seu cluster e definir uma política de ingestão de streaming. Você pode habilitar a funcionalidade ao criar o cluster ou adicioná-lo a um cluster existente.

Aviso

Examine as limitações antes de habilitar a ingestão de streaming.

Habilitar a ingestão de streaming ao criar um novo cluster

Você pode habilitar a ingestão de streaming ao criar um novo cluster usando o portal do Azure ou programaticamente em C#.

Ao criar um cluster usando as etapas em Criar um cluster e um banco de dados do Azure Data Explorer, na guia Configurações, selecione Ingestão de> streamingativada.

Habilite a ingestão de streaming ao criar um cluster no Azure Data Explorer.

Habilitar a ingestão de streaming em um cluster existente

Se você tiver um cluster existente, poderá habilitar a ingestão de streaming usando o portal do Azure ou programaticamente em C#.

  1. No portal do Azure, vá para o cluster do Azure Data Explorer.

  2. Em Configurações, selecione Configurações.

  3. No painel Configurações , selecione Ativado para habilitar a ingestão de streaming.

  4. Clique em Salvar.

    Ative a ingestão de streaming no Azure Data Explorer.

Crie uma tabela de destino e defina a política

Crie uma tabela para receber os dados de ingestão de streaming e definir sua política relacionada usando o portal do Azure ou programaticamente em C#.

  1. No portal do Azure, navegue até o cluster.

  2. Selecione Query.

    Selecione a consulta no portal do Azure Data Explorer para habilitar a ingestão de streaming.

  3. Para criar a tabela que receberá os dados por meio da ingestão de streaming, copie o comando a seguir no painel Consulta e selecioneExecutar.

    .create table TestTable (TimeStamp: datetime, Name: string, Metric: int, Source:string)
    

    Crie uma tabela para ingestão de streaming no Azure Data Explorer.

  4. Copie um dos comandos a seguir no painel Consulta e selecioneExecutar. Isso define a política de ingestão de streaming na tabela que você criou ou no banco de dados que contém a tabela.

    Dica

    Uma política definida no nível do banco de dados se aplica a todas as tabelas existentes e futuras no banco de dados. Quando você habilita a política no nível do banco de dados, não é necessário habilitá-la por tabela.

    • Para definir a política na tabela que você criou, use:

      .alter table TestTable policy streamingingestion enable
      
    • Para definir a política no banco de dados que contém a tabela que você criou, use:

      .alter database StreamingTestDb policy streamingingestion enable
      

    Defina a política de ingestão de streaming no Azure Data Explorer.

Criar um aplicativo de ingestão de streaming para ingerir dados em seu cluster

Crie seu aplicativo para ingerir dados em seu cluster usando seu idioma preferido.

using System.IO;
using System.Threading.Tasks;
using Kusto.Data; // Requires Package Microsoft.Azure.Kusto.Data
using Kusto.Data.Common;
using Kusto.Ingest; // Requires Package Microsoft.Azure.Kusto.Ingest

namespace StreamingIngestion;
class Program
{
    static async Task Main(string[] args)
    {
        var clusterPath = "https://<clusterName>.<region>.kusto.windows.net";
        var appId = "<appId>";
        var appKey = "<appKey>";
        var appTenant = "<appTenant>";
        // Create Kusto connection string with App Authentication
        var connectionStringBuilder = new KustoConnectionStringBuilder(clusterPath)
            .WithAadApplicationKeyAuthentication(
                applicationClientId: appId,
                applicationKey: appKey,
                authority: appTenant
            );
        // Create a disposable client that will execute the ingestion
        using var client = KustoIngestFactory.CreateStreamingIngestClient(connectionStringBuilder);
        // Ingest from a compressed file
        var fileStream = File.Open("MyFile.gz", FileMode.Open);
        // Initialize client properties
        var ingestionProperties = new KustoIngestionProperties(databaseName: "<databaseName>", tableName: "<tableName>");
        // Create source options
        var sourceOptions = new StreamSourceOptions { CompressionType = DataSourceCompressionType.GZip, };
        // Ingest from stream
        await client.IngestFromStreamAsync(fileStream, ingestionProperties, sourceOptions);
    }
}

Desabilitar a ingestão de streaming em seu cluster

Aviso

Desabilitar a ingestão de streaming pode levar algumas horas.

Antes de desabilitar a ingestão de streaming no cluster do Azure Data Explorer, remova a política de ingestão de streaming de todas as tabelas e bancos de dados relevantes. A remoção da política de ingestão de streaming desencadeia a reorganização de dados dentro do cluster do Azure Data Explorer. Os dados de ingestão de streaming são movidos do armazenamento inicial para o armazenamento permanente no repositório de colunas (extensões ou fragmentos). Esse processo pode levar entre alguns segundos e algumas horas, dependendo da quantidade de dados no armazenamento inicial.

Excluir a política de ingestão de streaming

Você pode descartar a política de ingestão de streaming usando o portal do Azure ou programaticamente em C#.

  1. No portal do Azure, vá para o cluster do Azure Data Explorer e selecione Consulta.

  2. Para remover a política de ingestão de streaming da tabela, copie o comando a seguir no painel Consulta e selecioneExecutar.

    .delete table TestTable policy streamingingestion
    

    Excluir a política de ingestão de streaming no Azure Data Explorer.

  3. Em Configurações, selecione Configurações.

  4. No painel Configurações, selecione Desativar para desabilitar a ingestão de Streaming.

  5. Clique em Salvar.

    Desative a ingestão de streaming no Azure Data Explorer.

Limitações

  • Os mapeamentos de dados devem ser pré-criados para uso na ingestão de streaming. Solicitações individuais de ingestão de streaming não acomodam mapeamentos de dados inline.
  • Tags de extensão não podem ser definidas nos dados de ingestão de streaming.
  • Atualizar a política. A política de atualização pode referenciar apenas os dados recém-ingeridos na tabela de origem e não quaisquer outros dados ou tabelas no banco de dados.
  • Se a ingestão de streaming estiver habilitada em um cluster usado como líder para bancos de dados seguidores, a ingestão de streaming deverá ser habilitada nos clusters seguidores também para acompanhar os dados de ingestão de streaming. O mesmo se aplica se os dados do cluster são compartilhados por meio do Data Share.

Próximas etapas