Vivemos em uma época em que, com o avanço rápido da tecnologia de um modo geral – e especialmente da tecnologia de coleta de dados -, muito se fala sobre o uso de dados por parte dos mais diversos tipos de empresas. Todos os dias aparecem novas informações, reportagens, eventos e pesquisas sobre esse tema; às vezes, é tanta coisa que fica difícil de acompanhar. Você provavelmente já ouviu falar sobre a importância do uso de dados para o desenvolvimento do seu negócio, mas pode ser que não tenha nem ideia de como começar a utilizá-los como uma ferramenta para o sucesso da tomada de decisões e desenvolvimento de novas estratégias. Para compreender o valor da inteligência de dados, primeiro, é preciso compreender o valor que essas informações podem agregar.
Por que dados são tão importantes?
Ainda há pouco tempo, a tomada de decisões de negócios nas empresas era muito mais realizada pelo feeling, pelo achismo. Confiar no achismo pura e simplesmente, mesmo tendo um montante de informações disponíveis, faz com que as resoluções de quaisquer questões sejam realizadas de maneira ineficiente; resultando em tomadas de decisões importantes baseadas em dados imprecisos. As coisas mudaram quando concluiu-se que os dados conseguem dar respostas muito mais precisas para os problemas que a empresa pode ter com seus produtos, atendimento e estratégia, indicando possíveis rumos a serem seguidos. Se muito bem trabalhados e interpretados, os dados conseguem trazer valor para qualquer organização, independente do segmento e porte.
O trabalho de análise, qualificação e seleção dos dados extraídos pela sua empresa pode fazê-lo encontrar a informação que você precisa para solucionar um problema em seus mais diversos aspectos. Por exemplo, por meio da interação dos clientes por redes como o WhatsApp, LinkedIn, Instagram ou qualquer outro meio de comunicação, é possível aplicar técnicas de mineração de dados; melhorando assim produtos, serviços e, consequentemente, a experiência do cliente. “Por isso que os dados são tão valiosos, principalmente quando respondem perguntas de negócios”, afirmou o Roxpert, Romerito Morais, engenheiro de dados e análise.
A Cultura Data Driven
De forma sucinta, a Cultura Data Driven é quando uma empresa incorpora o uso de dados para realizar tomadas de decisões em seus negócios. Baseia-se em uma longa jornada, desde a compreensão do seu negócio, captura dos dados, sua aquisição, integração, aperfeiçoamento e análise completa por parte das mais diversas áreas da empresa. Trata-se de um extenso processo de transformação cultural de qualquer organização, para que os dados obtidos no dia a dia sejam convertidos em informações de alta relevância e utilizados estrategicamente. Dessa forma, todas as divisões da sua empresa conseguirão responder às perguntas e tomar as melhores decisões.
Porém, para que a Jornada Data Driven possa agregar os resultados esperados, é preciso compreender suas necessidades para traçar objetivos a serem atingidos e, quando falamos de empresas, inevitavelmente estamos falando de compreender pessoas, processos e tecnologia. É preciso haver um investimento massivo em cada setor para que as pessoas recebam treinamento especializado para saberem lidar com dados em seus mais diferentes aspectos. Saber identificar esses pontos de melhoria e encontrar as respostas por meio do big data analytics pode ser um grande desafio, devido ao enorme montante de informações que são produzidas diariamente por meio dos mais diversos canais. Portanto, contratar mão de obra especializada o suficiente para extrair os insights necessários é uma operação demorada e de alto custo. Em contrapartida, fazer com que uma ou mais pessoas inexperientes efetuem todo o trabalho de coleta, armazenamento e análise sem ter conhecimento a fundo de processamento de dados, controle de qualidade e business pode levar a empresa a ter prejuízos irreversíveis.
E é aí que a Rox entra!
A Rox Partner tem como propósito transformar todos os dados das empresas em ativos. Para isso, é garantida a construção de arquiteturas em nuvem ou on-premises com governança de dados, para que todo o processo de engenharia e ciência de dados sejam suportados. O processo da Jornada Data Driven da Rox é 100% realizado por especialistas em Big Datae Analytics, divididos em diversas equipes de trabalho específico, para que seus dados sejam perfeitamente transformados nas informações que seu negócio precisa. De acordo com o Roxpert Romerito Morais, o processo consiste, primeiramente, em um trabalho de investigação. “Estamos sempre falando muito de dados, mas geralmente o maior problema das empresas não é a ausência de dados. O problema é que esses dados estão todos espalhados pela empresa, sejam em planilhas eletrônicas, ERPs, CRMs, sistemas de e-commerce etc.”, explica. “Por isso, mapeamos os processos, identificamos as métricas de avaliação, quais os principais problemas que ela tem enfrentado e o que ela espera como resultado”.
Após todo o mapeamento dos negócios, é iniciado o trabalho de mapeamento das fontes de dados, conversa com pessoas chave de dentro da organização e definição de quem será o responsável pelo projeto. A equipe de engenharia de dados vai coletar os dados mapeados de todos os locais em que a empresa os consome e os mesmos serão armazenados em data lakes. Então, estes dados são submetidos a um rigoroso processo de controle de qualidade, em que são filtrados, enriquecidos, refinados e catalogados. Após esse controle, os dados são armazenados em data warehouse e separados por data marts que, por sua vez, são dados organizados pelos setores da empresa na qual vão ser usados para responder às perguntas em questão. Substancialmente, a Rox se dispõe a realizar todo o processo da jornada: aquisição e transformação dos dados até deixá-los ideais para que o cliente possa tomar decisões e encontrar as melhores soluções.
Fique por dentro das notícias por meio das nossas redes sociais:
OS Linux (ubuntu, fedora, centos, kubuntu, debian, outros)
Docker (versão 20.10.2 ou superior)
Container PostgreSQL (versão 13.1 ou superior)
Container Streamsets Data Collector (versão 3.13.0 ou superior)
Navicat (versão 15.0.0 ou superior)
Arquivos Tabulares (.csv)
🍲 Modo de Preparo: Container PostgreSQL (versão 13.1 ou superior)
Primeiramente baixe o container pelo terminal:
$ docker pull postgres
Após baixar a imagem podemos ver ela na sessão de imagens do docker:
$ docker images | grep "postgres"
Agora vamos iniciar o serviço do postgres
$ docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
Vamos usar dessa forma, mais caso você queira mudar a senha fique a vontade. para saber se o container ta operativo escreva. o comando abaixo, ele vai mostrar informações de status, portas etc..
$ docker ps -a --format "table {{.ID}}\t{{.Image}}\t{{.Names}}\t{{.Status}}\t{{.Ports}}"
Agora vamos procurar o endereço de ip desse container para fazermos a conexão via ferramenta de administração de banco de dados. porém é precisa saber o “CONTAINER_ID” ele é o identificador do container em execução. você consegue descobrir essa informação usando o comando anterior. o próximo comando vai mostrar todas as configurações do container em execução.
$ docker inspect CONTAINER_ID
A saida do comando no terminal vai exibir dados no formato .JSON contendo todos os parâmetros do container, localize no final das linhas o IPAddress ou você pode obter de forma rápida usando usando o comando.
Com o ip em mãos vamos nos conectar usando a ferramenta de administração de banco de dados chamada Navicat porém você pode usar outras ferramentas como: dbeaver, pgadmin ou qualquer outra ferramenta na qual você consiga se conectar ao PostgreSQL. então vamos aos dados da conexão com o banco de dados:
host: ip CONTAINER_ID
port: 5432
user: postgres
password: mysecretpassword
mais caso você queira entrar via linha de comando você deve matar o container em questão e usar o comando:
Dentro da de linha de comando vamos criar nosso usuário, banco de dados e garantir permissão a todos os recursos da instancia. voce pode executar a sequencia de comandos a seguir via linha de comando ou query pelo seu gerenciador favorito.
primeiro vamos criar o nosso banco de dados, vou usar o nome sdc.
CREATE DATABASE sdc;
vou definir o mesmo nome que dei ao banco de dados para o usuário.
CREATE USER sdc WITH ENCRYPTED PASSWORD '102030';
garantindo altos privilégios.
GRANT ALL PRIVILEGES on DATABASE sdc TO sdc;
criando o esquema.
CREATE SCHEMA "streamsets";
Por fim vamos criar nossa tabela, essa é uma etapa muito importante pois vamos preparar a tabela para receber os dados dos arquivos. nessa tabela vamos definir a estrutura da mesma forma como está nos arquivos, com o mesmo nomes de campos e quantidades de colunas. vamos criar todos os campos com o tipo de dados varchar, vou fazer isso para não ter problemas durante a inserção de dados via StreamSets.
bom essas são as configurações necessárias nesse container, agora vamos salvar as alterações nesse container usando o comando commit.
$ docker commit CONTAINER_ID nome:tag
Passamos o CONTAINER_ID e o nome desejado com tag, no meu caso eu coloquei como: docker commit aaeb2b4ef100 postgres-configurado:latest. lembrando que toda alteração que você fizer no container precisa ser comitada para que elas serem permanentes, caso o contrário se você matar o container ou por algum outro motivo ele cair, você perde tudo aqui que alterou dentro dele.
Prontinho agora que fizemos todas as configurações necessárias vamos ao próximo passo.
🍲 Modo de Preparo: Container Streamsets Data Collector (versão 3.13.0 ou superior)
Para essa receita vou usar a versão 3.13.0, mas fique a vontade para testar essa receita em outras versões.
Lembrando que estamos alterando um usuário existente que é o Admin, mas caso precise adicionar um usuário com o seu nome e senha podemos disponibilizar esse conhecimento em outro material aqui no blog.
Após as alterações no arquivo /etc/sdc/form-realm.properties pressione esc para sair do modo de inserção, salve os dados inseridos e saia do arquivo usando as teclas shift + : e digite wq. para sair do modo de linha de comando do container pressione a sequência de teclas ctrl + p + q cuidado para não matar o container, se aparecer assim “read escape sequence” quer dizer que você sai com segurança do container. após essas alterações no container vamos reiniciar ele para validar as alterações que fizemos.
$ docker restart CONTAINER_ID
após isso vá no navegador e digite: localhost:18630 entre com o usuário e senha: Admin
se tudo deu certo você vai cair na interface de trabalho do streamsets. clique em: CREATE NEW PIPELINE
Coloque um nome de sua preferência para o pipeline e depois clique em Save. agora vamos instalar o componente responsável pela conexão com o PostgreSQL, clique onde a seleção está na cor vermelha.
após isso vai aparecer uma lista de componentes procure por jdbc na caixa de pesquisa.
1.selecione o checkbox
2.instalação
após clicar em instalar vai aparecer outra opção:
Clique em Restart Data Collector vai demorar uns 5 segundos e após isso vai aparecer a tela de login, faça o login novamente.
E por último vamos criar uma pasta no diretório /opt chamada /opt/data/input é aqui que nossos arquivos vão residir. vamos mais uma vez entrar via linha de comando no container., vamos usar nesse comando a flag –user root ele é necessário para criarmos a pasta no diretório do linux.
O diretório input vai ser usando para montarmos um volume externo nele com os arquivos (.csv)
após isso vamos sair do modo de linha de comando pressionando as teclas ctrl + p + q cuidado para não matar o container, se aparecer assim “read escape sequence” quer dizer que você sai com segurança do container.
vamos gravar as mudanças nesse container usando o comando commit
$ docker commit CONTAINER_ID nome:tag
Após isso vamos matar o container e remover ele da lista de execução
essa ação foi necessário para podermos criar um novo container. usando a flag -v montamos a pasta externa: /home/romerito/Documents/data na pasta do container /opt/data/input lembrando que voce precisa usar a imagem do container comitada anteriormente, lembre que foi nela que fizemos as alterações.
Vamos saber se a montagem das pastas funcionou, repare que na minha pasta externa tenho 2 arquivos.
agora conecte no container via linha de comando e digite: ls -lha /opt/data/input e verás que esses mesmos arquivos vão aparecer no diretório.
Fazendo a Ingestão dos arquivos
Abra o pipeline que você criou anteriormente e vamos começar, para essa receita vamos trabalhar com o conjunto de dados https://www.kaggle.com/savitanair/cardata é uma lista de nomes de carros, km rodado, ano etc… a estrutura desses arquivos são similares a nossa tabela criada no PostgreSQL. esses arquivos já se encontram na nossa pasta /home/romerito/Documents/data. então vamos lá.
do lado direito do botão Start tem um ícone, clique nele e vai aparecer uma dock com vários componentes, acima no combobox ta selecionado origins mude para All Stages e procure pelo componente Directory digitando na caixa de pesquisa, ao encontrar segure e arraste para o espaço a esquerda
Com esse componente vamos ler os nossos arquivos (.csv) do diretório /opt/data/input muita atenção nessa hora, a seguir vai ter várias imagens com configurações e uma breve explicação de ambas.
Directory: [General] aqui definimos o nome do componente:
Directory: [Files] aqui definimos o diretório dos arquivos, a ordem de leitura e a extensão dos arquivos.
Directory: [Data Format] aqui definimos o tipo de arquivo se é: JSON,TEXT, Excell etc.. No nosso caso selecionamos DELIMITED, definimos também que a configuração vai ignorar as linhas vazias dos arquivos e que eles têm cabeçalho.
É importante lembrar que exibimos apenas as configurações necessárias para essa receita, ao arrastar um novo componente não esquece de conectá-los. você faz isso clicando na bolinha branco do componente e arrastando-a até a bolinha do outro componente, sem essa ligação o fluxo não vai funcionar.
adicione outro componente chamado: Expression Evaluator
vamos usá-lo para criar o campo chamado: /Processing_Date que vai ter como finalidade armazenar a hora em que o arquivo foi processado escreva no componente da mesma forma como está na imagem.
adicione o componente: Field Type Converter vamos usar ele para converter o campo /Processing_Date de Datetime para String.
adicione outro componente chamado: Expression Evaluator vamos usár-lo para modificar os dados do campo /Processing_Date vamos criar um campo provisório chamado /data e atribuir a ele a data/hora/minuto/segundo advindos do campo /Processing_Date e depois atribuir os dados do campo /data já modificados para o campo original /Processing_Date.
adicione o componente: Field Remover vamos usár-lo para remover o campo provisório /data
adicione o componente: Field Order vamos usár-lo para deixar os dados na ordem desejada. para adicionar os campos basta você clicar no campo que ele vai mostrar uma lista de campos. você vai clicando e deixando na ordem desejada.
adicione o componente: JDBC Producer vamos usár-lo para pegar os dados tratados e inserir na tabela cardata que criamos anteriormente no PostgreSQL.
JDBC Producer: [JDBC] aqui definimos a String de conexão, onde passamos o IP do nosso container, porta e banco de dados. definimos também o nome do esquema que criamos e o nome da tabela
JDBC Producer: [Credentials] aqui adicionamos o usuário e senha do banco de dados
Se seu pipeline estiver assim:
Você fez tudo certinho, perceba que todas as caixinhas estão conectadas isso é necessário pois cada componente desse é responsável por uma etapa do processo de adequação quando o dado passa por ele. agora vamos debugar o nosso pipeline para ver se as regras aplicadas estão corretas. clique em Preview
ao clicar vai aparecer outra janela, deixa as opções como na janela e click em Run Preview
Vai demorar uns 5 segundos e vai aparecer essa tela.
perceba que o primeiro componente está em azul e abaixo exibe os dados desse componente, a medida que você vai clicando na setinha selecionada em vermelho os dados vão sendo exibidos de acordo com o componente, repare agora que avançamos para o estágio de ordenação dos dados, os dados abaixo à esquerda ficam em vermelho indicando como os dados eram antes, e verde como estão agora passando pelo componente.
Caso apareça algum erro vai aparecer um ícone em vermelho no componente indicando o número de erros. aparentemente está tudo correto, para sair do modo de debug clique onde está selecionado em vermelho.
Antes de iniciarmos o pipeline para que ele faça o processo completo, vamos adicionar alguns componentes para que quando ele terminar de carregar os dados ele finalize o pipeline, sem essa configuração ele vai ficar rodando para sempre. antes de arrastar os componentes marque a opção Produce Events do componente Directory
adicione o componente: Stream Selector clique e arraste da bolinha (E) do componente Directory até a bolinha do Stream Selector com ele vamos definir algumas regras:
Clicamos no + da caixinha do lado direito e adicionamos uma condição, quando não houver mais dados para processar ele vai fazer uma ligação a outro componente, para isso procure pelo componente Pipeline Finisher Executor e arraste ele para a área de desenvolvimento e agora clique em cima de (1) do componente Stream Selector e arraste até a bolinha do componente Pipeline Finisher Executor adicione também um componente chamado Trash, click em cima do número (2) do componente Stream Selector e arraste até a bolinha do componente Trash, pronto finalizamos assim a configuração e deve ficar assim:
Agora sim vamos executar o nosso pipeline, procure pelo botão Start e clique nele. após isso vai aparecer essa janela.
Perceba nos gráficos que temos o numero 303 esse é o número registros carregados pelo componente Discovery, e temos 303 registros processados e inseridos a tabela cardata do PostgreSQL. assim que todos os dados forem processados o pipeline vai parar a execução. os arquivos processados não serão mais processados da próxima vez pois o streamsets guarda os metadados dos arquivos processados e só processa linhas de arquivos adicionados no diretório.
Agora vamos olhar nossa tabela pela Navicat e ver se os dados foram inseridos.
Prontinho! temos todos os dados inseridos de todos os arquivos do nosso diretório e toda vez que iniciarmos o pipeline ele vai inserir os dados nessa mesma tabela e com a data que os dados foram processados.
Espero que tenham gostado, o Streamsets é uma excelente ferramenta de Ingestão de dados. esse foi apenas um exemplo de como fazer ingestão de arquivos (.csv) mais é possível adaptar esse modelo para a leitura de arquivos TXT ,JSON, Excell etc.. Caso queiram saber mais sobre o Streamsets da uma olhada aqui https://streamsets.com/
Usamos cookies em nosso site para oferecer uma experiência mais relevante, lembrando suas preferências e visitas repetidas. Ao clicar em “Aceitar Tudo”, você concorda com o uso de TODOS os cookies. No entanto, você pode acessar as "Configurações de Cookies" para fornecer um consentimento controlado. Para mais detalhes acesse nossa Política de Privacidade.
Este site usa cookies para melhorar sua experiência de navegação. Destes, os cookies categorizados como Necessários são armazenados no seu navegador, pois são essenciais para o funcionamento de funções básicas do site. Também usamos cookies de terceiros que nos ajudam a analisar e entender como você usa este site e esses cookies serão armazenados no seu navegador apenas com o seu consentimento. Você também tem a opção de desativar esses cookies, mas a desativação de alguns deles pode afetar sua experiência de navegação.
Os cookies necessários são absolutamente essenciais para o bom funcionamento do site. Esses cookies garantem funcionalidades básicas e recursos de segurança do site, anonimamente.
Cookie
Duração
Descrição
_GRECAPTCHA
5 meses e 27 dias
Este cookie é definido pelo serviço de recaptcha do Google para identificar bots para proteger o site contra ataques de spam maliciosos.
cookielawinfo-checkbox-advertisement
1 ano
Este cookie é usado para registrar o consentimento do usuário para os cookies na categoria "Anúncio", caso existam.
cookielawinfo-checkbox-analytics
11 meses
Este cookie é usado para armazenar o consentimento do usuário para os cookies na categoria "Analytics", caso existam.
cookielawinfo-checkbox-functional
11 meses
Este cookie é usado para armazenar o consentimento do usuário para os cookies na categoria "Funcionais", caso existam.
cookielawinfo-checkbox-necessary
11 meses
Este cookie é usado para armazenar o consentimento do usuário para os cookies na categoria "Necessário", caso existam.
cookielawinfo-checkbox-others
11 meses
Este cookie é usado para armazenar o consentimento do usuário para os cookies na categoria "Outros", caso existam.
cookielawinfo-checkbox-performance
11 meses
Este cookie é usado para armazenar o consentimento do usuário para os cookies na categoria "Performance", caso existam.
viewed_cookie_policy
11 meses
O cookie é usado para armazenar se o usuário consentiu ou não o uso de cookies. Ele não armazena nenhum dado pessoal.
Os cookies analíticos são usados para entender como os visitantes interagem com o site. Esses cookies ajudam a fornecer informações sobre métricas de número de visitantes, taxa de rejeição, origem de tráfego, etc.
Cookie
Duração
Descrição
_ga
2 anos
O cookie _ga, instalado pelo Google Analytics, armazena informações anonimamente e atribui um número gerado aleatoriamente para reconhecer visitantes únicos.
_ga_4RLBM0693H
2 anos
Este cookie é instalado pelo Google Analytics.
_gat_gtag_UA_172713136_1
1 minuto
Definido pelo Google para distinguir usuários.
_gid
1 dia
Instalado pelo Google Analytics, o cookie _gid armazena informações sobre como os visitantes usam um site, além de criar um relatório de análise de desempenho. Alguns dos dados coletados incluem o número de visitantes, sua fonte e as páginas que eles visitam anonimamente.
_rdtrk
9 anos 10 meses 14 dias 11 horas e 3 minutos
Utilizado pelo RD Station para manter uma lista de todas as páginas que um visitante acessou dentro do domínio.
CONSENTIMENTO
2 anos
O YouTube define esse cookie por meio de vídeos do youtube incorporados e registra dados estatísticos anônimos.
rdtrk
1 ano
Utilizado pelo RD Station para manter uma lista de todas as páginas que um visitante acessou dentro do domínio.
UID
2 anos
A Scorecard Research define esse cookie para pesquisa de comportamento do navegador.
Os cookies de publicidade são usados para fornecer aos visitantes anúncios e campanhas de marketing relevantes. Esses cookies coletam informações para fornecer anúncios personalizados.
Cookie
Duração
Descrição
VISITOR_INFO1_LIVE
5 meses e 27 dias
Um cookie definido pelo YouTube para medir a largura de banda que determina se o usuário obtém a interface do player nova ou antiga.
YSC
sessão
O cookie YSC é definido pelo Youtube e é usado para rastrear as visualizações de vídeos incorporados nas páginas do Youtube.
yt-remote-connected-devices
não expira
O YouTube define esse cookie para armazenar as preferências de vídeo do usuário usando o vídeo incorporado do YouTube.
yt-remote-device-id
não expira
O YouTube define esse cookie para armazenar as preferências de vídeo do usuário usando o vídeo incorporado do YouTube.