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:
- Zona de destino do gerenciamento de dados. Para obter mais informações, confira o repositório do GitHub da zona de destino de gerenciamento de dados.
- Zona de destino de dados. Para obter mais informações, confira o repositório do GitHub da zona de destino de dados.
- Lote de produtos de dados. Para obter mais informações, confira o repositório do GitHub com o lote de produtos de dados.
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.
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.
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
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.
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
- Substitua o valor do espaço reservado do parâmetro
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
No portal do Azure, vá para a conta de armazenamento do Azure
<DLZ-prefix>devraw
. No menu de recursos, selecione Controle de Acesso (IAM).Selecione Adicionar>Adicionar atribuição de função.
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.
Em Membros, escolha Selecionar membros.
Em Selecionar membros, pesquise o nome da entidade de serviço que você criou.
Nos resultados da pesquisa, selecione a entidade de serviço e escolha Selecionar.
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.
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.Na barra de comandos, selecione Definir administrador. Pesquise e selecione sua conta. Escolha Selecionar.
No menu de recursos, selecione bancos de dados SQL, depois escolha o bancos de dados
AdatumCRM
.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.
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
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:
Adicione a chave da entidade de serviço ao cofre de chaves como um segredo.
Conceda permissões ao Leitor de Segredos do MSI do Purview no cofre de chaves.
Adicione o cofre de chaves ao Purview como uma conexão.
Crie uma credencial no Purview que aponte para o segredo do cofre de chaves.
Adicionar permissões para incluir segredos no cofre de chaves
No portal do Azure, acesse o serviço do Azure Key Vault. Pesquise pelo cofre de chaves
<DMLZ-prefix>-dev-vault001
.No menu de recursos, selecione Controle de Acesso (IAM). Na barra de comandos, selecione Adicionar, depois Adicionar atribuição de função.
Na guia Função, pesquise e selecione Administrador do Key Vault. Selecione Avançar.
Em Membros, escolha Selecionar membros para adicionar a conta que está atualmente conectada.
Em Selecionar membros, pesquise a conta que está atualmente conectada. Selecione a conta e escolha Selecionar.
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.
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.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. 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.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.
No menu de recursos do cofre de chaves
<DMLZ-prefix>-dev-vault001
, selecione Controle de acesso (IAM).Na barra de comandos, selecione Adicionar, depois Adicionar atribuição de função.
Em Função, pesquise e selecione Usuário de Segredos do Key Vault. Selecione Avançar.
Em Membros, escolha Selecionar membros.
Pesquise a instância do Purview
<DMLZ-prefix>-dev-purview001
. Selecione a instância para adicionar a conta relevante. Em seguida, escolha Selecionar.Para concluir o processo de atribuição de função, selecione Examinar + atribuir duas vezes.
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.
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.No Purview Studio, selecione Gerenciamento>Credenciais. Na barra de comandos Credenciais, selecione Gerenciar conexões do Key Vault e escolha Nova.
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. Selecione Criar.
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.
No Purview Studio, selecione Gerenciamento>Credenciais. Na barra de comandos Credenciais, selecione Novo.
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). 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.
No Purview Studio, selecione o ícone de mapa de dados, escolha Fontes, depois Registrar.
Em Registrar fontes, selecione Azure Data Lake Storage Gen2, depois escolha Continuar.
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. 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
No Purview Studio, selecione o ícone de mapa de dados, escolha Fontes, depois Registrar.
Em Registrar fontes, selecione Banco de Dados SQL do Azure e Continuar.
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. Selecione Registrar.
Configurar exames
Em seguida, configure os exames das fontes de dados.
Examinar a fonte de dados do Azure Data Lake Storage Gen2
No Purview Studio, vá para o mapa de dados. Na fonte de dados, selecione o ícone Novo exame.
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. Selecione Testar conexão para verificar a conectividade e se as permissões estão em vigor. Selecione Continuar.
No Escopo do exame, selecione toda a conta de armazenamento como o escopo do exame e escolha Continuar.
Em Selecionar um conjunto de regras de exame, escolha AdlsGen2 e depois Continuar.
Em Definir um gatilho de exame, selecione Uma vez e depois Continuar.
Em Revisar seu exame, revise as configurações do exame. Selecione Salvar e executar para iniciar o exame.
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
Na fonte de dados do Banco de Dados SQL do Azure, selecione Novo exame.
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. Selecione Testar conexão para verificar a conectividade e se as permissões estão em vigor. Selecione Continuar.
Selecione o escopo do exame. Para examinar todo o banco de dados, use o valor padrão.
Em Selecionar um conjunto de regras de exame, escolha AzureSqlDatabase e depois Continuar.
Em Definir um gatilho de exame, selecione Uma vez e depois Continuar.
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:
No grupo de recursos
<DMLZ-prefix>-dev-bastion
, selecione<DMLZ-prefix>-dev-vm001
.Na barra de comandos, selecione Conectar e escolha Bastion.
Insira o nome de usuário e a senha da máquina virtual e selecione Conectar.
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
.Em Introdução, em Abrir o Azure Data Factory Studio, selecione Abrir.
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
.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 dadosAdatumCRM
eAdatumERP
que você criou anteriormente.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.
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.
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:
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:
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
eAdatumERP
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
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
.No menu de recursos, selecione Controle de Acesso (IAM). Na barra de comandos, selecione Adicionar>Adicionar atribuição de função.
Na guia Função, selecione Colaborador, depois Avançar.
Em Membros, para Atribuir acesso a, selecione Identidade gerenciada. Para Membros, escolha Selecionar Membros.
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.
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>devwork
necessá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.
No grupo de recursos
<DMLZ-prefix>-dev-governance
, vá para a conta do Purview<DMLZ-prefix>-dev-purview001
.No Purview Studio, selecione o ícone de Mapa de dados e escolha Coleções.
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
:
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
.
No Purview Studio, selecione o ícone Gerenciamento, depois Data Factory. Selecione Novo para criar uma conexão do Data Factory.
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.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.
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.
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.
Conclua cada etapa no assistente da ferramenta Copiar Dados:
Para criar um gatilho para executar o pipeline a cada 24 horas, selecione Agendar.
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.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.
Selecione estas três tabelas:
SalesLT.Address
SalesLT.Customer
SalesLT.CustomerAddress
Crie um serviço vinculado para acessar o armazenamento do Azure Data Lake Storage Gen2 (destino)
<DLZ-prefix>devraw
.Navegue pelas pastas no armazenamento
<DLZ-prefix>devraw
e selecione Dados como o destino.Altere o sufixo do nome de arquivo para .csv e use as outras opções padrão.
Vá para o próximo painel e selecione Adicionar cabeçalho ao arquivo.
Quando você concluir o assistente, o painel Implantação concluída será semelhante a este exemplo:
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
.
Renomeie o pipeline
CopyPipeline_CRM_to_Raw
.Renomeie os conjuntos de dados
CRM_Raw_Storage
eCRM_DB
.Na barra de comandos Recursos de Fábrica, selecione Publicar tudo.
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.
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.
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 dadosAdatumERP
como fonte.Crie o agendamento a ser disparado a cada hora.
Crie um serviço vinculado à instância do Banco de Dados SQL
AdatumERP
.Selecione estas sete tabelas:
SalesLT.Product
SalesLT.ProductCategory
SalesLT.ProductDescription
SalesLT.ProductModel
SalesLT.ProductModelProductDescription
SalesLT.SalesOrderDetail
SalesLT.SalesOrderHeader
Use o serviço vinculado existente para a conta de armazenamento
<DLZ-prefix>devraw
e defina a extensão de arquivo como .csv.Selecione Adicionar cabeçalho ao arquivo.
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
.
Em Azure Data Factory, vá para o data factory e selecione Orchestrar.
Em Geral, dê um nome ao pipeline
Pipeline_transform_CRM
.No painel Atividades, expanda Mover e Transformar. Arraste a atividade de fluxo de dados e solte-a na tela do pipeline.
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.
Quando você terminar de selecionar as opções no fluxo de dados
CRM_to_Customer
, o pipelinePipeline_transform_CRM
será semelhante a este exemplo:O fluxo de dados é semelhante a este exemplo:
Em seguida, modifique essas configurações no fluxo de dados da fonte
CRMAddress
:Crie um conjunto de dados por meio do Data Lake Storage Gen2. Use o formato DelimitedText. Nomeie o conjunto de dados
DevRaw_CRM_Address
.Conecte o serviço vinculado a
<DLZ-prefix>devraw
.Selecione o arquivo
Data\CRM\SalesLTAddress.csv
como fonte.
Modifique essas configurações no fluxo de dados para o coletor emparelhado
CustAddress
:Crie um conjunto de dados chamado
DevEncur_Cust_Address
.Selecione a pasta Data\Customer em
<DLZ-prefix>devencur
como o coletor.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 |