Olá galera o/

Vamos a mais uma postagem sobre o Azure Data Factory, se você não conhece o Azure Data Factory (ADF) abaixo segue três posts que fiz sobre o mesmo, os posts estão bem legais e detalhados.

  • Conhecendo o Azure Data Factory >> LINK <<
  • Azure Data Factory: Criando seu primeiro pipeline de dados >> LINK <<
  • Azure Data Factory: Criando datasets genéricos >> LINK <<
  • Azure Data Factory: Criando triggers do tipo Schedule>> LINK <<
  • Azure Data Factory: Criando triggers do tipo Storage Events >> LINK <<
  • Azure Data Factory: Criando triggers do tipo Tumbling Window >> LINK <<

Lembrando da nossa nova serie de postagens, aonde vamos aprender sobre as Activities do ADF funcionam e como podemos utilizar em nossos projetos da vida real. Vou selecionar as activities que mais utilizo no meu dia a dia.

Hoje vamos mostrar como funciona o LOOKUP.

O Lookup pode ler dados armazenados em banco de dados ou sistema de arquivos e passá-los para as atividades subsequentes como de cópia, transformação ou iteração. Essa activity pode ler uma variedade de banco de dados e arquivos, você pode encontrar a lista no link a seguir >> LINK <<

O Lookup pode trabalhar em 2 modos:

  • Singleton mode – Retorna a primeira linha do dataset utilizado.
    • Caso queira obter o valor dos dados contidos nas colunas da primeira linha do JSON é necessário utilizar o código abaixo:
      • @activity(‘nome do lookup’).output.firstRow.columnName
  • Array mode – Retorna todos os dados do dataset utilizado.
    • Caso queira obter o valor dos dados contidos no array do JSON é necessário utilizar o código abaixo:
      • @activity(‘nome do lookup’).output.value
      • Caso seja necessário passar o valor de uma coluna do retorno do array em um componente de iteração é necessário utilizar o código abaixo:
        • @item().nomeColuna

Características:

  • Pode retornar até 5000 linhas, caso o dataset utilizado contenha mais de 5000 linhas, somente as primeiras 5000 linhas serão retornadas.
  • O output da activity suporta até 4 MB de tamanho, caso o retorno seja maior que este tamanho a activity apresentará falha.
  • A duração máxima desta activity é de 24 horas.
  • Se alguma coluna do dataset contiver o tipo de dados ByteArray o componente apresentará falha.
  • Os dados são retornados em formato JSON.

Modo: Singleton Mode – Arquivo Delimitado (CSV)

Com o Azure Data Factory aberto vamos realizar os seguintes passos:
1 – Clicar no ícone do Editor.
2 – Selecionar Pipelines, clicar nos 3 pontinhos (…) ao lado do nome Pipeline.
3 – Selecionar a opção listada NEW PIPELINE.

Um novo pipeline será criado e aberto na janela de designer. Vamos realizar os seguintes passos:

1 – Em properties, mudar o valor do parâmetro Name para pipeline_lookup.
2 – Clicar no ícone do properties para ocultar a tela.
3 – Na guia das activities, selecionar a categoria General > Activity Lookup. Arrastar para a tela de designer.

Uma vez com a etapa anterior finalizada, iremos configurar o componente de lookup. Vamos realizar os seguintes passos:

1 – Clicar em cima do componente do lookup.
2 – Clicar na aba Settings.
3 – Selecionar o dataset generico chamado ds_csvfiles.
4 – Este dataset recebe 2 parâmetros que são o nome do container e o nome do arquivo. Para o parâmetro folderName vamos informar o valor SOURCE e para o parâmetro fileName vamos informar o valor cidades.csv.
5 – Marcar a flag da opção First row only.
6 – Clicar em Preview data.
7 – O pop-up do Preview data será exibido, será listado apenas um registro do dataset utilizado. Clicar no X para fechar o pop-up.
8 – Clicar no botão Debug.

Ao executar o Debug, a aba Output será exibida ao lado da aba Settings. Clicar na aba Output e realizar os seguintes passos:

1 – Clicar no ícone do Output
2 – O pop-up do Output será exibido. Uma estrutura em formato JSON é exibida contendo os dados da primeira linha do dataset. Nessa estrutura eu possuo um Objeto chamado firstRow com 3 atributos chamados cod_cidade, nome_cidade, sigla_estado. Depois de analisarmos o retorno do Output, devemos clicar no X para fechar o pop-up.

Modo: Array Mode – Arquivo Delimitado (CSV)

Clicamos no lookup novamente para realizar um novo teste, desta vez vamos ver os dados no modo Array. Para que o retorno seja no modo Array precisamos realizar os seguintes passos:

1 – Clicar em cima do componente do lookup e depois clicar na aba Settings.
Obs.: Os parâmetros do dataset devem permanecer os mesmos utilizados nas etapas anteriores.
2 – Desmarcar a flag da opção First row only.
3 – Clicar em Preview data.
4 – O pop-up do Preview data será exibido, ele listará uma amostra dos registros existentes no dataset. Percebam que, ele exibiu uma amostra os demais dados contidos no CSV. Clicar no X para fechar o pop-up.
5 – Clicar no botão Debug.

Ao executar o Debug, a aba Output será exibida ao lado da aba Settings. Clicar na aba Output e realizar os seguintes passos:

1 – Clicar no ícone do Output
2 – O pop-up do Output será exibido. Uma estrutura em formato JSON é exibida contendo agora o modelo de Array. Percebam que, primeiro ele identificou 5 itens contidos no dataset utilizado o atributo count, ele também possui um Array chamado value que contém 5 objetos do tipo cidade, cada objeto possui 3 atributos (cod_cidade, nome_cidade, sigla_estado). Depois de analisarmos o retorno do Output, devemos clicar no X para fechar o pop-up.

Modo: Singleton Mode – Azure SQL

Uma vez com as etapas anteriores finalizadas, iremos criar um novo pipeline para realizar os testes do lookup com um dataset buscando informações em um banco de dados. Clicar no ícone do Editor > Selecionar Pipelines, clicar nos 3 pontinhos (…) ao lado do nome Pipeline > Selecionar a opção listada NEW PIPELINE. Para configurar o componente de lookup vamos realizar os seguintes passos:

1 – Em properties, mudar o valor do parâmetro Name para pipeline_lookup.
2 – Clicar no ícone do properties para ocultar a tela.
3 – Na guia das activities, selecionar a categoria General > Activity Lookup. Arrastar para a tela de designer.
4 – Clicar em cima do componente do lookup.
5 – Clicar na aba Settings.
6 – Selecionar o dataset generico chamado ds_azuresql.
7 – Este dataset recebe 2 parâmetros que são o nome do schema e o nome da tabela. Para o parâmetro schemaName vamos informar o valor SalesLT e para o parâmetro tableName vamos informar o valor Customer.
8 – No parâmetro Use query, vamos selecionar a opção Table, mas também podemos utilizar as opções Query (podemos escrever uma query para buscar informações do banco de dados) ou Stored Procedure (Podemos realizar a chamada de uma stored procedure contida no banco de dados).
9 – Marcar a flag da opção First row only.
10 – Clicar no botão Debug.

Obs.: Não clicamos no preview data, porém ele apresentará o mesmo comportamento de exibição da primeiro registro do dataset utilizado, conforme foi demonstrado com o dataset CSV.

Ao executar o Debug, a aba Output será exibida ao lado da aba Settings. Clicar na aba Output e realizar os seguintes passos:

1 – Clicar no ícone do Output
2 – O pop-up do Output será exibido. Uma estrutura em formato JSON é exibida contendo os dados da primeira linha do dataset. Nessa estrutura eu possuo um Objeto chamado firstRow com todos os atributos da tabela cliente que está no banco de dados. Depois de analisarmos o retorno do Output, devemos clicar no X para fechar o pop-up.

Modo: Array Mode – Azure SQL

Clicamos no lookup novamente para realizar um novo teste, desta vez vamos ver os dados no modo Array. Para que o retorno seja no modo Array precisamos realizar os seguintes passos:

1 – Clicar em cima do componente do lookup e depois clicar na aba Settings.
Obs.: Os parâmetros do dataset devem permanecer os mesmos utilizados nas etapas anteriores.
2 – Desmarcar a flag da opção First row only.
3 – Clicar em Preview data.
4 – O pop-up do Preview data será exibido, ele listará uma amostra dos registros existentes no dataset. Percebam que, ele exibiu uma amostra dos demais dados contidos na tabela Cliente do banco de dados. Clicar no X para fechar o pop-up.
5 – Clicar no botão Debug.

Ao executar o Debug, a aba Output será exibida ao lado da aba Settings. Clicar na aba Output e realizar os seguintes passos:

1 – Clicar no ícone do Output
2 – O pop-up do Output será exibido. Clicar no ícone da seta para expandir o resultado.

Uma estrutura em formato JSON é exibida contendo agora o modelo de Array.

1 – Percebam que, primeiro ele identificou 847 itens contidos no dataset utilizado o atributo count
2 – Existe um Array chamado value que contém 847 objetos do tipo cliente, cada objeto possui os atributos da tabela cliente contida no banco de dados.
3 – Depois de analisarmos o retorno do Output, devemos clicar no X para fechar o pop-up.

Modo: Array Mode – Azure SQL – Listando tabelas de um banco de dados

Clicamos no lookup novamente para realizar um novo teste, desta vez vamos ver os dados no modo Array, listando todas as tabelas contidas no banco de dados vinculadas ao schama SalesLT. Para que o retorno seja no modo Array precisamos realizar os seguintes passos:

1 – Clicar em cima do componente do lookup e depois clicar na aba Settings.
Obs.: Os parâmetros do dataset devem permanecer os mesmos utilizados nas etapas anteriores.
2 – No parâmetro Use query, vamos selecionar a opção Query.
3 – Vamos copiar o código mostrado abaixo para a janela de query exibida.
4 – Desmarcar a flag da opção First row only.
5 – Clicar em Preview data.
6 – O pop-up do Preview data será exibido, ele listará uma amostra dos registros existentes no dataset. Percebam que, ele exibiu uma amostra das tabelas contidas no schema SalesLT. Clicar no X para fechar o pop-up.
7 – Clicar no botão Debug.

SELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES 
  WHERE TABLE_TYPE='BASE TABLE'
  and TABLE_SCHEMA = 'SalesLT'

Ao executar o Debug, a aba Output será exibida ao lado da aba Settings. Clicar na aba Output e realizar os seguintes passos:

1 – Clicar no ícone do Output
2 – O pop-up do Output será exibido. Uma estrutura em formato JSON é exibida contendo os dados do dataset. Percebam que, primeiro ele identificou 10 itens contidos no dataset utilizado o atributo count. Além disso, existe um Array chamado value que contém 10 objetos, cada objeto possui 2 atributos sendo o nome do schema e o nome da tabela. Depois de analisarmos o retorno do Output, devemos clicar no X para fechar o pop-up.

Publicando alterações

Após conhecermos as propriedades do Lookup, vamos publicar nossas alterações.
1 – Clicamos no botão Publish All.

Uma tela lateral será exibida com os itens novos ou que foram alterados.
1 – Clicamos no botão Publish
2 – Aguardamos o processo de publicação finalizar. Uma vez que ele foi finalizado, clicar no ícone do sininho para ver se os itens foram publicados com sucesso.
3 – Clicar no botão close para fechar a janela de notificações.

Obs: O Lookup é bastante utilizando em conjunto com Activities Condicionais e de iteração como ForEach, If Condition, Until, Switch.

Utilizaremos o Lookup em exemplos práticos quando abordamos sobre estas activities condicionais e de iteração.

Atenção: Se você esta com uma conta gratuita, pay-as-you-go ou de estudante, não esquecer de apagar os recursos criados nesta postagem. Para contas de estudante e gratuita a exclusão dos recursos evita o consumo dos créditos disponíveis, além disso, evita que aconteça cobrança indevida em sua subscription (assinatura). Para a conta pay-as-you-go é cobrado do cartão de crédito conforme o uso dos serviços, então, recomendo apagar para não gerar cobrança no seu cartão de crédito.

Espero que tenham gostado desta postagem, vou fazer mais postagens técnicas sobre data factory. Aguardem que 2021 vai ter muito conteúdo legal no blog.

Desejo a todos uma boa leitura, boa prática e bons estudos.

Para quem quer estudar:

  • Curso preparatório para Certificação Microsoft MTA Database Fundamentals | BD Relacional e Linguagem T-SQL.
    • Segue o link do curso na Udemy. >> LINK <<
  • Curso Azure Databases para Iniciantes
    • Segue o link do curso na Udemy. >> LINK <<
  • Curso Azure Data Factory para Iniciantes
    • Segue o link do curso na Udemy. >> LINK <<

Não se esqueçam de avaliar esta postagem através da ESTRELAS abaixo das redes sociais, isso vai me ajudar muito a melhorar as postagens.

Quem quiser mandar comentários, sugestões, criticas e complementos, fiquem a vontade, pois feedbacks positivos ou negativos engradecem meu conhecimento para que possa melhorar as postagem para vocês.

Até a próxima o/

Acessem nossas Redes Sociais: