Partilhar via


Configurar um estágio de origem do SQL Server no processador de dados

Importante

Azure IoT Operations Preview – habilitado pelo Azure Arc está atualmente em visualização. Não deve utilizar este software de pré-visualização em ambientes de produção.

Você precisará implantar uma nova instalação do Azure IoT Operations quando uma versão disponível em geral for disponibilizada, você não poderá atualizar uma instalação de visualização.

Veja Termos de Utilização Complementares da Pré-visualizações do Microsoft Azure para obter os termos legais que se aplicam às funcionalidades do Azure que estão na versão beta, na pré-visualização ou que ainda não foram lançadas para disponibilidade geral.

O estágio de origem é o primeiro e necessário estágio em um pipeline de processador de dados. O estágio de origem recebe dados no pipeline de processamento de dados e os prepara para processamento posterior. O estágio de origem do SQL Server permite ler dados de um banco de dados do Microsoft SQL Server em um intervalo definido pelo usuário.

No estágio de origem, você define:

  • Detalhes de conexão para o SQL Server.
  • O intervalo no qual consultar o banco de dados do SQL Server. O estágio aguarda um resultado antes de redefinir o temporizador de intervalo.
  • Uma configuração de particionamento com base nos seus requisitos específicos de processamento de dados.

Pré-requisitos

  • Uma instância implantada do processador de dados que inclui o componente opcional do processador de dados.
  • Um banco de dados SQL Server com todos os dados brutos necessários disponíveis é operacional e acessível.

Preparar o banco de dados do SQL Server

Antes de poder ler a partir do banco de dados do SQL Server, você precisa conceder acesso ao banco de dados a partir do pipeline. Você pode usar Username/Password, Managed identityou Service principal para autenticar o pipeline no banco de dados. A vantagem de usar uma identidade gerenciada é que você não precisa gerenciar o ciclo de vida da entidade de serviço ou os detalhes da senha. A identidade gerenciada é gerenciada automaticamente pelo Azure e está vinculada ao ciclo de vida do recurso ao qual está atribuída.

Para criar uma entidade de serviço com um segredo do cliente:

  1. Use o seguinte comando da CLI do Azure para criar uma entidade de serviço.

    az ad sp create-for-rbac --name <YOUR_SP_NAME> 
    
  2. A saída deste comando inclui um appId, displayName, passworde tenant. Anote esses valores para usar ao configurar o acesso ao seu recurso de nuvem, como o Microsoft Fabric, criar um segredo e configurar um destino de pipeline:

    {
        "appId": "<app-id>",
        "displayName": "<name>",
        "password": "<client-secret>",
        "tenant": "<tenant-id>"
    }
    

Para conceder acesso à ID Principal no banco de dados do SQL Server, execute o seguinte comando no banco de dados:

CREATE USER processor FROM EXTERNAL PROVIDER WITH OBJECT_ID=<principalId>;

Nota

Para executar o comando anterior, você deve usar a ID do Entra listada como admin no SQL Server.

Para que o estágio de origem se conecte ao banco de dados do SQL Server, ele precisa acessar um segredo que contenha os detalhes de autenticação. Para criar um segredo:

  1. Use o seguinte comando para adicionar um segredo ao seu Cofre de Chaves do Azure que contenha o segredo do cliente do qual você anotou quando criou a entidade de serviço:

    az keyvault secret set --vault-name <your-key-vault-name> --name AccessADXSecret --value <client-secret>
    
  2. Adicione a referência secreta ao seu cluster Kubernetes seguindo as etapas em Gerenciar segredos para sua implantação do Azure IoT Operations.

Configurar a origem do SQL Server

Para configurar a origem do SQL Server:

  • Forneça detalhes do banco de dados do SQL Server. Essa configuração inclui o nome do servidor e uma consulta para recuperar os dados.
  • Especifique o método de autenticação. Atualmente limitado a autenticação baseada em nome de usuário/senha ou baseada em entidade de serviço.

A tabela a seguir descreve os parâmetros de configuração de origem do SQL Server:

Campo Tipo Descrição Necessário Predefinição Exemplo
Nome Cadeia (de carateres) Um nome visível para o cliente para o estágio de origem. Necessário ND erp-database
Description String Uma descrição visível do estágio de origem visível pelo cliente. Opcional ND Enterprise database
Host do servidor String A URL a ser usada para se conectar ao servidor. Necessário ND https://contoso.com/some/url/path
Porta do servidor Número inteiro O número da porta à qual se conectar no servidor. Necessário 1433 1433
Autenticação Authentication type O método de autenticação para se conectar ao servidor. Um dos: None, Username/Password, Managed identity, ou Service principal. Opcional NA Username/Password
Nome de utilizador/Palavra-passe > Nome de utilizador String O nome de usuário para a autenticação de nome de usuário/senha Sim ND myuser
Segredo do nome de utilizador/palavra-passe > String Referência à palavra-passe armazenada no Cofre de Chaves do Azure. Sim Sim AKV_USERNAME_PASSWORD
ID do locatário da entidade de > serviço String A ID do locatário da entidade de serviço. Sim ND <Tenant ID>
ID do cliente da entidade de > serviço String A ID do Cliente da entidade de serviço. Sim ND <Client ID>
Segredo principal > do serviço String Referência ao segredo do cliente da entidade de serviço armazenado no Cofre da Chave do Azure. Sim ND AKV_SERVICE_PRINCIPAL
Base de Dados String O nome do banco de dados do SQL Server a ser consultado. Necessário ND erp_db
Consulta de dados String A consulta a ser executada no banco de dados. Necessário ND SELECT * FROM your_table WHERE column_name = foo
Intervalo de consulta Duração Representação de cadeia de caracteres do tempo de espera antes da próxima chamada de API. Necessário 10s 24h
Formato dos dados Formato Formato dos dados recebidos Necessário ND {"type": "json"}
Criação de partições Particionamento Configuração de particionamento para o estágio de origem. Necessário ND Ver particionamento

Para saber mais sobre segredos, consulte Gerenciar segredos para sua implantação do Azure IoT Operations Preview.

Nota

Tempo limite das solicitações em 30 segundos se não houver resposta do servidor SQL.

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 raw formato que significa que ele não converte os dados de entrada. Para usar muitos recursos do processador de dados, como Filter estágios 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 , , , CSV, ou Protobuf formatos em uma mensagem legível do processador de dados para usar a funcionalidade completa do processador de JSONdados. CBORMessagePackjsonStream

As tabelas a seguir descrevem as diferentes opções de configuração de desserialização:

Campo Descrição Necessário Predefinição Value
Formato de Dados O tipo do formato de dados. Sim Raw Raw JSON jsonStream MessagePack CBOR CSV Protobuf

O Data Format campo é obrigatório e o seu valor determina os outros campos obrigatórios.

Para desserializar mensagens CSV, você também precisa especificar os seguintes campos:

Campo Descrição Necessário valor Exemplo
Cabeçalho Se os dados CSV incluem uma linha de cabeçalho. Sim Yes No No
Nome Nome da coluna em CSV Sim - temp, asset
Caminho O caminho jq na mensagem onde 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 Predefinição: String

Para desserializar mensagens Protobuf, você também precisa especificar os seguintes campos:

Campo Descrição Necessário valor Exemplo
Descritor O descritor codificado em base64 para a definição de protobuf. Sim - Zhf...
Mensagem O nome do tipo de mensagem usado para formatar os dados. Sim - pipeline
Pacote O nome do pacote no descritor onde o tipo é definido. Sim - schedulerv1

Nota

O processador de dados suporta 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 agregado 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 Necessário Predefinição Exemplo
Tipo de partição O tipo de particionamento a ser usado: Partição ID ou Partição Key Necessário ID ID
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 Necessário 0 .payload.header
Número de partições O número de partições em um pipeline do processador de dados. Necessário 1 1

O processador de dados adiciona metadados à mensagem de entrada. Consulte Visão geral da estrutura de mensagens do processador de dados para entender como especificar corretamente a expressão de particionamento que é executada na mensagem de entrada. Por padrão, a expressão de particionamento é definida como 0 com o tipo Partition para ID enviar todos os dados de entrada para uma única partição.

Para obter recomendações e saber mais, consulte O que é particionamento?.