Criar um Data Lake

Neste artigo, aprenda como criar um data lake no Google Cloud Platform (GCP). Com um data lake, as organizações têm a flexibilidade de coletar todos os aspectos de suas operações empresariais em formato de dados. Ao longo do tempo, esses dados se acumulam em petabytes ou mesmo exabytes, mas com a separação de armazenamento e computação, nunca foi tão econômico armazenar todos esses dados.

Depois de coletar e armazenar os dados, é possível aplicar várias técnicas de processamento para extrair insights deles. O armazenamento de dados tem sido a abordagem padrão para fazer análises de negócios. No entanto, essa abordagem exige esquemas razoavelmente rígidos para tipos de dados bem compreendidos, como pedidos, informações sobre pedidos e inventário. As análises criadas unicamente sobre armazenamento de dados tradicional dificultam o tratamento dos dados que não estejam em conformidade com um esquema bem definido, porque esses dados geralmente são descartados e perdidos para sempre.

Migrar da abordagem de armazenamento de dados para "armazenamento integral" de um data lake é útil somente se for possível continuar extraindo insights dos dados. Os cientistas, engenheiros e analistas de dados geralmente querem usar as ferramentas analíticas de sua preferência para processar e analisar dados no data lake. Além disso, o data lake precisa ser compatível com a ingestão de grandes quantidades de dados de várias fontes.

Veja como criar um data lake no GCP. O diagrama a seguir inclui os principais estágios em uma solução de data lake.

Os principais cenários em uma solução de data lake.

Neste artigo, conheça em detalhes os estágios e descubra como o GCP pode ajudar.

Armazenamento: Cloud Storage como o data lake

O Cloud Storage é adequado para servir como repositório central de armazenamento, por vários motivos.

Desempenho e durabilidade: com o Cloud Storage, é possível começar com alguns arquivos pequenos e aumentar o tamanho do data lake até alcançar os exabytes. O Cloud Storage é compatível com a ingestão de altos volumes de novos dados e o consumo de altos volumes de dados armazenados em combinação com outros serviços, como o Cloud Pub/Sub. Embora o desempenho seja um elemento crítico de um data lake, a durabilidade é ainda mais importante. O Cloud Storage foi projetado para uma durabilidade anual de 99,999999999%.

Consistência forte: uma característica fundamental que diferencia o Cloud Storage de muitos outros armazenamentos de objetos é a compatibilidade com a consistência forte em cenários como operações de leitura após gravação, listagem de intervalos e objetos e concessão de acesso a recursos. Sem essa consistência, é preciso implementar soluções complexas e demoradas para encontrar uma maneira de determinar a disponibilidade dos dados para processamento.

Eficiência de custo: no Cloud Storage há muitas classes de armazenamento com vários preços, para atender diferentes padrões de acesso e necessidades de disponibilidade, além da flexibilidade para equilibrar custos e frequências de acesso aos dados. É possível acessar os dados das diversas classes de armazenamento por meio de uma API consistente, sem sacrificar o desempenho. Por exemplo, é possível arquivar dados usados com pouca frequência no Cloud Storage Nearline ou Cloud Storage Coldline usando uma política de ciclo de vida e acessá-los posteriormente para, por exemplo, reunir dados de treinamento de aprendizado de máquina com latência de subsegundos.

Processamento flexível: o Cloud Storage tem integração nativa com vários serviços avançados do GCP, como BigQuery, Cloud Dataproc (ecossistema Hadoop), Cloud Dataflow para análises sem servidor, a API Cloud Video Intelligence, API Cloud Vision e Cloud Machine Learning Engine. Dessa forma, você tem flexibilidade para escolher a ferramenta de análise de dados certa.

Repositório central: com um local central para armazenamento e acesso de dados entre equipes e departamentos, você tem a ajuda do Cloud Storage para evitar silos de dados que precisem ser mantidos sincronizados.

Segurança: como os data lakes são projetados para armazenar todos os tipos de dados, as empresas esperam contar com recursos de controle de acesso fortes para garantir que os dados não caiam em mãos erradas. O Cloud Storage tem vários mecanismos para implementar controles de acesso refinados sobre seus ativos de dados.

Ingestão de dados

Uma arquitetura de data lake precisa ser compatível com ingestões de volumes variáveis de dados de diferentes fontes, como sensores de Internet das Coisas (IoT na sigla em inglês), atividade de stream de cliques em sites, dados de processamento de transações on-line (OLTP na sigla em inglês) e dados locais, entre outros. Nesta seção, veja como o GCP é compatível com uma ampla variedade de casos de uso de ingestão.

Cloud Pub/Sub e Cloud Dataflow: é possível fazer a ingestão e armazenar dados em tempo real diretamente no Cloud Storage, escalonando a importação e exportação em resposta ao volume de dados.

Serviço de transferência de armazenamento: a movimentação de grandes quantidades de dados costuma ser mais complexa que a emissão de um único comando. Você tem de lidar com desafios como o agendamento de transferências periódicas de dados, a sincronização de arquivos entre a fonte e o coletor ou a movimentação seletiva de arquivos com base em filtros. O Storage Transfer Service inclui um mecanismo robusto para realizar essas tarefas.

gsutil: para transferências de uma única vez ou iniciadas manualmente, é possível considerar o uso do gsutil, uma ferramenta de linha de comando de software livre, disponível para Windows, Linux e Mac. È compatível com transferências multithread, transferências processadas, uploads compostos em paralelo, novas tentativas e capacidade de recuperação.

Transfer Appliance: dependendo da largura de banda da rede, se for necessário migrar para a nuvem grandes volumes de dados a serem analisados, pode ser mais rápido executar a migração offline usando o Transfer Appliance.

Veja uma visão geral detalhada das opções de ingestão e os principais critérios de tomada de decisão envolvidos na escolha de uma opção de ingestão.

Processamento e análises

Depois de ter ingerido e armazenado os dados, o próximo passo é disponibilizá-los para análise. Em alguns casos, é possível armazenar dados em um esquema bem compreendido imediatamente após a ingestão, o que simplifica a consulta no local. Por exemplo, se você armazenar dados de entrada no formato Avro no Cloud Storage, será possível fazer o seguinte:

  • Use o Hive on Cloud Dataproc para fazer consultas SQL nos dados.
  • Realize consultas diretamente nos dados do BigQuery.
  • Carregue os dados no BigQuery e, em seguida, realize a consulta.

No entanto, nem sempre é possível modelar dados em um esquema conhecido depois de ingeridos e armazenados. Na verdade, o principal motivo para trabalhar com data lakes em vez de armazenamento de dados é que a consulta de todos os dados esteja disponível posteriormente para ajudar nos seus insights. Dependendo da natureza dos dados brutos e dos tipos de análise envolvidos, o fluxo de trabalho pode variar de simples a complexo. O diagrama a seguir fornece uma visão geral.

Visão geral do fluxo de trabalho do data lake

Extrair e explorar dados

Como uma grande parte dos dados armazenados no data lake não está pronta para consumo imediato, talvez seja necessário primeiro extrair o valor latente desses dados. O Jupyter Notebook é uma das ferramentas favoritas para explorar dados brutos e, para essa finalidade, o GCP oferece o Cloud Datalab, um serviço totalmente gerenciado do Jupyter Notebook.

O Cloud Datalab vem pré-instalado com uma ampla variedade das bibliotecas de ciência de dados mais usadas, como o TensorFlow e o NumPy. Além de usar o Cloud Datalab, você tem acesso ao tradicional ecossistema de ferramentas do Hadoop no Cloud Dataproc e às análises totalmente sem servidor com o Cloud Dataflow. Para uma análise poderosa, baseada em SQL, os dados brutos podem ser transformados com o Cloud Dataprep da Trifacta e carregados no BigQuery.

Quando você entender o potencial de análise de um subconjunto de dados brutos no lake, poderá disponibilizar esse subconjunto para um público mais amplo.

Desenvolver e implantar fluxos de trabalho

Disponibilizar um subconjunto de dados para um público mais amplo significa criar data marts direcionados, como mostrado no diagrama anterior. Para manter esses data marts atualizados, use os pipelines de dados orquestrados que transformam os dados brutos em dados que os processos de downstream e os usuários podem consumir. Esses pipelines variam conforme a natureza dos dados e os tipos de análise usados. Aqui estão alguns fluxos de trabalho de análises comuns e as instruções de como fazer as implementações no GCP.

Transformação de dados brutos e carregamento no BigQuery

No fluxo de trabalho simples e muito comum ilustrado no diagrama a seguir, é utilizado um processo de extração, transformação e carregamento de dados (ETL) para ingestão de dados em um armazenamento de dados do BigQuery. Depois, é possível consultar os dados usando o SQL. O Cloud Dataprep, uma ferramenta visual para limpeza e preparação de dados, é bem adequado para tarefas simples de ETL, enquanto o Cloud Dataflow com Apache Beam tem flexibilidade extra para tarefas ETL mais complexas.

Fluxo de trabalho para carregamento de dados no BigQuery

Análise de lote

Para usar o ecossistema Hadoop de produtos para análise em lote, armazene os dados transformados em um local separado do Cloud Storage. Em seguida, é possível usar o Cloud Dataproc para executar consultas nesses dados usando o Spark, o Spark SQL, o SQL no Hive ou ferramentas semelhantes. Apache Avro, Apache Parquet e Apache ORC são formatos muito usados para esses dados refinados. O diagrama a seguir resume esse fluxo de trabalho.

Como usar produtos Hadoop para análises em lote

Análise em tempo real

Para um canal simples e baseado em SQL, o processamento de stream no BigQuery oferece a capacidade de consultar dados à medida que são ingeridos. A utilização do Cloud Pub/Sub e do Cloud Dataflow com o Beam proporciona recursos de processamento de fluxo mais complexos para que os usuários possam, por exemplo, realizar agregações, gestão de janelas e filtros antes de armazenar dados no BigQuery. Para análises de séries temporais, é possível armazenar dados ingeridos no Cloud Bigtable para facilitar análises rápidas. O diagrama a seguir ilustra esse fluxo de trabalho.

Como armazenar dados no Cloud Bigtable para análise em tempo real

Machine learning

O machine learning pode se beneficiar imensamente da grande quantidade de dados em um data lake. Depois que você identificar os dados úteis de treinamento, os passos de preparação de dados associados e a arquitetura de rede do machine learning, poderá orquestrar esses passos, conforme mostrado no diagrama a seguir. Com o Cloud Machine Learning Engine, é mais fácil aprimorar e usar os modelos de predições em lote e on-line.

Orquestração de dados para aprendizado de máquina

Nem todos os casos de uso de machine learning exigem o projeto e o treinamento de modelos personalizados. O GCP inclui modelos pré-treinados de fala, visão, video intelligence e processamento de linguagem natural. Para esses casos, as entradas de áudio, imagens ou vídeo são migradas para o respectivo serviço GCP. Em seguida, metadados valiosos são extraídos e armazenados em um serviço como o BigQuery para consultas e análises complementares. Veja esse fluxo no diagrama a seguir.

Como usar modelos de aprendizado de máquina pré-treinados

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…