Origens de eventos do Azure Time Series Insights Gen2

Nota

O serviço Time Series Insights será desativado em 7 de julho de 2024. Considere migrar os ambientes existentes para soluções alternativas o mais rápido possível. Para obter mais informações sobre a substituição e migração, visite nossa documentação.

Seu ambiente do Azure Time Series Insights Gen2 pode ter até duas fontes de eventos de streaming. Dois tipos de recursos do Azure são suportados como entradas:

Os eventos devem ser enviados como JSON codificado em UTF-8.

Criar ou editar fontes de eventos

A origem do evento é o link entre seu hub e seu ambiente do Azure Time Series Insights Gen2, e um recurso separado do tipo Time Series Insights event source é criado em seu grupo de recursos. O(s) recurso(s) do Hub IoT ou do Hub de Eventos podem viver na mesma assinatura do Azure que seu ambiente do Azure Time Series Insights Gen2 ou em uma assinatura diferente. No entanto, é uma prática recomendada hospedar seu ambiente do Azure Time Series Insights e o Hub IoT ou Hub de Eventos na mesma região do Azure.

Você pode usar o portal do Azure, a CLI do Azure, os modelos do Azure Resource Manager e a API REST para criar, editar ou remover as fontes de eventos do seu ambiente.

Aviso

Não restrinja o acesso público à Internet a um hub ou fonte de eventos usada pelo Time Series Insights ou a conexão necessária será interrompida.

Opções de início

Ao criar uma fonte de eventos, você pode especificar quais dados pré-existentes devem ser coletados. Esta definição é opcional. Também estão disponíveis as seguintes opções:

Nome Descrição Exemplo de modelo do Azure Resource Manager
Mais cedoDisponível ingerir todos os dados preexistentes armazenados no Hub IoT ou no Hub de Eventos "ingressStartAt": {"type": "EarliestAvailable"}
EventSourceCreationTime começar a ingerir os dados que chegam depois da criação da origem de evento. Todos os dados preexistentes transmitidos em fluxo antes da criação da origem de evento serão ignorados. Esta é a configuração padrão no portal do Azure "ingressStartAt": {"type": "EventSourceCreationTime"}
CustomEnqueuedTime o seu ambiente irá ingerir os dados do seu reencaminhamento de hora (UTC) de colocação em fila personalizada. Todos os eventos colocados em fila no seu Hub IoT ou Hub de Eventos na hora de colocação em fila personalizada ou depois dessa hora serão ingeridos e armazenados. Todos os eventos que chegaram antes da hora de colocação em fila personalizada serão ignorados. Observe que "tempo enfileirado" refere-se à hora (em UTC) em que o evento chegou à sua IoT ou Hub de Eventos. Isso difere de uma propriedade de carimbo de data/hora personalizada que está dentro do corpo do seu evento. "ingressStartAt": {"type": "CustomEnqueuedTime", "time": "2021-03-01T17:00:00.20Z"}

Importante

  • Se você selecionar EarliestAvailable e tiver muitos dados pré-existentes, poderá enfrentar alta latência inicial à medida que seu ambiente Azure Time Series Insights Gen2 processa todos os seus dados.
  • Essa alta latência deve eventualmente diminuir à medida que os dados são indexados. Envie um tíquete de suporte por meio do portal do Azure se você tiver alta latência contínua.
  • Mais cedoDisponível

Diagrama EarliestAvailable

  • EventSourceCreationTime

Diagrama EventSourceCreationTime

  • CustomEnqueuedTime

Diagrama CustomEnqueuedTime

Práticas recomendadas de ingestão de streaming

  • Sempre crie um grupo de consumidores exclusivo para seu ambiente do Azure Time Series Insights Gen2 para consumir dados da sua fonte de eventos. A reutilização de grupos de consumidores pode causar desconexões aleatórias e pode resultar em perda de dados.

  • Configure seu ambiente Azure Time Series Insights Gen2 e seu Hub IoT e/ou Hubs de Eventos na mesma região do Azure. Embora seja possível configurar uma fonte de eventos em uma região separada, esse cenário não é suportado e não podemos garantir alta disponibilidade.

  • Não vá além do limite de taxa de transferência do seu ambiente ou por limite de partição.

  • Configure um alerta de atraso para ser notificado se o seu ambiente estiver enfrentando problemas no processamento de dados. Consulte Cargas de trabalho de produção abaixo para obter condições de alerta sugeridas.

  • Use a ingestão de streaming apenas para dados quase em tempo real e recentes, não há suporte para streaming de dados históricos.

  • Entenda como as propriedades serão escapadas e os dados JSON nivelados e armazenados.

  • Siga o princípio de menor privilégio ao fornecer cadeias de conexão de origem de eventos. Para Hubs de Eventos, configure uma política de acesso compartilhado apenas com a declaração de envio e, para o Hub IoT, use apenas a permissão de conexão de serviço.

Atenção

Se você excluir seu Hub IoT ou Hub de Eventos e recriar um novo recurso com o mesmo nome, precisará criar uma nova fonte de eventos e anexar o novo Hub IoT ou Hub de Eventos. Os dados não serão ingeridos até que você conclua esta etapa.

Cargas de trabalho de produção

Além das práticas recomendadas acima, recomendamos que você implemente o seguinte para cargas de trabalho críticas para os negócios.

  • Aumente o tempo de retenção de dados do Hub IoT ou do Hub de Eventos para o máximo de sete dias.

  • Crie alertas de ambiente no portal do Azure. Os alertas baseados em métricas da plataforma permitem validar o comportamento do pipeline de ponta a ponta. As instruções para criar e gerenciar alertas estão aqui. Condições de alerta sugeridas:

    • IngressReceivedMessagesTimeLag é maior que 5 minutos
    • IngressReceivedBytes é 0
  • Mantenha a carga de ingestão equilibrada entre as partições do Hub IoT ou do Hub de Eventos.

Ingestão de dados históricos

O uso do pipeline de streaming para importar dados históricos não é suportado atualmente no Azure Time Series Insights Gen2. Se você precisar importar dados anteriores para seu ambiente, siga as diretrizes abaixo:

  • Não transmita dados ao vivo e históricos em paralelo. A ingestão de dados fora do pedido resultará em desempenho de consulta degradado.
  • Ingerir dados históricos de forma ordenada por tempo para obter o melhor desempenho.
  • Mantenha-se dentro dos limites da taxa de transferência de ingestão abaixo.
  • Desative o Warm Store se os dados forem anteriores ao seu período de retenção do Warm Store.

Carimbo de data/hora de origem do evento

Ao configurar uma fonte de eventos, você será solicitado a fornecer uma propriedade de ID de carimbo de data/hora. A propriedade timestamp é usada para controlar eventos ao longo do tempo, essa é a hora que será usada como carimbo de data/hora $ts nas APIs de Consulta e para plotar séries no Azure Time Series Insights Explorer. Se nenhuma propriedade for fornecida no momento da criação ou se a propriedade timestamp estiver ausente de um evento, o tempo enfileirado do Hub IoT ou Hubs de Eventos do evento será usado como padrão. Os valores das propriedades Timestamp são armazenados em UTC.

Em geral, os usuários optarão por personalizar a propriedade timestamp e usar a hora em que o sensor ou tag gerou a leitura em vez de usar o tempo enfileirado do hub padrão. Isso é particularmente necessário quando os dispositivos têm perda de conectividade intermitente e um lote de mensagens atrasadas é encaminhado para o Azure Time Series Insights Gen2.

Se o carimbo de data/hora personalizado estiver dentro de um objeto JSON aninhado ou de uma matriz, você precisará fornecer o nome da propriedade correto seguindo nossas convenções de nomenclatura de nivelamento e fuga. Por exemplo, o carimbo de data/hora de origem do evento para a carga JSON mostrada aqui deve ser inserido como "values.time".

Compensações de fuso horário

Os carimbos de data/hora devem ser enviados no formato ISO 8601 e serão armazenados em UTC. Se um deslocamento de fuso horário for fornecido, o deslocamento será aplicado e, em seguida, a hora armazenada e retornada no formato UTC. Se o deslocamento estiver formatado incorretamente, ele será ignorado. Em situações em que sua solução pode não ter contexto do deslocamento original, você pode enviar os dados de deslocamento em uma propriedade de evento separada adicional para garantir que eles sejam preservados e que seu aplicativo possa fazer referência em uma resposta de consulta.

O deslocamento de fuso horário deve ser formatado como um dos seguintes:

±HHMMZ
±HH: MM
±HH:MMZ

Próximos passos