Configurar um estágio de origem do MQ em um pipeline de Visualização do Processador de Dados do Azure IoT
Importante
O recurso Pré-visualização de Operações do Azure IoT — habilitado pelo Azure Arc — está atualmente em VERSÃO PRÉVIA. Você não deve usar esse software em versão prévia em ambientes de produção.
Veja os Termos de Uso Complementares para Versões Prévias do Microsoft Azure para obter termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.
A fase de origem é a primeira fase necessária em um pipeline de versão prévia do Processador de Dados do Azure IoT. O estágio de origem obtém dados no pipeline de processamento de dados e os prepara para processamento adicional. O estágio de origem do MQ permite que você assine mensagens de um tópico MQTT. No estágio de origem, você define os detalhes da conexão com a origem do MQ e estabelece uma configuração de particionamento com base em seus requisitos específicos de processamento de dados.
Pré-requisitos
- Uma instância implantada da Versão Prévia do Processador de Dados do Azure IoT que inclui o componente opcional do Processador de Dados.
- Uma instância do agente da versão prévia do Azure IoT MQ com todos os dados brutos necessários disponíveis está operacional e acessível.
Configurar a origem do MQ
Para configurar a origem do MQ:
- Forneça detalhes de conexão para a origem do MQ. Essa configuração inclui o tipo da origem do MQ, a URL do agente MQTT, o nível de Qualidade de Serviço (QoS), o tipo de sessão e os tópicos aos quais assinar.
- Especifique o método de autenticação. Atualmente limitado à autenticação baseada em nome de usuário/senha ou token de conta de serviço.
A tabela a seguir descreve os parâmetros de configuração de origem do MQ:
Campo | Descrição | Obrigatório | Padrão | Exemplo |
---|---|---|---|---|
Nome | Um nome visível para o cliente para o estágio de origem. | Obrigatório | NA | asset-1broker |
Descrição | Uma descrição visível do cliente do estágio de origem. | Opcional | NA | brokerforasset-1 |
Agente | A URL do agente MQTT à qual se conectar. | Obrigatório | NA | tls://aio-mq-dmqtt-frontend:8883 |
Autenticação | O método de autenticação para se conectar ao agente. Um de: None , Username/Password e Service Account Token (SAT) . |
Obrigatório | Service Account Token (SAT) |
Service Account Token (SAT) |
Nome de usuário/senha > nome de usuário | O nome de usuário para a autenticação de nome de usuário/senha | Sim | NA | myuser |
Nome de usuário/senha > segredo | Referência à senha armazenada no Azure Key Vault. | Sim | NA | AKV_USERNAME_PASSWORD |
QoS | Nível de QoS para entrega de mensagens. | Obrigatório | 1 | 0 |
Sessão limpa | Definido como FALSE para uma sessão persistente. |
Obrigatório | FALSE |
FALSE |
Tópico | O tópico a ser assinado para aquisição de dados. | Obrigatório | NA | contoso/site1/asset1 , contoso/site1/asset2 |
Para saber mais sobre segredos, confira Gerenciar segredos para sua implantação da versão prévia das Operações do Azure IoT.
O Processador de Dados não reordena dados fora de ordem provenientes do agente MQTT. Se os dados forem recebidos fora de ordem do agente, ele permanecerá assim no pipeline.
Selecionar formato de dados
Em um pipeline do Processador de Dados, o campo de formato no estágio de origem especifica como desserializar os dados de entrada. Por padrão, o pipeline do Processador de Dados usa o formato raw
que significa que ele não converte os dados de entrada. Para usar muitos recursos do Processador de Dados, como Filter
ou Enrich
estágios em um pipeline, você deve desserializar seus dados no estágio de entrada. Você pode optar por desserializar seus dados de entrada de formatos JSON
, jsonStream
, MessagePack
, CBOR
, CSV
ou Protobuf
em uma mensagem legível do Processador de Dados para usar a funcionalidade completa do Processador de Dados.
As tabelas a seguir descrevem as diferentes opções de configuração de desserialização:
Campo | Descrição | Obrigatório | Padrão | Valor |
---|---|---|---|---|
Formato de Dados | O tipo do formato de dados. | Sim | Raw |
Raw JSON jsonStream MessagePack CBOR CSV Protobuf |
O campo Data Format
é obrigatório e seu valor determina os outros campos necessários.
Para desserializar mensagens CSV, você também precisa especificar os seguintes campos:
Campo | Descrição | Obrigatório | Valor | Exemplo |
---|---|---|---|---|
Cabeçalho | Se os dados CSV incluem uma linha de cabeçalho. | Sim | Yes No |
No |
Nome | Nome da coluna no CSV | Sim | - | temp , asset |
Caminho | O caminho jq na mensagem em que as informações da coluna são adicionadas. | Não | - | O caminho jq padrão é o nome da coluna |
Tipo de Dados | O tipo de dados dos dados na coluna e como eles são representados dentro do pipeline do Processador de Dados. | Não | String , Float , Integer , Boolean , Bytes |
Padrão: String |
Para desserializar mensagens Protobuf, você também precisa especificar os seguintes campos:
Campo | Descrição | Obrigatório | Valor | Exemplo |
---|---|---|---|---|
Descritor | O descritor codificado em base64 para a definição de Protobuf. | Sim | - | Zhf... |
Message | O nome do tipo de mensagem usado para formatar os dados. | Sim | - | pipeline |
Pacote | O nome do pacote no descritor em que o tipo é definido. | Sim | - | schedulerv1 |
Observação
O Processador de Dados dá suporte a apenas um tipo de mensagem em cada arquivo .proto.
Configurar particionamento
O particionamento em um pipeline divide os dados de entrada em partições separadas. O particionamento permite o paralelismo de dados no pipeline, o que pode melhorar a taxa de transferência e reduzir a latência. As estratégias de particionamento afetam a forma como os dados são processados nos outros estágios do pipeline. Por exemplo, o último estágio de valor conhecido e o estágio de agregação operam em cada partição lógica.
Para particionar seus dados, especifique uma estratégia de particionamento e o número de partições a serem usadas:
Campo | Descrição | Obrigatório | Padrão | Exemplo |
---|---|---|---|---|
Tipo de partição | O tipo de particionamento a ser usado: partição ID ou partição Key |
Obrigatório | Key |
Key |
Expressão de partição | A expressão jq a ser usada na mensagem de entrada para calcular a partição ID ou partição Key |
Obrigatório | .topic |
.topic |
Número of partições | O número de partições em um pipeline do Processador de Dados. | Obrigatório | 2 |
2 |
O Processador de Dados adiciona metadados adicionais à mensagem de entrada. Confira a visão geral da estrutura de mensagens do Processador de Dados para entender como especificar corretamente a expressão de particionamento executada na mensagem de entrada. Por padrão, a expressão de particionamento é definida como 0
com o tipo de partição como ID
para enviar todos os dados de entrada para uma única partição.
Para obter recomendações e saber mais, confira o que é particionamento?.
Exemplo de configuração
O seguinte mostra um exemplo de configuração para o estágio:
Parâmetro | Valor |
---|---|
Nome | input data |
Agente | tls://aio-mq-dmqtt-frontend:8883 |
Autenticação | Service Account Token (SAT) |
Tópico | azure-iot-operations/data/opc-ua-connector-0/# |
Formato de dados | JSON |
Em seguida, essa configuração gera mensagens semelhantes ao exemplo a seguir:
{
"Timestamp": "2023-08-10T00:54:58.6572007Z",
"MessageType": "ua-deltaframe",
"payload": {
"temperature": {
"SourceTimestamp": "2023-08-10T00:54:58.2543129Z",
"Value": 7109
},
"Tag 10": {
"SourceTimestamp": "2023-08-10T00:54:58.2543482Z",
"Value": 7109
}
},
"DataSetWriterName": "oven",
"SequenceNumber": 4660
}
Conteúdo relacionado
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de