StreamSets Data Collector
Definição
O StreamSets Data Collector é uma infraestrutura de ingestão contínua de big data de nível empresarial, de código aberto. Ele possui uma interface de usuário avançada e fácil de usar que permite que cientistas de dados, desenvolvedores e equipes de infraestrutura de dados criem facilmente pipelines de dados em uma pequena fração do tempo.
Pronto para usar, o StreamSets Data Collector lê e grava em um grande número de terminais, incluindo S3, JDBC, Hadoop, Kafka, Cassandra e muitos outros. Você pode usar Python, Javascript e Java Expression Language, além de um grande número de estágios pré-construídos para transformar e processar os dados em tempo real. Para tolerância a falhas e escalabilidade horizontal, você pode configurar pipelines de dados no modo cluster e executar monitoramento de baixa granularidade em cada estágio do pipeline.
Prova de conceito
O objetivo deste tutorial é reunir arquivos de log do Apache e enviá-los ao Elasticsearch. Ao longo do caminho, vamos transformar os dados e configurar alertas e regras de dados para nos informar se algum dado inválido for encontrado. E, finalmente, aprenderemos como adaptar o pipeline quando os dados mudam repentinamente. O Data Collector pode ler e gravar em um grande número de origens e destinos, mas, para este tutorial, limitaremos nosso escopo a uma origem de diretório e destino de Elasticsearch.
Tutorial: https://github.com/streamsets/tutorials/blob/master/tutorial-1/readme.md
O objetivo deste tutorial é ler arquivos Avro de um diretório do sistema de arquivos e gravá-los em um tópico Kafka usando o StreamSets Kafka Producer. Em seguida, usaremos um segundo pipeline configurado com um consumidor Kafka para drenar esse tópico, realizar um conjunto de transformações e enviar os dados para dois destinos diferentes.
Tutorial: https://github.com/streamsets/tutorials/blob/master/tutorial-2/readme.md
Linguagens suportadas
Jython: Trata-se de uma implementação da linguagem Python que gera bytecode para máquinas Java. Com ela é possível fazer o desenvolvimento de aplicações híbridas que unem código em Java e Python.
Groovy: Groovy é uma linguagem de programação orientada a objetos desenvolvida para a plataforma Java como alternativa à linguagem de programação Java. Groovy possui características de Python, Ruby e Smalltalk.
JavaScript: JavaScript é uma linguagem de programação interpretada estruturada, de script em alto nível com tipagem dinâmica fraca e multiparadigma. Juntamente com HTML e CSS, o JavaScript é uma das três principais tecnologias da World Wide Web.
Clouds suportados
Amazon Web Service: Amazon S3 e Amazon SQS.
Azure: Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Azure IoT/Event Hub Consumer, Azure Data Lake Storage (Legacy) (Deprecated), Azure Event Hub Producer, Azure IoT Hub Producer e Azure Synapse SQL.
Google Cloud Platform: Google BigQuery, Google Cloud Storage, Google Pub/Sub Subscriber, Google Pub/Sub Publisher e Google Bigtable.
PoC (Proof of Concept)
Pode-se concluir nessa POC, que a ferramenta trabalha muito bem com diretórios/arquivos, sempre verificando se o arquivo já foi processador (por nome e conteúdo), após processar o arquivo pode ser movido pela ferramenta para um pasta designada. Usamos como destino varias frentes, como gravação de JSON em diretório, MongoDB, Kafka e PostgreSQL.
- O cenário abaixo permitiu concluir que o StreamSets é promissor ao lidar com serviços Rest e Soap, no exemplo foram criados dois pipelines, onde o primeiro consumimos uma API SOAP dos correios, disponibilizamos em um tópico Kafka e no segundo consumimos esse tópico persistindo em MongoDB.
- Por ultimo, realizou-se um teste mais realista, através de dois pipelines, o primeiro com uma prescrição medica em formato JSON, sendo enviada a um tópico Kafka, e na outra ponta foi consumido esse tópico através do Kafka e realizado um POST via Restfull para o Gliese, a persistência dos dados foram realizadas com sucesso.







Comentários
Postar um comentário