Primeiros passos | Implantação | Documentação e Suporte | Blogue | Licença
Pathway é uma estrutura Python ETL para processamento de fluxo, análise em tempo real, pipelines LLM e RAG.
O Pathway vem com uma API Python fácil de usar , permitindo integrar perfeitamente suas bibliotecas Python ML favoritas. O Pathway Code é versátil e robusto: você pode usá-lo em ambientes de desenvolvimento e produção, lidando com dados em lote e streaming de maneira eficaz . O mesmo código pode ser usado para desenvolvimento local, testes de CI/CD, execução de trabalhos em lote, manipulação de replays de fluxo e processamento de fluxos de dados.
Pathway é alimentado por um mecanismo Rust escalonável baseado em Differential Dataflow e executa computação incremental. Seu código Pathway, apesar de ter sido escrito em Python, é executado pelo mecanismo Rust, permitindo multithreading, multiprocessamento e cálculos distribuídos. Todo o pipeline é mantido na memória e pode ser facilmente implantado com Docker e Kubernetes .
Você pode instalar o Pathway com pip:
pip install -U pathway
Para qualquer dúvida, você encontrará a comunidade e a equipe por trás do projeto no Discord.
Pronto para ver o que o Pathway pode fazer?
Experimente um de nossos exemplos fáceis de executar!
Disponíveis nos formatos notebook e docker, esses exemplos prontos para lançamento podem ser iniciados com apenas alguns cliques. Escolha um e comece sua experiência prática com o Pathway hoje mesmo!
Com seu mecanismo unificado para lote e streaming e total compatibilidade com Python, o Pathway torna o processamento de dados o mais fácil possível. É a solução ideal para uma ampla variedade de pipelines de processamento de dados, incluindo:
Pathway fornece ferramentas LLM dedicadas para construir pipelines LLM e RAG ao vivo. Estão incluídos wrappers para os serviços e utilitários LLM mais comuns, tornando o trabalho com pipelines LLMs e RAGs incrivelmente fácil. Confira nossa documentação xpack do LLM.
Não hesite em experimentar um de nossos exemplos executáveis com ferramentas LLM. Você pode encontrar esses exemplos aqui.
O Pathway requer Python 3.10 ou superior.
Você pode instalar a versão atual do Pathway usando pip
:
$ pip install -U pathway
import pathway as pw
# Define the schema of your data (Optional)
class InputSchema ( pw . Schema ):
value : int
# Connect to your data using connectors
input_table = pw . io . csv . read (
"./input/" ,
schema = InputSchema
)
#Define your operations on the data
filtered_table = input_table . filter ( input_table . value >= 0 )
result_table = filtered_table . reduce (
sum_value = pw . reducers . sum ( filtered_table . value )
)
# Load your results to external systems
pw . io . jsonlines . write ( result_table , "output.jsonl" )
# Run the computation
pw . run ()
Execute o Pathway no Google Colab.
Você pode encontrar mais exemplos aqui.
Para usar o Pathway, você só precisa importá-lo:
import pathway as pw
Agora, você pode criar facilmente seu pipeline de processamento e deixar o Pathway cuidar das atualizações. Depois que seu pipeline for criado, você poderá iniciar a computação no streaming de dados com um comando de uma linha:
pw . run ()
Você pode então executar seu projeto Pathway (digamos, main.py
) como um script Python normal: $ python main.py
. O Pathway vem com um painel de monitoramento que permite acompanhar a quantidade de mensagens enviadas por cada conector e a latência do sistema. O painel também inclui mensagens de log.
Alternativamente, você pode usar a versão path'ish:
$ pathway spawn python main.py
O Pathway suporta nativamente multithreading. Para iniciar seu aplicativo com 3 threads, você pode fazer o seguinte:
$ pathway spawn --threads 3 python main.py
Para iniciar um projeto Pathway, você pode usar nosso modelo cookiecutter.
Você pode executar facilmente o Pathway usando o docker.
Você pode usar a imagem docker do Pathway, usando um Dockerfile:
FROM pathwaycom/pathway:latest
WORKDIR /app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD [ "python" , "./your-script.py" ]
Você pode então construir e executar a imagem do Docker:
docker build -t my-pathway-app .
docker run -it --rm --name my-pathway-app my-pathway-app
Ao lidar com projetos de arquivo único, criar um Dockerfile
completo pode parecer desnecessário. Nesses cenários, você pode executar um script Python diretamente usando a imagem do Pathway Docker. Por exemplo:
docker run -it --rm --name my-pathway-app -v "$PWD":/app pathwaycom/pathway:latest python my-pathway-app.py
Você também pode usar uma imagem Python padrão e instalar o Pathway usando pip com um Dockerfile:
FROM --platform=linux/x86_64 python:3.10
RUN pip install -U pathway
COPY ./pathway-script.py pathway-script.py
CMD [ "python" , "-u" , "pathway-script.py" ]
Os contêineres Docker são ideais para implantação na nuvem com Kubernetes. Se você deseja dimensionar seu aplicativo Pathway, pode estar interessado em nosso Pathway for Enterprise. O Pathway for Enterprise é especialmente adaptado para processamento de dados ponta a ponta e análises inteligentes em tempo real. Ele é dimensionado usando computação distribuída na nuvem e oferece suporte à implantação distribuída do Kubernetes, com configuração de persistência externa.
Você pode implantar o Pathway facilmente usando serviços como Render: veja como implantar o Pathway com apenas alguns cliques.
Se você estiver interessado, não hesite em nos contatar para saber mais.
O Pathway foi criado para superar as tecnologias de última geração projetadas para tarefas de streaming e processamento de dados em lote, incluindo: Flink, Spark e Kafka Streaming. Também torna possível implementar muitos algoritmos/UDFs no modo de streaming que não são prontamente suportados por outras estruturas de streaming (especialmente: junções temporais, algoritmos de gráficos iterativos, rotinas de aprendizado de máquina).
Se você estiver curioso, aqui estão alguns benchmarks para brincar.
Toda a documentação do Pathway está disponível em path.com/developers/, incluindo a API Docs.
Se você tiver alguma dúvida, não hesite em abrir um problema no GitHub, junte-se a nós no Discord ou envie-nos um e-mail para [email protected].
O Pathway é distribuído com uma licença BSL 1.1 que permite uso não comercial ilimitado, bem como o uso do pacote Pathway para a maioria dos fins comerciais, gratuitamente. O código neste repositório é convertido automaticamente para código aberto (licença Apache 2.0) após 4 anos. Alguns repositórios públicos complementares a este (exemplos, bibliotecas, conectores, etc.) são licenciados como Open Source, sob a licença MIT.
Se você desenvolver uma biblioteca ou conector que gostaria de integrar com este repositório, sugerimos liberá-lo primeiro como um repositório separado em uma licença MIT/Apache 2.0.
Para todas as preocupações relacionadas às funcionalidades principais do Pathway, os problemas são incentivados. Para mais informações, não hesite em entrar em contato com a comunidade Discord da Pathway.