Fala meus amigos, espero que todos estejam bem.
Todos sabemos do avanço considerável do ambiente cloud no mundo dos dados. Com o passar dos anos o ambiente cloud veio se popularizando cada vez mais pela facilidade da escalabilidade, segurança entre outros benefícios. Mas existe um contraponto nessa ascenção, o custo.
Atualmente projetos que possuem um Budget menor, acabam sofrendo com o alto custo de algumas plataformas cloud, e por mais que esse custo vem diminuindo ano após ano, ele ainda é considerado grande para algumas empresas. Dessa forma cabe a nós engenheiros de dados procurarmos soluções, para viabilizar aos nossos clientes a experiencia de ter um projeto com armazenamento de dados em cloud, com um custo menor mantendo sempre a segurança e confiabilidade dos dados.
Seguindo essa proposta de desenvolvimento, venho apresentar uma solução de ingestão de dados em batch com Pentaho Data Integration, que é uma ferramenta on premisse e open source, ingerindo dados na plataforma no Google Cloud. Nos próximos passos mostrarei como configurar ambas as ferramentas.
Passo 1 : Criar uma conta no Google Cloud Plataforma Acessar o link https://cloud.google.com/ e criar um usuário e senha, lembrando que a Google te oferece de maneira gratuita $300,00 para ser utilizado como armazenamento do seu processo durante 90 dias, lembrando que quando esses créditos acabarem, o valor de armazenamento utilizado será cobrado.
Passo 2 : Configurando o IAM e Administrator e gerando Chave de acesso
Nesse passo é necessário dar as permissões necessárias de acesso, então criaremos um “Novo projeto”, onde tudo que for feito será associado a esse projeto, e após isso criar uma “Conta de serviço”, essa criação é simples, onde você insere um nome que deseja, que já estará vinculada ao seu novo projeto, depois escolha o tipo de papel desejado, onde recomendo para teste utilizar o tipo “Proprietário”.
Após ser criado a conta de serviço, temos um ponto importante, que é a criação da Chave Json, essa chave é a comunicação do Pentaho com o GCP, é através dela que é feita a leitura dos dados. Sendo assim vamos seguir os seguintes passos, ir em “Gerenciar Chaves”, depois “Adicionar Chave”, escolher o tipo “JSON” e pronto a chave está criada.
Passo 3 – Configurando o Google Cloud Storage
No nosso exemplo, iremos utilizar o Cloud Storage, pois o nosso foco é a diminuição dos custos de armazenamento em cloud. Sendo assim criaremos um “Bucket” e a região que escolhemos foi a “Us – Região dos Estados Unidos com o Tipo Local: Multi-region”. Após essa configuração, podemos criar as pastas para o armazenamento, criaremos o uma única pasta com o nome de “data_lake”, nela armazenaremos os dados de ingestão da camada Raw, que também é conhecida como camada bronze.
Passo 4 – Conectando o Pentaho ao Google Cloud Para essa etapa iremos criar uma variável de ambiente no próprio Windows, o nome da variável deve ser GOOGLE_APPLICATION_CREDENTIALS e o valor da variável será o caminho onde a Chave Json que cadastramos no passo 2, estará salva.
Após criarmos a variável, iniciaremos o “Pentaho Data Integration” e escolheremos o Input dos dados, isso é, a origem dos dados que será um “Table Input” e em seguida utilizaremos o output dos dados que será o “Text File Ouput”, já que iremos gravar os arquivos CSV no nosso “Storage”. Selecionaremos uma tabela do banco de dados que queremos como origem no “Table Input”, e no “Text File Ouput” iremos configurar como destino o Google Cloud e a pasta “data_lake” que configuramos no “Bucket do Storage”, um ponto importante é após selecionarmos Google cloud Storage devemos inserir manualmente o nome do Bucket (etapa 5 da imagem abaixo).
Após fazermos essa configuração, o nosso processo de ingestão esta configurado. É só startar o pipeline e pronto a tabela do nosso banco de dados de origem estará inserida como um arquivo CSV no Cloud Storage da Google, na nossa camada de ingestão Raw/Bronze.
Espero que com esse artigo possa ajudar muitos outros engenheiros de dados a “Baratear”, alguns projetos de Google Cloud.
Abraço.
Jhonatan Benevenuto Engenheiro de Dados