reflow
projects
reflow | projects | |
---|---|---|
7 | 19 | |
953 | 77 | |
0.1% | - | |
6.2 | 4.7 | |
7 months ago | 4 months ago | |
Go | Jupyter Notebook | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
reflow
- reflow - A language and runtime for distributed, incremental data processing in the cloud
- Reflow, a language for distributed, incremental data processing in the cloud
-
Jolie, the service-oriented programming language
Reflow [1] is a similar attempt at a slightly different domain: bioinformatics and ETL pipelines. Reflow exposes a data model and programming model that reclaims programmability in these systems, and, by leaning on these abstractions, gives the runtime much more leeway to do interesting things. It unties the hands of the implementer.
[1] https://github.com/grailbio/reflow
-
Data as a build system ?
https://github.com/grailbio/reflow is the closest that I know, as it has a design that resembles the Bazel build system.
-
Why isn't differential dataflow more popular?
It seems Reflow falls in this category:
https://github.com/grailbio/reflow
> Reflow thus allows scientists and engineers to write straightforward programs and then have them transparently executed in a cloud environment. Programs are automatically parallelized and distributed across multiple machines, and redundant computations (even across runs and users) are eliminated by its memoization cache. Reflow evaluates its programs incrementally: whenever the input data or program changes, only those outputs that depend on the changed data or code are recomputed.
projects
-
Analyze and plot 5.5M records in 20s with BigQuery and Ploomber
You can look at the files in detail here. For this tutorial, I'll quickly mention a few crucial details.
-
Three Tools for Executing Jupyter Notebooks
Ploomber is the complete solution for notebook execution. It builds on top of papermill and extends it to allow writing multi-stage workflows where each task is a notebook. Meanwhile, it automatically manages orchestration. Hence you can run notebooks in parallel without having to write extra code.
-
OOP in python ETL?
The answer is YES, you can take advantage of OOP best practices to write good ETLs. For instance in this Ploomber sample ETL You can see there's a mix of .sql and .py files, it's within modular components so it's easier to test, deploy and execute. It's way easier than airflow since there's no infra work involved, you only have to setup your pipeline.yaml file. This also allows you to make the code WAY more maintainable and scalable, avoid redundant code and deploy faster :)
-
What are some good DS/ML repos where I can learn about structuring a DS/ML project?
We have tons of examples that follow a standard layout, here’s one: https://github.com/ploomber/projects/tree/master/templates/ml-intermediate
-
Anyone's org using Airflow as a generalized job orchestator, not just for data engineering/ETL?
I can talk about the open-source I'm working on Ploomber (https://github.com/ploomber/ploomber), it's focusing on seamless integration with Jupyter and IDEs. It allows an easy mechanism to orchestrate work for instance, here's an example SQL ETL and then you can deploy it anywhere, so if you're working with Airflow, it'll deploy it there too but without the complexity. You wouldn't have to maintain docker images etc.
-
ETL with python
I recommend using Ploomber which can help you build once and automate a lot of the work, and it works with python natively. It's open source so you can start with one of the examples, like the ML-basic example or the ETL one. It'll allow you to define the pipeline and then easily explain the flow with the DAG plot. Feel free to ask questions, I'm happy to help (I've built 100s of data pipelines over the years).
-
What tools do you use for data quality?
I'm not sure what pipeline frameworks support this kind of testing, but after successfully implementing this workflow, I added this feature to Ploomber, the project I'm working on. Here's how a pipeline looks like, and here's a tutorial.
-
Data pipeline suggestions
Check out Ploomber, (disclaimer: I'm the author) it has a simple API, and you can export to Airflow, AWS, Kubernetes. Supports all databases that work with Python and you can seamlessly transfer from a SQL step to a Python step. Here's an example.
-
ETL Tools
Without more specifics about your use case, it's hard to give more specific advice. But check out Ploomber (disclaimer: I'm the creator) - here's an example ETL pipeline. I've used it in past projects to develop Oracle ETL pipelines. Modularizing the analysis in many parts helps a lot with maintenance.
-
Whats something hot rn or whats going to be next thing we should focus on in data engineering?
Yes! (tell your friend). You can write shell scripts so you can execute that 2002 code :) You can test it locally and then run it in AWS Batch/Argo. Here's an example
What are some alternatives?
differential-dataflow - An implementation of differential dataflow using timely dataflow on Rust.
cookiecutter-data-science - A logical, reasonably standardized, but flexible project structure for doing and sharing data science work.
rslint - A (WIP) Extremely fast JavaScript and TypeScript linter and Rust crate
ploomber - The fastest ⚡️ way to build data pipelines. Develop iteratively, deploy anywhere. ☁️
ballista - Distributed compute platform implemented in Rust, and powered by Apache Arrow.
Kedro - Kedro is a toolbox for production-ready data science. It uses software engineering best practices to help you create data engineering and data science pipelines that are reproducible, maintainable, and modular.
dbt-core - dbt enables data analysts and engineers to transform their data using the same practices that software engineers use to build applications.
odict - A blazingly-fast, offline-first format and toolchain for lexical data 📖
jitsu - Jitsu is an open-source Segment alternative. Fully-scriptable data ingestion engine for modern data teams. Set-up a real-time data pipeline in minutes, not days
timely-dataflow - A modular implementation of timely dataflow in Rust
Python Packages Project Generator - 🚀 Your next Python package needs a bleeding-edge project structure.