0

Manipulando dados com Shell Script

Caio Pellegatti
Caio Pellegatti

A mentoria contou com uma introdução realizadas por Leonardo Cestarolli - Gerente de Arquitetura de dados do Banco Carrefour e Marcos Roberto da Silva - Superintendente do Banco Carrefour, que fizeram uma breve apresentação da área de Engenharia de dados e do Bootcamp Banco Carrefour Data Engineer.


Seguindo tivemos a apresentação do instrutor Bruno Arthur Occhi Vieira - Coordernado de Desenvolvimento TI (Banco Carrefour) e Adriana Silva - Education & Talent Success Analyst da DIO como mediadora.


Bruno iniciou a apresentação com alguns comandos linux , e mostrando exemplos de Shell Scripts com awk utilizados no seu dia a dia, para extração de dados de arquivos brutos, geração e tratamentos de arquivos e rotinas de expurgo de arquivos.


Fique muito surpreso com está parte da apresentação, pois trabalhei mais de dez anos com conversão de sistemas de bibliotecas, onde fazia extração de dados de banco de dados: Oracle, Sql Server, Postgree Sql, MySQL - utilizava SQL gerando um arquivo bruto.

Posteriormente fazia tratamentos e extrações de dados, correções de dados  através de shell scripts, awk e ou dependendo o caso utilizando alguma linguagem, onde novamente eram gerados grandes arquivos da saída que eram importados para o novo sistema.


Para mim, estes conhecimento de Linux, shell script, awk já estavam perdidos. Fiquem muito surpreso ao saber que eles ainda são muito utilizado, pela sua versatilidade e rapidez de tratar arquivos pesados nesta área de Engenharia de dados. Só de ver o Bruno abrindo os scripts e mostrando os comando, veio a lembrança de vários comandos e processos que utilizava com os scripts de conversão e tratamento de arquivos em ambiente Red Hat Enterprise Linux e  CentOs Linux.


Seguindo a apresentação, ele mostrou ferramentas para automatização de scripts, movimentação dos dados, controle de fluxo de dados, enriquecimento e tratamento de dados como: Informática PowerCenter Workflow Manage, NiFi flow e  Cotrol-M Workload Automation.


Informática PowerCenter Workflow Manage, uma ferramenta onde você define um conjunto de instruções para executar tarefas como sessões, emails e comandos shell. Este conjunto de instruções é chamado de fluxo de trabalho, com um início, meio e fim de processo.

Ela permite agilizar e padronizar seus processos de negócios como workflows, veja Diagrama 1. O gerenciamento e o rastreamento de tarefas executadas ou interrompidas temporariamente devido a um problema são simplificados. Ela registra automaticamente as informações de cada atividade e fornece ferramentas para relatar informações sobre cada tarefa.

Diagrama 1 – Exemplo de fluxo do PowerCenter Workflow Manager

 

Nifi flow é uma ferramenta de streaming de fluxo, onde cada caixa que monta o fluxo funciona como um processor – veja Diagrama 2, que pode desde coletar informações de um twitter, de banco de dados, até processar shell scripts . Esta ferramenta executa processos do meio do fluxo e afeta os dados.

O Nifi é um projeto Open Source de integração de dados, que integra diversas origens com diversos tipos de destinos, usando bancos de dados, Hadoop (HDFS), Kafka, Spark, entre outros.


Diagrama 2 – Exemplo do Nifi flow

 

A ferramenta Cotrol-M Workload Automation, tem uma inteligência que permeia o mundo dos dados, mundo das aplicações e sistemas. Ela permite fazer amarrações com Java, shell scripts, Hadoop, Tivoli, Sap, PowerCenter,  entre outras. O Diagrama 3 abaixo apresenta um exemplo da ferramenta.

 

Diagrama 3 – exemplo de uma tela do Control-M workload Automation


Esta ferramenta simplifica a orquestração do fluxo de trabalho de aplicativos e dados no local ou como um serviço. Ele torna mais fácil construir, definir, agendar, gerenciar e monitorar fluxos de trabalho de produção, garantindo visibilidade, confiabilidade e melhorando SLAs.


Bruno também deixou algumas dicas de conhecimentos que permeiam o trabalho do Engenheiro de dados.

Ele aponta 5 tecnologias que precisamos conhecer :

·        Linux - shell script, awk

·        SQL

·        Hadoop

·        Linguagem Java/phyton pelo menos superficialmente

·        Deixar a 5ª ferramenta flutuante para uma tecnologia do momento que irá variar conforme elas surgem no mercado.


O profissional desta área tem que ser meio generalistas, no sentido de ter algum conhecimento básico para novas ferramentas que surgem no mercado.

Desafios do profissional desta área: ter agilidade, gerar valor para atender negócio, respeitando princípios de governança, princípios de segurança da informação e atender com agilidade as necessidade de negócio.


Conclusão

O Engenheiro de dados tem conhecimento voltado aos dados em sua forma mais pura, e é responsável por criar tarefas de extração, transformação e carga. Usando ferramentas para garantir a movimentação dos dados, a limpeza, enriquecimento e tratamento dos mesmos onde ao mesmo tempo deve ter total domínio sobre as tecnologias utilizadas para manter a qualidade e desempenho na entrega dos seus projetos. 

O scripts ajudam na manipulação dos dados e arquivos, enquanto que as ferramentas ajudam na escalabilidade, poder operacional e controle dos processos que o dados passará até o final do processo.


Dica

Alguns livros que indico para Linux, awk, shell script que me ajudaram muito.  Pergunta colocada durante a mentoria:


sed & awk: UNIX Power Tools (Nutshell Handbooks); por Arnold Robbins e Dale Dougherty | 19 out 2010


Classic Shell Scripting: Hidden Commands That Unlock the Power of Unix; por Arnold Robbins e Nelson H. F. Beebe | 30 abr 2005


The awk Programming Language ; por Alfred V Aho, Brian W Kernighan, e outros. | 10 jan 1988


Effective awk Programming: Universal Text Processing and Pattern Matching; por Arnold Robbins | 20 mar 2015


Mastering Regular Expressions: Understand Your Data and Be More Productive ; por Jeffrey E. F. Friedl | 5 mar 2012


Classic Shell Scripting: Hidden Commands That Unlock the Power of Unix ;por Arnold Robbins e Nelson H. F. Beebe | 30 abr 2005


Introducing Regular Expressions: Unraveling Regular Expressions, Step-By-Step ;por Michael Fitzgerald | 2 ago 2012


0
0

Comentários (1)

0
Dennys Travassos

Dennys Travassos

20/08/2021 11:47

Muito bom seu artigo sobra o que a live, quem não conseguiu participar, pelo seu artigo conseguem ter informação bem relevantes.


Área de Data Engineer está em constante crescimento, até pelo fato de precisar de pessoas bem qualificada, mas existe empresas dando oportunidade para iniciar na área mesmo sem experiência, eu sou um desses casos que conseguiu essa oportunidade.


Esse Bootcamp do Carrefour e agora dá Cognizant são roadmap perfeito para Data Engineer.

Sou um apaixonado por tecnologia. Orgulho de transformar os negócios com foco no melhor serviço ao cliente com projetos que ativos até hoje.

Brasil