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 custos: o Cloud Storage oferece várias classes de armazenamento a diversos preços para atender a diferentes padrões de acesso e necessidades de disponibilidade, além de oferecer a flexibilidade de equilibrar o custo e a frequência do acesso aos dados. É possível acessar dados dessas várias classes de armazenamento usando uma API consistente sem sacrificar o desempenho. Por exemplo, arquive dados usados com pouca frequência no Cloud Storage Nearline ou no Cloud Storage Coldline usando uma política de ciclo de vida e acessá-los posteriormente, talvez para reunir dados de treinamento para machine learning com latência de subsegundos.

Processamento flexível: o Cloud Storage oferece integração nativa com vários serviços GCP avançados, como BigQuery, Cloud Dataproc (ecossistema Hadoop), Cloud Dataflow para análise sem servidor, Cloud Video Intelligence e Cloud AutoML Vision e AI Platform, oferecendo flexibilidade para escolher a ferramenta certa para analisar seus dados.

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 únicas ou iniciadas manualmente, use a gsutil, que é uma ferramenta de linha de comando de código aberto disponível para Windows, Linux e Mac. Ela é compatível com transferências de várias linhas de execução, transferências processadas, uploads compostos paralelos, novas tentativas e capacidade de recuperação.

Transfer Appliance: dependendo da largura de banda da sua rede, se você quiser migrar grandes volumes de dados para a nuvem para análise, execute a migração off-line usando o Transfer Appliance para reduzir o consumo de tempo.

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 carregar 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.

Usando produtos Hadoop para análise 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. O AI Platform facilita o aperfeiçoamento de modelos e, em seguida, usa-os para realizar predições em lote e on-line.

Como orquestrar dados para machine learning

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 machine learning pré-treinados

A seguir

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

Enviar comentários sobre…