![Como construir um aplicativo de bate-papo LLM baseado em RAG com ChromaDB e Python](https://optimuscloud.com.br/wp-content/uploads/2024/03/1711745044_Como-construir-um-aplicativo-de-bate-papo-LLM-baseado-em-RAG-150x150.jpg)
Como construir um aplicativo de bate-papo LLM baseado em RAG com ChromaDB e Python
29 de março de 2024![Desbloqueie a hiperpersonalização com aplicativos adaptativos baseados em IA](https://optimuscloud.com.br/wp-content/uploads/2024/03/1711760405_Desbloqueie-a-hiperpersonalizacao-com-aplicativos-adaptativos-baseados-em-IA-150x150.jpg)
Desbloqueie a hiperpersonalização com aplicativos adaptativos baseados em IA
29 de março de 2024A transformação de um fluxo de dados geralmente requer um consumidor externo, como um processador de fluxo ou um microsserviço orientado a eventos. Isso faz com que os dados sejam primeiro transferidos do corretor de eventos para o consumidor e depois retornados ao corretor após a transformação. Não importa quão simples ou complicada seja a transformação, esse pingue-pongue de dados resulta em maior latência, maiores custos de rede e pipelines complexos de processamento de fluxo.
É aqui que as transformações de dados no corretor ganham destaque, permitindo que funções de transformação sem estado, como filtragem, depuração e transcodificação, sejam executadas dentro do próprio corretor, eliminando totalmente a necessidade de mover dados entre sistemas externos.
Apache Flink é uma escolha popular para processamento de fluxo sem estado e com estado. No entanto, a Redpanda anunciou recentemente a versão beta pública do Data Transforms, desenvolvido pela WebAssembly (Wasm), para transformações de dados no corretor mais simples e menos dispendiosas. Resumindo, o Redpanda Data Transforms permite que os desenvolvedores leiam dados, preparem mensagens e façam chamadas de API sem o “pingue-pongue de dados” para pipelines mais econômicos e melhor qualidade de dados para consumidores downstream.
Naturalmente, aqueles que trabalham com cargas de trabalho de processamento de fluxo estão se perguntando o que distingue as duas tecnologias e quando usá-las. Vamos comparar Redpanda Data Transforms e Apache Flink em seus melhores recursos, juntamente com possíveis casos de uso e benefícios.
Quando usar o Apache Flink para transformações de dados
Uma arquitetura de processamento de fluxo usando Apache Flink. (Fonte: Documentos Flink)
Suas operações são complexas e com estado
Escolha Apache Flink se suas transformações tiverem estado. Um estado é mantido em múltiplas invocações. Por exemplo, ao contar as ocorrências de diferentes tipos de eventos em um tópico, ele deve manter os contadores no estado e também garantir que o estado seja tolerante a falhas.
O Flink é excelente no processamento de fluxo com estado em fluxos ilimitados, o que envolve agregações, junções, operações de janela e processamento de tempo de evento. Se a sua transformação pertence a esse lugar, Flink é sua melhor escolha.
Suas transformações precisam acessar discos e rede
Escolha Flink se suas transformações desejarem ler e gravar em sistemas externos, como bancos de dados, serviços e sistemas de arquivos.
No momento em que este artigo foi escrito, Redpanda Data Transforms não suportava fazer chamadas de rede ou acessar o disco local. É aqui que o Flink e seu rico ecossistema de conectores são úteis, especialmente se sua transformação exigir muitos dados.
Quando usar transformações de dados Redpanda
Como o Redpanda Data Transforms simplifica o processamento de stream. (Fonte: Blog Redpanda)
Suas operações são triviais e sem estado
Escolha Redpanda Data Transforms se suas transformações não tiverem estado. Isto significa que o processamento de um evento não depende de quaisquer eventos vistos no passado e nenhum histórico é mantido. As transformações sem estado são independentes e a saída é puramente uma função dos dados de entrada.
Redpanda Data Transforms é ideal para as seguintes transformações:
- Editando PI/PII confidenciais da carga útil do evento
- Transcodificação de dados (por exemplo, transformação JSON para Avro)
- Filtragem de eventos
- Criptografia em nível de campo
A latência de processamento é uma preocupação
Escolha Redpanda Data Transforms se a latência de processamento das transformações for crítica e você precisar absolutamente de processamento em tempo real. Isso ocorre porque as transformações Redpanda são executadas em processo — perto de onde os dados residem — reduzindo a latência do processamento, pois há menos transferência de dados pela rede.
Além disso, as transformações sem estado prestam-se à paralelização. Como cada evento pode ser processado de forma independente, vários eventos podem ser processados simultaneamente em diversas unidades de processamento ou threads. Essa paralelização pode levar a melhorias significativas de desempenho, especialmente em sistemas multicore ou distribuídos.
Suas transformações devem suportar múltiplas linguagens de programação
Escolha Redpanda Data Transforms se quiser dar aos desenvolvedores a liberdade de escolher sua linguagem preferida para as transformações.
Cada transformação é implantada dentro de um mecanismo WebAssembly (Wasm) dentro de um corretor Redpanda. Wasm permite que os desenvolvedores escrevam código em linguagens como C/C++, Rust e outras linguagens de alto nível como Python ou TypeScript e, em seguida, compile-os em bytecode Wasm. Este bytecode é então distribuído em um cluster Redpanda e implantado. No momento em que este artigo foi escrito, Redpanda suportava transformações Wasm com Go e Rust. O suporte para C++ e JavaScript está bem encaminhado, enquanto a adição de Kotlin posteriormente está planejada.
Apesar do suporte do Flink para programação poliglota com Java, Scala e Python, Wasm oferece uma gama mais ampla de opções, ao mesmo tempo que fornece desempenho, portabilidade, segurança e flexibilidade.
Você não precisa gerenciar um sistema adicional
Flink é um sistema distribuído que requer provisionamento de recursos adicionais, monitoramento e pessoal. Às vezes, usar esse sistema para uma tarefa trivial, como redigir uma senha, pode ser um exagero.
O veredito
O Apache Flink é uma ótima opção se a maioria de suas cargas de trabalho tiver estado e incorporar lógica de processamento complexa, como semântica de tempo de evento, tolerância a falhas de estado e agregações em grande escala. Se o seu caso de uso de transformação for sem estado, sensível à latência e você quiser operar com eficiência de custos em mente, escolha Redpanda Data Transforms.
Por exemplo, se você estiver iniciando um projeto de streaming de dados e seus requisitos forem simples, como mascarar um campo PII ou uma conversão de JSON para CSV, talvez você não queira gerenciar um sistema distribuído externo apenas para isso.
Se você ainda estiver em dúvida ou tiver alguma dúvida diferente, pergunte na Comunidade Redpanda no Slack.
O post Transformações de dados: Apache Flink vs. Redpanda Data Transforms apareceu pela primeira vez em The New Stack.