Compartilhar via


Tutorial: Configurar um lote de produtos de dados

Neste tutorial, aprenda a configurar serviços de produtos de dados que já estão implantados. Use o Azure Data Factory para integrar e orquestrar seus dados; e use o Microsoft Purview para descobrir, gerenciar e governar os ativos de dados.

Saiba como:

  • Criar e implantar recursos obrigatórios
  • Atribuir funções e permissões de acesso
  • Conectar recursos para integração de dados

Este tutorial ajuda você a se familiarizar com os serviços implantados no grupo de recursos do produto de dados de exemplo <DMLZ-prefix>-dev-dp001. Experimente como os serviços do Azure se relacionam entre si e quais medidas de segurança estão em vigor.

Ao implantar os novos componentes, você terá a chance de investigar como o Purview conecta a governança de serviços para criar um mapa holístico e atualizado do seu cenário de dados. O resultado é a descoberta automatizada de dados, a classificação de dados confidenciais e a linhagem de dados de ponta a ponta.

Pré-requisitos

Antes de começar a configurar o lote do produto de dados, verifique se os seguintes pré-requisitos estão sendo atendidos:

  • Assinatura do Azure. Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure hoje mesmo.

  • Permissões para a assinatura do Azure. Para configurar o Purview e o Azure Synapse Analytics para a implantação, você precisa ter a função de Administrador de Acesso do Usuário ou de Proprietário na assinatura do Azure. Você definirá mais atribuições de função para serviços e entidades de serviço no tutorial.

  • Recursos implantados. Para concluir o tutorial, esses recursos já devem ser implantados na sua assinatura do Azure:

  • Conta do Microsoft Purview. A conta é criada como parte da sua implantação da zona de destino de gerenciamento de dados.

  • runtime de integração auto-hospedada. O runtime é criado como parte da sua implantação da zona de destino de dados.

Observação

Neste tutorial, os espaços reservados referem-se aos recursos de pré-requisito que você implanta antes de iniciar o tutorial:

  • <DMLZ-prefix> refere-se ao prefixo que você inseriu quando criou sua implantação da zona de destino de gerenciamento de dados.
  • <DLZ-prefix> refere-se ao prefixo que você inseriu quando criou sua implantação da zona de destino de dados.
  • <DP-prefix> refere-se ao prefixo que você inseriu quando criou sua implantação do lote do produto de dados.

Criar instâncias do Banco de Dados SQL do Azure

Para começar este tutorial, crie dois exemplos de instâncias de Banco de Dados SQL. Você usará os bancos de dados para simular fontes de dados CRM e ERP em seções posteriores.

  1. No portal do Azure, nos controles globais do portal, selecione o ícone Cloud Shell para abrir um terminal do Azure Cloud Shell. Selecione Bash como o tipo de terminal.

    Captura de tela que mostra o ícone do Cloud Shell no portal do Azure.

  2. No Cloud Shell, execute o script a seguir. O script localiza o grupo de recursos <DLZ-prefix>-dev-dp001 e o servidor SQL do Azure <DP-prefix>-dev-sqlserver001 que está no grupo de recursos. Em seguida, o script cria as duas instâncias de Banco de Dados SQL no servidor <DP-prefix>-dev-sqlserver001. Os bancos de dados são pré-preenchidos com os dados de exemplo do AdventureWorks. Os dados incluem as tabelas que você usa neste tutorial.

    Substitua o valor do espaço reservado do parâmetro subscription pela sua ID de assinatura do Azure.

    # Azure SQL Database instances setup
    # Create the AdatumCRM and AdatumERP databases to simulate customer and sales data.
    
    # Use the ID for the Azure subscription you used to deployed the data product.
    az account set --subscription "<your-subscription-ID>"
    
    # Get the resource group for the data product.
    resourceGroupName=$(az group list -o tsv  --query "[?contains(@.name, 'dp001')==\`true\`].name")
    
    # Get the existing Azure SQL Database server name.
    sqlServerName=$(az sql server list -g $resourceGroupName -o tsv  --query "[?contains(@.name, 'sqlserver001')==\`true\`].name")
    
    # Create the first SQL Database instance, AdatumCRM, to create the customer's data source.
    az sql db create --resource-group $resourceGroupName --server $sqlServerName --name AdatumCRM --service-objective Basic --sample-name AdventureWorksLT
    
    # Create the second SQL Database instance, AdatumERP, to create the sales data source.
    az sql db create --resource-group $resourceGroupName --server $sqlServerName --name AdatumERP --service-objective Basic --sample-name AdventureWorksLT
    

Quando o script terminar de ser executado, no servidor SQL do Azure <DP-prefix>-dev-sqlserver001, você terá duas novas instâncias do Banco de Dados SQL: AdatumCRM e AdatumERP. Ambos os bancos de dados estão na camada de computação básica. Os bancos de dados estão localizados no mesmo grupo de recursos <DLZ-prefix>-dev-dp001 usado para implantar o lote de produtos de dados.

Configurar o Purview para catalogar o lote de produtos de dados

Em seguida, conclua as etapas de configuração do Purview para catalogar o lote de produtos de dados. Você começa criando uma entidade de serviço. Em seguida, configure os recursos necessários e atribua funções e permissões de acesso.

Criar uma entidade de serviço

  1. No portal do Azure, nos controles globais do portal, selecione o ícone Cloud Shell para abrir um terminal do Azure Cloud Shell. Selecione Bash como o tipo de terminal.

  2. Revise o seguinte script:

    • Substitua o valor do espaço reservado do parâmetro subscriptionId pela sua ID de assinatura do Azure.
    • Substitua o valor do espaço reservado do parâmetro spname pelo nome que deseja usar para sua entidade de serviço. O nome da entidade de serviço deve ser exclusivo na assinatura.

    Depois de atualizar os valores do parâmetro, execute o script no Cloud Shell.

    # Replace the parameter values with the name you want to use for your service principal name and your Azure subscription ID.
    spname="<your-service-principal-name>"
    subscriptionId="<your-subscription-id>"
    
    # Set the scope to the subscription.
    scope="/subscriptions/$subscriptionId"
    
    # Create the service principal.
    az ad sp create-for-rbac \
      --name $spname \
      --role "Contributor" \
      --scope $scope
    
  3. Verifique a saída JSON para obter um resultado semelhante ao exemplo a seguir. Observe ou copie os valores da saída a serem usados em etapas posteriores.

    {
      "appId": "<your-app-id>",
      "displayName": "<service-principal-display-name>",
      "name": "<your-service-principal-name>",
      "password": "<your-service-principal-password>",
      "tenant": "<your-tenant>"
    }
    

Configurar as permissões e o acesso à entidade de serviço

Na saída JSON gerada na etapa anterior, obtenha os seguintes valores retornados:

  • ID da entidade de serviço (appId)
  • Chave da entidade de serviço (password)

A entidade de serviço deve ter as seguintes permissões:

  • Função de Leitor de Dados do Blob de Armazenamento nas contas de armazenamento.
  • Permissões de Leitor de Dados nas instâncias do Banco de Dados SQL.

Para configurar a entidade de serviço com a função e as permissões necessárias, conclua as etapas a seguir.

Permissões da conta de Armazenamento do Azure

  1. No portal do Azure, vá para a conta de armazenamento do Azure <DLZ-prefix>devraw. No menu de recursos, selecione Controle de Acesso (IAM).

    Captura de tela que mostra o painel de permissões da entidade de serviço da conta de armazenamento, com o Controle de Acesso realçado.

  2. Selecione Adicionar>Adicionar atribuição de função.

    Captura de tela que mostra o painel de Controle de Acesso da entidade de serviço da conta de armazenamento ilustrando como adicionar uma atribuição de função.

  3. Em Adicionar atribuição de função, na guia Função, pesquise e selecione Leitor de Dados do Blob de Armazenamento. Em seguida, selecione Avançar.

    Captura de tela que mostra a pesquisa do Leitor de Dados do Blob de Armazenamento em Adicionar atribuição de função.

  4. Em Membros, escolha Selecionar membros.

    Captura de tela que mostra o painel Selecionar membros em Adicionar atribuição de função.

  5. Em Selecionar membros, pesquise o nome da entidade de serviço que você criou.

    Captura de tela que mostra como pesquisar o nome de uma entidade de serviço.

  6. Nos resultados da pesquisa, selecione a entidade de serviço e escolha Selecionar.

    Captura de tela que mostra o painel de resultados após pesquisar o nome da entidade de serviço.

  7. Para concluir a atribuição de função, selecione Examinar + atribuir duas vezes.

Repita as etapas desta seção para as contas de armazenamento restantes:

  • <DLZ-prefix>devencur
  • <DLZ-prefix>devwork

Permissões do Banco de Dados SQL

Para definir as permissões do Banco de Dados SQL, conecte-se à máquina virtual do SQL do Azure usando o editor de consultas. Como todos os recursos estão por trás de um ponto de extremidade privado, primeiro você deve entrar no portal do Azure usando uma máquina virtual do Azure Bastion host.

No portal do Azure, conecte-se à máquina virtual implantada no grupo de recursos <DMLZ-prefix>-dev-bastion. Se você não tiver certeza de como se conectar à máquina virtual usando o serviço do Bastion host, confira Conectar-se a uma VM.

Para adicionar a entidade de serviço como um usuário no banco de dados, talvez você precise primeiro adicionar a si mesmo como o administrador do Microsoft Entra. Nas etapas 1 e 2, você se adiciona como administrador do Microsoft Entra. Nas etapas 3 a 5, você concede permissões da entidade de serviço a um banco de dados. Quando você se conectar ao portal por meio da máquina virtual do Bastion host, pesquise máquinas virtuais do SQL do Azure no portal do Azure.

  1. Vá para a máquina virtual do SQL do Azure <DP-prefix>-dev-sqlserver001. No menu de recursos em Configurações, selecione Microsoft Entra ID.

    Captura de tela que mostra o painel do Microsoft Entra no Servidor do Banco de Dados SQL do Azure.

  2. Na barra de comandos, selecione Definir administrador. Pesquise e selecione sua conta. Escolha Selecionar.

    Captura de tela que mostra como pesquisar uma conta para tornar um usuário administrador.

  3. No menu de recursos, selecione bancos de dados SQL, depois escolha o bancos de dados AdatumCRM.

    Captura de tela que mostra uma pesquisa pelo banco de dados correto, com o AdatumCRM realçado.

  4. No menu de recursos AdatumCRM, selecione Editor de consultas (versão prévia). Em Autenticação do Active Directory, selecione o botão Continuar como para entrar.

    Captura de tela que mostra como entrar no editor de consultas usando a autenticação do Active Directory.

  5. No editor de consultas, revise as instruções a seguir para substituir <service principal name> pelo nome da entidade de serviço que você criou (por exemplo, purview-service-principal). Em seguida, execute as instruções.

    
    CREATE USER [<service principal name>] FROM EXTERNAL PROVIDER
    GO
    
    EXEC sp_addrolemember 'db_datareader', [<service principal name>]
    GO
    
    

    Captura de tela que mostra como executar instruções no editor de consultas.

Repita as etapas 3 a 5 para o banco de dados AdatumERP.

Configurar o cofre de chaves

O Purview lê a chave da entidade de serviço por meio de uma instância do Azure Key Vault. O cofre de chaves é criado na sua implantação da zona de destino de gerenciamento de dados. As seguintes etapas são necessárias para configurar o cofre de chaves:

  1. Adicione a chave da entidade de serviço ao cofre de chaves como um segredo.

  2. Conceda permissões ao Leitor de Segredos do MSI do Purview no cofre de chaves.

  3. Adicione o cofre de chaves ao Purview como uma conexão.

  4. Crie uma credencial no Purview que aponte para o segredo do cofre de chaves.

Adicionar permissões para incluir segredos no cofre de chaves

  1. No portal do Azure, acesse o serviço do Azure Key Vault. Pesquise pelo cofre de chaves <DMLZ-prefix>-dev-vault001.

    Captura de tela que mostra o painel de Controle de Acesso do Key Vault.

  2. No menu de recursos, selecione Controle de Acesso (IAM). Na barra de comandos, selecione Adicionar, depois Adicionar atribuição de função.

    Captura de tela que mostra a adição de uma atribuição de função no Purview.

  3. Na guia Função, pesquise e selecione Administrador do Key Vault. Selecione Avançar.

    Captura de tela que mostra como pesquisar a função de Administrador do Key Vault.

  4. Em Membros, escolha Selecionar membros para adicionar a conta que está atualmente conectada.

    Captura de tela que mostra o botão Selecionar membros realçado.

  5. Em Selecionar membros, pesquise a conta que está atualmente conectada. Selecione a conta e escolha Selecionar.

    Captura de tela que mostra a caixa de pesquisa de membro selecionada.

  6. Para concluir o processo de atribuição de função, selecione Examinar + atribuir duas vezes.

Adicionar um segredo ao cofre de chaves

Conclua as etapas a seguir para entrar no portal do Azure por meio da máquina virtual do Bastion host.

  1. No menu de recursos do cofre de chaves <DMLZ-prefix>-dev-vault001, selecione Segredos. Na barra de comandos, selecione Gerar/Importar para criar um segredo.

    Captura de tela que mostra o botão Gerar/Importar do cofre de chaves realçado.

  2. Em Criar um segredo, selecione ou insira os seguintes valores:

    Configuração Ação
    Opções de upload Selecione Manual.
    Nome Insira o service-principal-secret.
    Valor Insira a senha da entidade de serviço criada anteriormente.

    Captura de tela que mostra o painel Criar segredo do cofre de chaves.

    Observação

    Essa etapa cria um segredo de nome service-principal-secret no cofre de chaves usando a chave de senha da entidade de serviço. O Purview usa o segredo para se conectar e examinar as fontes de dados. Se você inserir uma senha incorreta, não será possível concluir as seções a seguir.

  3. Selecione Criar.

Configurar permissões do Purview no cofre de chaves

Para que a instância do Purview leia os segredos armazenados no cofre de chaves, você deve atribuir ao Purview as permissões relevantes no cofre de chaves. Para definir as permissões, adicione a Identidade Gerenciada do Purview à função Leitor de Segredos do cofre de chaves.

  1. No menu de recursos do cofre de chaves <DMLZ-prefix>-dev-vault001, selecione Controle de acesso (IAM).

  2. Na barra de comandos, selecione Adicionar, depois Adicionar atribuição de função.

    Captura de tela que mostra o painel de Controle de Acesso, com o botão Adicionar atribuição de função realçado.

  3. Em Função, pesquise e selecione Usuário de Segredos do Key Vault. Selecione Avançar.

    Captura de tela que mostra o painel de pesquisa do usuário secreto do Key Vault.

  4. Em Membros, escolha Selecionar membros.

    Captura de tela que mostra o painel Adicionar atribuição de função com o botão Selecionar membro realçado.

  5. Pesquise a instância do Purview <DMLZ-prefix>-dev-purview001. Selecione a instância para adicionar a conta relevante. Em seguida, escolha Selecionar.

    Captura de tela que mostra a caixa de pesquisa do nome da instância do Purview.

  6. Para concluir o processo de atribuição de função, selecione Examinar + atribuir duas vezes.

    Captura de tela que mostra como concluir uma atribuição de função.

Configurar uma conexão do cofre de chaves no Purview

Para configurar uma conexão do cofre de chaves com o Purview, você deve entrar no portal do Azure usando uma máquina virtual do Azure Bastion host.

  1. No portal do Azure, acesse a conta do Purview <DMLZ-prefix>-dev-purview001. Em Introdução, no Portal de Governança do Open Microsoft Purview, selecione Abrir.

    Captura de tela que mostra a visão geral da conta do Microsoft Purview.

  2. No Purview Studio, selecione Gerenciamento>Credenciais. Na barra de comandos Credenciais, selecione Gerenciar conexões do Key Vault e escolha Nova.

    Captura de tela que mostra o botão Gerenciar conexões do Key Vault.

  3. Em Nova conexão do cofre de chaves, selecione ou insira as seguintes informações:

    Configuração Ação
    Nome Insira <DMLZ-prefix>-dev-vault001.
    Assinatura do Azure Selecione a assinatura que hospeda o cofre de chaves.
    Nome do Key Vault Selecione o cofre de chaves <DMLZ-prefix>-dev-vault001.

    Captura de tela que mostra o novo painel de conexões do Key Vault.

  4. Selecione Criar.

  5. Em Confirmar concessão de acesso, selecione Confirmar.

Criar uma credencial no Purview

A etapa final para configurar o cofre de chaves é criar uma credencial no Purview que aponte para o segredo que você criou no cofre de chaves para a entidade de serviço.

  1. No Purview Studio, selecione Gerenciamento>Credenciais. Na barra de comandos Credenciais, selecione Novo.

    Captura de tela que mostra o novo painel Credenciais do Purview.

  2. Em Nova credencial, selecione ou insira as seguintes informações:

    Configuração Ação
    Nome Insira purviewServicePrincipal.
    Método de autenticação Selecione Entidade de serviço.
    ID do Locatário O valor é preenchido automaticamente.
    ID da entidade de serviço Insira a ID do aplicativo ou a ID do cliente da entidade de serviço.
    Conexão do Key Vault Selecione a conexão do cofre de chaves criada na seção anterior.
    Nome do segredo Insira o nome do segredo no cofre de chaves (service-principal-secret).

    Captura de tela que mostra o novo formulário de credenciais, com valores realçados.

  3. Selecione Criar.

Registrar fontes de dados

Neste ponto, o Purview pode se conectar à entidade de serviço. Agora você pode registrar e configurar as fontes de dados.

Registrar contas do Azure Data Lake Storage Gen2

As etapas a seguir descrevem o processo para registrar uma conta de armazenamento do Azure Data Lake Storage Gen2.

  1. No Purview Studio, selecione o ícone de mapa de dados, escolha Fontes, depois Registrar.

    Captura de tela que mostra o botão do mapa de dados realçado no Purview.

  2. Em Registrar fontes, selecione Azure Data Lake Storage Gen2, depois escolha Continuar.

    Captura de tela que mostra a fonte de registro do Azure Data Lake Storage Gen2.

  3. Em Registrar fontes (Azure Data Lake Storage Gen2), selecione ou insira as seguintes informações:

    Configuração Ação
    Nome Insira <DLZ-prefix>dldevraw.
    Assinatura do Azure Selecione a assinatura que hospeda a conta de armazenamento.
    Nome da conta de armazenamento Selecione a conta de armazenamento relevante.
    Ponto de extremidade Esse valor é preenchido automaticamente com base na conta de armazenamento selecionada.
    Selecionar uma coleção Selecione a coleção raiz.

    Captura de tela que mostra o painel Registrar Azure Data Lake Storage Gen2, com valores realçados.

  4. Selecione Registrar para criar a fonte de dados.

Repita estas etapas para as seguintes contas de armazenamento:

  • <DMLZ-prefix>devencur
  • <DMLZ-prefix>devwork

Registrar a instância do Banco de Dados SQL como uma fonte de dados

  1. No Purview Studio, selecione o ícone de mapa de dados, escolha Fontes, depois Registrar.

    Captura de tela que mostra o botão do mapa de dados realçado na interface do Purview.

  2. Em Registrar fontes, selecione Banco de Dados SQL do Azure e Continuar.

    Captura de tela que mostra a fonte de dados do Banco de Dados SQL do Azure.

  3. Em Registrar fontes (Banco de Dados SQL do Azure), selecione ou insira as seguintes informações:

    Configuração Ação
    Nome Insira SQLDatabase (o nome do banco de dados criado em Criar instâncias do Banco de Dados SQL do Azure).
    Assinatura Selecione a assinatura que hospeda o banco de dados.
    Nome do servidor Insira <DP-prefix>-dev-sqlserver001.

    Captura de tela que mostra o formulário Register Banco de Dados SQL, com valores realçados.

  4. Selecione Registrar.

Configurar exames

Em seguida, configure os exames das fontes de dados.

Examinar a fonte de dados do Azure Data Lake Storage Gen2

  1. No Purview Studio, vá para o mapa de dados. Na fonte de dados, selecione o ícone Novo exame.

    Captura de tela que mostra como configurar um novo exame do Data Lake Storage Gen2.

  2. No novo painel de exame, selecione ou insira as seguintes informações:

    Configuração Ação
    Nome Insira Scan_<DLZ-prefix>devraw.
    Conectar-se por meio do runtime de integração Selecione o runtime de integração auto-hospedada implantado com a zona de destino de dados.
    Credencial Selecione a entidade de serviço que você configurou para o Purview.

    Captura de tela que mostra o formulário de exame de credenciais do Data Lake Storage Gen2 com os valores inseridos.

  3. Selecione Testar conexão para verificar a conectividade e se as permissões estão em vigor. Selecione Continuar.

  4. No Escopo do exame, selecione toda a conta de armazenamento como o escopo do exame e escolha Continuar.

    Captura de tela que mostra o escopo do painel de exame com contas de armazenamento selecionadas.

  5. Em Selecionar um conjunto de regras de exame, escolha AdlsGen2 e depois Continuar.

    Captura de tela que mostra a seleção do conjunto de regras de exame do Data Lake Storage Gen2.

  6. Em Definir um gatilho de exame, selecione Uma vez e depois Continuar.

    Captura de tela que mostra o painel Definir um acionador de verificação, com a opção Uma vez selecionada.

  7. Em Revisar seu exame, revise as configurações do exame. Selecione Salvar e executar para iniciar o exame.

    Captura de tela que mostra a revisão do exame antes de salvá-lo e executá-lo.

Repita estas etapas para as seguintes contas de armazenamento:

  • <DMLZ-prefix>devencur
  • <DMLZ-prefix>devwork

Examinar a fonte de dados do Banco de Dados SQL

  1. Na fonte de dados do Banco de Dados SQL do Azure, selecione Novo exame.

    Captura de tela que mostra como criar um exame do Banco de Dados SQL.

  2. No novo painel de exame, selecione ou insira as seguintes informações:

    Configuração Ação
    Nome Enter Scan_Database001.
    Conectar-se por meio do runtime de integração Selecione Purview-SHIR.
    Nome do banco de dados Selecione o nome do banco de dados.
    Credencial Selecione a credencial do cofre de chaves que você criou no Purview.
    Extração de linhagem (versão prévia) Selecione Desativado.

    Captura de tela que mostra o formulário de exame de credenciais com os valores inseridos.

  3. Selecione Testar conexão para verificar a conectividade e se as permissões estão em vigor. Selecione Continuar.

  4. Selecione o escopo do exame. Para examinar todo o banco de dados, use o valor padrão.

    Captura de tela que mostra como definir o escopo do exame para todo o banco de dados.

  5. Em Selecionar um conjunto de regras de exame, escolha AzureSqlDatabase e depois Continuar.

    Captura de tela que mostra a seleção do conjunto de regras de exame do Banco de Dados SQL.

  6. Em Definir um gatilho de exame, selecione Uma vez e depois Continuar.

    Captura de tela que mostra o painel Definir exame para executar uma vez selecionado.

  7. Em Revisar seu exame, revise as configurações do exame. Selecione Salvar e executar para iniciar o exame.

Repita essas etapas para o banco de dados AdatumERP.

O Purview agora está configurado para governança de dados das fontes de dados registradas.

Copiar dados do Banco de Dados SQL para o Data Lake Storage Gen2

Nas etapas a seguir, você usa a ferramenta Copiar Dados no Data Factory para criar um pipeline a fim de copiar as tabelas das instâncias AdatumCRM e AdatumERP do Banco de Dados SQL para arquivos CSV da conta do Data Lake Storage Gen2 <DLZ-prefix>devraw.

O ambiente está bloqueado para acesso público, portanto, primeiro você precisa configurar pontos de extremidade privados. Para usar os pontos de extremidade privados, entre no portal do Azure no navegador local e, em seguida, conecte-se à máquina virtual do Bastion host a fim de acessar os serviços necessários do Azure.

Criar pontos de extremidade privados

Para configurar pontos de extremidade privados para os recursos necessários:

  1. No grupo de recursos <DMLZ-prefix>-dev-bastion, selecione <DMLZ-prefix>-dev-vm001.

    Captura de tela que mostra os grupos de recursos para conexão com a máquina virtual do Bastion host.

  2. Na barra de comandos, selecione Conectar e escolha Bastion.

    Captura de tela que mostra o painel de seleção conectar ao bastion.

  3. Insira o nome de usuário e a senha da máquina virtual e selecione Conectar.

    Captura de tela que mostra o painel de entrada do nome de usuário e da senha.

  4. No navegador da Web da máquina virtual, acesse o portal do Azure. Vá para o grupo de recursos <DLZ-prefix>-dev-shared-integration e abra o data factory <DLZ-prefix>-dev-integration-datafactory001.

    Captura de tela que mostra como ir para um grupo de recursos diferente a fim de abrir o Azure Data Factory.

  5. Em Introdução, em Abrir o Azure Data Factory Studio, selecione Abrir.

    Captura de tela que mostra como abrir o Azure Data Factory Studio.

  6. No menu do Data Factory Studio, selecione o ícone Gerenciar (o ícone parece uma caixa de ferramentas quadrada com uma chave inglesa estampada nela). No menu de recursos, selecione Pontos de extremidade privados gerenciados para criar os pontos de extremidade privados necessários para conectar o Data Factory a outros serviços protegidos do Azure.

    A aprovação de solicitações de acesso para os pontos de extremidade privados é discutida em uma seção posterior. Depois de aprovar solicitações de acesso de ponto de extremidade privado, seu status de aprovação será Aprovado, como no exemplo a seguir da conta de armazenamento <DLZ-prefix>devencur.

    Captura de tela que mostra como acessar o painel Gerenciar pontos de extremidade privados.

  7. Antes de aprovar as conexões do ponto de extremidade privado, selecione Novo. Insira SQL do Azure para localizar o conector do Banco de Dados SQL do Azure que você usa para criar um ponto de extremidade privado gerenciado para a máquina virtual do SQL do Azure <DP-prefix>-dev-sqlserver001. A máquina virtual contém os bancos de dados AdatumCRM e AdatumERP que você criou anteriormente.

  8. Em Novo ponto de extremidade privado gerenciado (Banco de Dados SQL do Azure), no campo Nome insira data-product-dev-sqlserver001. Insira a assinatura do Azure usada para criar os recursos. Em Nome do servidor, selecione <DP-prefix>-dev-sqlserver001 para que você possa se conectar a ele por meio deste data factory nas próximas seções.

    Captura de tela que mostra como dar nome ao novo ponto de extremidade privado.

Aprovar solicitações de acesso de pontos de extremidade privados

Para fornecer aos serviços necessários do Data Factory acesso aos pontos de extremidade privados, escolha uma das seguintes opções:

  • Opção 1: em cada serviço ao qual você solicita acesso, no portal do Azure, vá para a opção de conexões de ponto de extremidade privado ou de rede do serviço e aprove as solicitações de acesso ao ponto de extremidade privado.

  • Opção 2: execute os scripts a seguir no modo Bash do Azure Cloud Shell para aprovar todas as solicitações de acesso aos pontos de extremidade privados requeridos de uma só vez.

    
    # Storage managed private endpoint approval
    
    # devencur
    resourceGroupName=$(az group list -o tsv  --query "[?contains(@.name, '-dev-storage')==\`true\`].name")
    storageAcctName=$(az storage account list -g $resourceGroupName -o tsv  --query "[?contains(@.name, 'devencur')==\`true\`].name")
    endPointConnectionName=$(az network private-endpoint-connection list -g $resourceGroupName -n $storageAcctName --type Microsoft.Storage/storageAccounts -o tsv --query "[?contains(@.properties.privateLinkServiceConnectionState.status, 'Pending')==\`true\`].name")
    
    az network private-endpoint-connection approve -g $resourceGroupName -n $endPointConnectionName --resource-name $storageAcctName --type Microsoft.Storage/storageAccounts --description "Approved"
    
    # devraw
    resourceGroupName=$(az group list -o tsv  --query "[?contains(@.name, '-dev-storage')==\`true\`].name")
    storageAcctName=$(az storage account list -g $resourceGroupName -o tsv  --query "[?contains(@.name, 'devraw')==\`true\`].name")
    endPointConnectionName=$(az network private-endpoint-connection list -g $resourceGroupName -n $storageAcctName --type Microsoft.Storage/storageAccounts -o tsv --query "[?contains(@.properties.privateLinkServiceConnectionState.status, 'Pending')==\`true\`].name")
    az network private-endpoint-connection approve -g $resourceGroupName -n $endPointConnectionName --resource-name $storageAcctName --type Microsoft.Storage/storageAccounts --description "Approved"
    
    # SQL Database managed private endpoint approval
    resourceGroupName=$(az group list -o tsv  --query "[?contains(@.name, '-dev-dp001')==\`true\`].name")
    sqlServerName=$(az sql server list -g $resourceGroupName -o tsv  --query "[?contains(@.name, 'sqlserver001')==\`true\`].name")
    endPointConnectionName=$(az network private-endpoint-connection list -g $resourceGroupName -n $sqlServerName --type Microsoft.Sql/servers -o tsv --query "[?contains(@.properties.privateLinkServiceConnectionState.status, 'Pending')==\`true\`].name")
    az network private-endpoint-connection approve -g $resourceGroupName -n $endPointConnectionName --resource-name $sqlServerName --type Microsoft.Sql/servers --description "Approved"
    
    # Key Vault private endpoint approval
    resourceGroupName=$(az group list -o tsv  --query "[?contains(@.name, '-dev-metadata')==\`true\`].name")
    keyVaultName=$(az keyvault list -g $resourceGroupName -o tsv  --query "[?contains(@.name, 'dev-vault001')==\`true\`].name")
    endPointConnectionID=$(az network private-endpoint-connection list -g $resourceGroupName -n $keyVaultName --type Microsoft.Keyvault/vaults -o tsv --query "[?contains(@.properties.privateLinkServiceConnectionState.status, 'Pending')==\`true\`].id")
    az network private-endpoint-connection approve -g $resourceGroupName --id $endPointConnectionID --resource-name $keyVaultName --type Microsoft.Keyvault/vaults --description "Approved"
    
    # Purview private endpoint approval
    resourceGroupName=$(az group list -o tsv  --query "[?contains(@.name, 'dev-governance')==\`true\`].name")
    purviewAcctName=$(az purview account list -g $resourceGroupName -o tsv  --query "[?contains(@.name, '-dev-purview001')==\`true\`].name")
    for epn in $(az network private-endpoint-connection list -g $resourceGroupName -n $purviewAcctName --type Microsoft.Purview/accounts -o tsv --query "[?contains(@.properties.privateLinkServiceConnectionState.status, 'Pending')==\`true\`].name")
    do
        az network private-endpoint-connection approve -g $resourceGroupName -n $epn --resource-name $purviewAcctName --type Microsoft.Purview/accounts --description "Approved"
    done
    
    

O exemplo a seguir mostra como a conta de armazenamento <DLZ-prefix>devraw gerencia solicitações de acesso de pontos de extremidade privados. No menu de recursos da conta de armazenamento, selecione Rede. Na barra de comandos, selecione Conexões do ponto de extremidade privado.

Captura de tela que mostra como acessar o painel de conexões do ponto de extremidade privado.

Para alguns recursos do Azure, selecione Conexões do ponto de extremidade privado no menu de recursos. Um exemplo para o servidor SQL do Azure é mostrado na captura de tela a seguir.

Para aprovar uma solicitação de acesso do ponto de extremidade privado, em Conexões do ponto de extremidade privado, selecione a solicitação de acesso pendente e escolha Aprovar:

Captura de tela que mostra como aprovar uma solicitação de acesso de ponto de extremidade privado.

Depois de aprovar a solicitação de acesso em cada serviço necessário, pode levar alguns minutos para que a solicitação seja exibida como Aprovada em Pontos de extremidade privados gerenciados no Data Factory Studio. Mesmo se você selecionar Atualizar na barra de comandos, o estado de aprovação poderá ficar obsoleto por alguns minutos.

Quando você terminar de aprovar todas as solicitações de acesso para os serviços necessários, em Pontos de extremidade privados gerenciados, o valor do estado de aprovação para todos os serviços será Aprovado:

Captura de tela que mostra as conexões SQL do ponto de extremidade privado como Aprovado.

Atribuições de função

Ao concluir a aprovação de solicitações de acesso do ponto de extremidade privado, adicione as permissões de função apropriadas ao Data Factory para acessar esses recursos:

  • Instâncias do Banco de Dados SQL AdatumCRM e AdatumERP no servidor SQL do Azure <DP-prefix>-dev-sqlserver001
  • Contas de armazenamento <DLZ-prefix>devraw, <DLZ-prefix>devencur e <DLZ-prefix>devwork
  • Conta do Purview <DMLZ-prefix>-dev-purview001

Máquina virtual do SQL do Azure

  1. Para adicionar atribuições de função, comece com a máquina virtual do SQL do Azure. No grupo de recursos <DMLZ-prefix>-dev-dp001, vá para <DP-prefix>-dev-sqlserver001.

  2. No menu de recursos, selecione Controle de Acesso (IAM). Na barra de comandos, selecione Adicionar>Adicionar atribuição de função.

  3. Na guia Função, selecione Colaborador, depois Avançar.

    Captura de tela que mostra o painel de seleção da função Colaborador.

  4. Em Membros, para Atribuir acesso a, selecione Identidade gerenciada. Para Membros, escolha Selecionar Membros.

    Captura de tela que mostra o painel de Membros da Identidade Gerenciada selecionados.

  5. Em Selecionar identidades gerenciadas, escolha sua assinatura do Azure. Para Identidade gerenciada, selecione Data Factory (V2) para ver os data factories disponíveis. Na lista de data factories, selecione Azure Data Factory <DLZ-prefix>-dev-integration-datafactory001. Escolha Selecionar.

    Captura de tela que mostra o painel de conclusão da atribuição de função.

  6. Selecione Examinar + Atribuir duas vezes para concluir o processo.

Contas de armazenamento

Em seguida, atribua as funções necessárias às contas de armazenamento <DLZ-prefix>devraw, <DLZ-prefix>devencur e <DLZ-prefix>devworknecessárias.

Para atribuir as funções, conclua as mesmas etapas usadas para criar a atribuição de função de servidor SQL do Azure. Mas, para a função, selecione Colaborador de Dados do Blob de Armazenamento em vez de Colaborador.

Depois de atribuir funções para todas as três contas de armazenamento, o Data Factory poderá se conectar às contas de armazenamento e acessá-las.

Microsoft Purview

A etapa final para adicionar atribuições de função é adicionar a função de Coletor de Dados do Purview no Microsoft Purview, na conta de identidade gerenciada do data factory <DLZ-prefix>-dev-integration-datafactory001. Conclua as etapas a seguir para que o Data Factory possa enviar informações de ativos do catálogo de dados de várias fontes de dados para a conta do Purview.

  1. No grupo de recursos <DMLZ-prefix>-dev-governance, vá para a conta do Purview <DMLZ-prefix>-dev-purview001.

  2. No Purview Studio, selecione o ícone de Mapa de dados e escolha Coleções.

  3. Selecione a guia Atribuições de função para a coleção. Em Coletores de dados, adicione a identidade gerenciada para <DLZ-prefix>-dev-integration-datafactory001:

    Captura de tela que mostra como adicionar coletores de dados à sua atribuição de função do Purview.

Conectar o Data Factory ao Purview

As permissões estão definidas e agora o Purview pode ver o Data Factory. A próxima etapa é fazer com que <DMLZ-prefix>-dev-purview001 se conecte a <DLZ-prefix>-dev-integration-datafactory001.

  1. No Purview Studio, selecione o ícone Gerenciamento, depois Data Factory. Selecione Novo para criar uma conexão do Data Factory.

  2. No painel Novas conexões do Data Factory, insira sua assinatura do Azure e selecione o data factory <DLZ-prefix>-dev-integration-datafactory001. Selecione OK.

    Captura de tela que mostra a aparência do painel do Purview Studio ao selecionar uma nova conexão.

  3. Na instância do Data Factory Studio <DLZ-prefix>-dev-integration-datafactory001, em Gerenciar>Azure Purview, atualize a conta do Azure Purview.

    A integração Data Lineage - Pipeline agora mostra o ícone verde Conectado.

    Captura de tela que mostra o painel da conta do Azure Data Factory Purview com o pipeline de linhagem de dados conectado.

Criar um pipeline de ETL

Agora que <DLZ-prefix>-dev-integration-datafactory001 tem as permissões de acesso necessárias, crie uma atividade de cópia no Data Factory para mover dados de instâncias do Banco de Dados SQL para a conta de armazenamento bruto <DLZ-prefix>devraw.

Usar a ferramenta Copiar Dados com o AdatumCRM

Esse processo extrai dados de cliente da instância do Banco de Dados SQL AdatumCRM e os copia para o armazenamento Data Lake Storage Gen2.

  1. No Data Factory Studio, selecione o ícone Autor e escolha Recursos do Factory. Selecione o sinal de adição (+) e escolha a ferramenta Copiar Dados.

    Captura de tela que mostra a ferramenta Copiar Dados em recursos do Factory.

    Conclua cada etapa no assistente da ferramenta Copiar Dados:

    1. Para criar um gatilho para executar o pipeline a cada 24 horas, selecione Agendar.

      Captura de tela que mostra como agendar um gatilho para ser executado periodicamente no CRM.

    2. Para criar um serviço vinculado a fim de conectar esse data factory à instância do Banco de Dados SQL AdatumCRM no servidor <DP-prefix>-dev-sqlserver001 (origem), selecione Nova Conexão.

      Captura de tela que mostra a conexão com o banco de dados AdatumCRM.

      Observação

      Se você tiver erros ao se conectar ou acessar os dados nas instâncias de Banco de Dados SQL ou nas contas de armazenamento, examine suas permissões na assinatura do Azure. Verifique se o data factory tem as credenciais necessárias e as permissões de acesso para qualquer recurso problemático.

    3. Selecione estas três tabelas:

      • SalesLT.Address
      • SalesLT.Customer
      • SalesLT.CustomerAddress

      Captura de tela que mostra o painel de tabelas selecionadas com tabelas realçadas.

    4. Crie um serviço vinculado para acessar o armazenamento do Azure Data Lake Storage Gen2 (destino) <DLZ-prefix>devraw.

      Captura de tela que mostra a conexão de armazenamento bruto.

    5. Navegue pelas pastas no armazenamento <DLZ-prefix>devraw e selecione Dados como o destino.

      Captura de tela que mostra o destino como dados brutos.

    6. Altere o sufixo do nome de arquivo para .csv e use as outras opções padrão.

      Captura de tela que mostra o campo de sufixo do nome do arquivo com o CSV inserido.

    7. Vá para o próximo painel e selecione Adicionar cabeçalho ao arquivo.

      Captura de tela que mostra como adicionar um cabeçalho a um arquivo.

    8. Quando você concluir o assistente, o painel Implantação concluída será semelhante a este exemplo:

      Captura de tela que mostra a implantação da ferramenta Copiar Dados concluída.

O novo pipeline está listado em Pipelines.

Executar o pipeline

Esse processo cria três arquivos .csv na pasta Data\CRM, um para cada uma das tabelas selecionadas no banco de dados AdatumCRM.

  1. Renomeie o pipeline CopyPipeline_CRM_to_Raw.

  2. Renomeie os conjuntos de dados CRM_Raw_Storage e CRM_DB.

  3. Na barra de comandos Recursos de Fábrica, selecione Publicar tudo.

  4. Selecione o pipeline CopyPipeline_CRM_to_Raw e, na barra de comandos do pipeline, escolha Gatilho para copiar as três tabelas do Banco de Dados SQL para o Data Lake Storage Gen2.

    Captura de tela que mostra como usar a ferramenta de gatilho para copiar dados do Banco de Dados SQL para o Data Lake Storage Gen2.

Usar a ferramenta Copiar Dados com o AdatumERP

Em seguida, extraia os dados do banco de dados AdatumERP. Os dados representam dados de vendas provenientes do sistema ERP.

  1. Ainda no Data Factory Studio, crie um pipeline usando a ferramenta Copiar Dados. Desta vez, você está enviando os dados de vendas de AdatumERP para a pasta de dados da conta de armazenamento <DLZ-prefix>devraw, da mesma forma que fez com os dados do CRM. Conclua as mesmas etapas, mas use o banco de dados AdatumERP como fonte.

    1. Crie o agendamento a ser disparado a cada hora.

    2. Crie um serviço vinculado à instância do Banco de Dados SQL AdatumERP.

      Captura de tela que mostra o painel de conexão do Adatum ERP concluído.

    3. Selecione estas sete tabelas:

      • SalesLT.Product
      • SalesLT.ProductCategory
      • SalesLT.ProductDescription
      • SalesLT.ProductModel
      • SalesLT.ProductModelProductDescription
      • SalesLT.SalesOrderDetail
      • SalesLT.SalesOrderHeader

      Captura de tela que mostra as opções de Tabela do Adatum ERP.

    4. Use o serviço vinculado existente para a conta de armazenamento <DLZ-prefix>devraw e defina a extensão de arquivo como .csv.

      Captura de tela que mostra uma conta de armazenamento bruta com a extensão de arquivo definida como CSV.

    5. Selecione Adicionar cabeçalho ao arquivo.

      Captura de tela que mostra a adição de um cabeçalho a um arquivo em Configurações de formato de arquivo.

    6. Conclua o assistente novamente e renomeie o pipeline CopyPipeline_ERP_to_DevRaw. Em seguida, na barra de comandos, selecione Publicar tudo. Por fim, execute o gatilho neste pipeline recém-criado para copiar as sete tabelas selecionadas do Banco de Dados SQL para o Data Lake Storage Gen2.

Quando você concluir essas etapas, 10 arquivos CSV estarão no armazenamento do Data Lake Storage Gen2 <DLZ-prefix>devraw. Na próxima seção, você faz a coleta dos arquivos no armazenamento do Data Lake Storage Gen2 <DLZ-prefix>devencur.

Coletar dados no Data Lake Storage Gen2

Quando você terminar de criar os 10 arquivos CSV no armazenamento bruto do Data Lake Storage Gen2 <DLZ-prefix>devraw, transforme esses arquivos conforme necessário enquanto os copia para o armazenamento do Data Lake Storage Gen2 <DLZ-prefix>devencur coletado.

Continue usando o Azure Data Factory para criar esses pipelines a fim de orquestrar a movimentação de dados.

Coletar dados do CRM ao cliente

Crie um fluxo de dados que obtém os arquivos CSV da pasta Data\CRM em <DLZ-prefix>devraw, transforma-os no formato .parquet e os copia para a pasta Data\Customer em <DLZ-prefix>devencur.

  1. Em Azure Data Factory, vá para o data factory e selecione Orchestrar.

    Captura de tela que mostra o botão Orquestrar no Azure Data Factory.

  2. Em Geral, dê um nome ao pipeline Pipeline_transform_CRM.

  3. No painel Atividades, expanda Mover e Transformar. Arraste a atividade de fluxo de dados e solte-a na tela do pipeline.

    Captura de tela que mostra o painel Atividades e Mover e transformar realçados.

  4. Em Adicionar Fluxo de Dados, selecione Criar fluxo de dados e dê um nome ao fluxo de dados CRM_to_Customer. Selecione Concluir.

    Observação

    Na barra de comandos da tela do pipeline, ative a depuração do fluxo de dados. No modo de depuração, você pode testar interativamente a lógica de transformação em um cluster dinâmico do Apache Spark. Os clusters de fluxo de dados levam de 5 a 7 minutos para se aquecerem. Recomendamos que você ative a depuração antes de iniciar o desenvolvimento do fluxo de dados.

    Captura de tela que mostra o botão Abrir fluxo de dados.

    Quando você terminar de selecionar as opções no fluxo de dados CRM_to_Customer, o pipeline Pipeline_transform_CRM será semelhante a este exemplo:

    Captura de tela que mostra o CRM de transformação do pipeline.

    O fluxo de dados é semelhante a este exemplo:

    Captura de tela que mostra o fluxo de dados do CRM para o Cliente.

  5. Em seguida, modifique essas configurações no fluxo de dados da fonte CRMAddress:

    1. Crie um conjunto de dados por meio do Data Lake Storage Gen2. Use o formato DelimitedText. Nomeie o conjunto de dados DevRaw_CRM_Address.

    2. Conecte o serviço vinculado a <DLZ-prefix>devraw.

    3. Selecione o arquivo Data\CRM\SalesLTAddress.csv como fonte.

  6. Modifique essas configurações no fluxo de dados para o coletor emparelhado CustAddress:

    1. Crie um conjunto de dados chamado DevEncur_Cust_Address.

    2. Selecione a pasta Data\Customer em <DLZ-prefix>devencur como o coletor.

    3. Em Settings\Output to single file, converta o arquivo para Address.parquet.

Para o restante da configuração de fluxo de dados, use as informações das tabelas a seguir para cada componente. Observe que CRMAddress e CustAddress são as duas primeiras linhas. Use-as como exemplos para os outros objetos.

Um item que não está em nenhuma das tabelas a seguir é o modificador de esquema RemovePasswords. A captura de tela anterior mostra que esse item fica entre CRMCustomer e CustCustomer. Para adicionar esse modificador de esquema, vá para Selecionar configurações e remova PasswordHash e PasswordSalt.

CRMCustomer retorna um esquema de 15 colunas do arquivo .crv. CustCustomer grava apenas 13 colunas depois que o modificador de esquema remove as duas colunas de senha.

A tabela completa

Nome Tipo de objeto Nome do conjunto de dados Armazenamento de dados Tipo de formato Serviço vinculado Arquivo ou pasta
CRMAddress Origem DevRaw_CRM_Address Azure Data Lake Storage Gen2 DelimitedText devraw Data\CRM\SalesLTAddress.csv
CustAddress Coletor DevEncur_Cust_Address Azure Data Lake Storage Gen2 Parquet devencur Data\Customer\Address.parquet
CRMCustomer Origem DevRaw_CRM_Customer Azure Data Lake Storage Gen2 DelimitedText devraw Data\CRM\SalesLTCustomer.csv
CustCustomer Coletor DevEncur_Cust_Customer Azure Data Lake Storage Gen2 Parquet devencur Data\Customer\Customer.parquet
CRMCustomerAddress Origem DevRaw_CRM_CustomerAddress Azure Data Lake Storage Gen2 DelimitedText devraw Data\CRM\SalesLTCustomerAddress.csv
CustCustomerAddress Coletor DevEncur_Cust_CustomerAddress Azure Data Lake Storage Gen2 Parquet devencur Data\Customer\CustomerAddress.parquet

Tabela ERP para Vendas

Agora, repita etapas semelhantes para criar um pipeline Pipeline_transform_ERP, crie um fluxo de dados ERP_to_Sales para transformar os arquivos .csv da pasta Data\ERP em <DLZ-prefix>devraw e copie os arquivos transformados para a pasta Data\Sales em <DLZ-prefix>devencur.

Na tabela a seguir, você vai encontrar os objetos a serem criados no fluxo de dados ERP_to_Sales e as configurações que precisa modificar para cada objeto. Cada arquivo .csv é mapeado para um coletor .parquet.

Nome Tipo de objeto Nome do conjunto de dados Armazenamento de dados Tipo de formato Serviço vinculado Arquivo ou pasta
ERPProduct Origem DevRaw_ERP_Product Azure Data Lake Storage Gen2 DelimitedText devraw Data\ERP\SalesLTProduct.csv
SalesProduct Coletor DevEncur_Sales_Product Azure Data Lake Storage Gen2 Parquet devencur Data\Sales\Product.parquet
ERPProductCategory Origem DevRaw_ERP_ProductCategory Azure Data Lake Storage Gen2 DelimitedText devraw Data\ERP\SalesLTProductCategory.csv
SalesProductCategory Coletor DevEncur_Sales_ProductCategory Azure Data Lake Storage Gen2 Parquet devencur Data\Sales\ProductCategory.parquet
ERPProductDescription Origem DevRaw_ERP_ProductDescription Azure Data Lake Storage Gen2 DelimitedText devraw Data\ERP\SalesLTProductDescription.csv
SalesProductDescription Coletor DevEncur_Sales_ProductDescription Azure Data Lake Storage Gen2 Parquet devencur Data\Sales\ProductDescription.parquet
ERPProductModel Origem DevRaw_ERP_ProductModel Azure Data Lake Storage Gen2 DelimitedText devraw Data\ERP\SalesLTProductModel.csv
SalesProductModel Coletor DevEncur_Sales_ProductModel Azure Data Lake Storage Gen2 Parquet devencur Data\Sales\ProductModel.parquet
ERPProductModelProductDescription Origem DevRaw_ERP_ProductModelProductDescription Azure Data Lake Storage Gen2 DelimitedText devraw Data\ERP\SalesLTProductModelProductDescription.csv
SalesProductModelProductDescription Coletor DevEncur_Sales_ProductModelProductDescription Azure Data Lake Storage Gen2 Parquet devencur Data\Sales\ProductModelProductDescription.parquet
ERPProductSalesOrderDetail Origem DevRaw_ERP_ProductSalesOrderDetail Azure Data Lake Storage Gen2 DelimitedText devraw Data\ERP\SalesLTProductSalesOrderDetail.csv
SalesProductSalesOrderDetail Coletor DevEncur_Sales_ProductSalesOrderDetail Azure Data Lake Storage Gen2 Parquet devencur Data\Sales\ProductSalesOrderDetail.parquet
ERPProductSalesOrderHeader Origem DevRaw_ERP_ProductSalesOrderHeader Azure Data Lake Storage Gen2 DelimitedText devraw Data\ERP\SalesLTProductSalesOrderHeader.csv
SalesProductSalesOrderHeader Coletor DevEncur_Sales_ProductSalesOrderHeader Azure Data Lake Storage Gen2 Parquet devencur Data\Sales\ProductSalesOrderHeader.parquet

Próximas etapas