Na conferência QCon San Francisco 2014, Lin Qiao do LinkedIn fez uma apresentação sobre o projeto Gobblin (também resumida em um blog post) que é um sistema para consumo unificado de dados (data ingestion) provenientes de fontes internas e externas. Processando mais de 100 terabytes de novos dados por dia, o Gobblin tem de lidar com muitos dos desafios técnicos e semânticos que as empresas encontram quando implementam grandes projetos de Big Data.
O Gobblin é construído em torno do Hadoop como central de armazenamento e plataforma de análise (por meio do sistema de arquivos distribuído do Hadoop - HDFS), e serve a análise de negócios, engenharia além de usuários buscando produtos de dados e insights.
De acordo com Qiao, o LinkedIn já possui atualmente um sistema complexo em funcionamento, que vêm crescendo ao longo dos anos e armazenando todo tipo de dados no Hadoop. Por exemplo, dados de streaming do usuário como os eventos de atividade do site são consumidos via Apache Kafka e então armazenados no Hadoop usando o Camus, um adaptador para persistir streams do Kafka no HDFS. Alterações nos dados de perfil dos usuários são tratados pelo Databus, outro projeto Open Source do LinkedIn.
Os dados externos vieram de diversas plataformas como Salesforce, Google, Facebook e Twitter. Embora o conjunto de dados seja reduzido, ele apresenta diferentes desafios pois as mudanças em seu formato foram mais frequentes, a disponibilidade e qualidade dos dados eram mais frágeis e fora de controle do LinkedIn.
No sistema existente, havia muita duplicação entre soluções diferentes, pois problemas como filtros de registros, conversão ou controle de qualidade aprimorado foram resolvidos de forma independente. Um dos principais objetivos do Gobblin era unificar o fluxo de trabalho para facilitar a integração de novas fontes de dados.
Além de fornecer adaptadores para todas as fontes de dados existentes, a parte fundamental do Gobblin é o pipeline de processamento unificado. O Gobblin usa um modelo de framework onde cada registro passa pelos quatro estágios de extração, conversão, verificação de qualidade e escrita. Na conversão, uma sequência de operações pode ser aplicada, incluindo filtro, projeção (extração de apenas uma parte da informação disponível), conversão de tipo ou alterações de estrutura. Qiao aponta que a verificação de qualidade é muito importante para garantir que qualquer dado produzido no Gobblin seja confiável, em particular os de fontes externas. Esta abordagem permite aos desenvolvedores focar apenas na lógica de processamento por registro e os alivia de ter que tratar problemas como o agendamento de tarefas, tratamento de streams ou lotes de dados, escalabilidade ou tolerância a falhas.
Em termos de desenvolvimento futuro, o Gobblin foi planejado para executar no YARN, o framework de gerenciamento e execução do Hadoop que permite que muitas aplicações diferentes executem em paralelo em um cluster Hadoop. O suporte para streams de fontes de dados será aprimorado. Uma DSL de consumo de dados foi planejada para facilitar a integração de novas fontes de dados, especialmente para usuários de negócio. Finalmente, planeja-se abrir o código fonte do Gobblin em breve.
No passado, o LinkedIn contribuiu para alguns projetos open source. Exemplos já mencionados incluem os projetos Apache Kafka e Databus, além do White Elephant, um sistema de agregação e visualização de logs. O Apache DataFu é outro projeto que contém funções definidas pelo usuário como estatísticas, estimativas e amostras para utilização no Apache Pig. O DataFu entrou em estágio de incubação na Apache Software Foundation em fevereiro de 2014.