TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

The Unbundling of Airflow

164 点作者 gorkemyurt大约 3 年前

20 条评论

blakeburch大约 3 年前
I think you&#x27;re 100% right that the tasks that can be accomplished in Airflow are currently being unbundled by tools in the modern data stack, but that doesn&#x27;t erase the need for tools like Airflow. Sure, you can now write less code to load your data, transform it, and send it out to other tools. As the unbundling occurs, the end result is more fragmentation and fragility in how teams manage their data.<p>Data teams I talk to can&#x27;t turn to any single location to see every touchpoint their data goes through. They&#x27;re relying on each tool&#x27;s independent scheduling system and hoping that everything runs at the right time without errors. If something breaks, bad data gets deployed and it becomes a mad scramble to verify which tool caused the error and which reports&#x2F;dashboards&#x2F;ML models&#x2F;etc. were impacted downstream.<p>While these unbundled tools can get you 90% of the way to your desired end goal, you&#x27;ll inevitably face a situation where your use case or SaaS tool is unsupported. In every situation like this I&#x27;ve ever faced, the team ultimately ends up writing and managing their own custom scripts to account for this situation. Now you have your unbundled tool + your custom script. Why not just manage all of the tools and your scripts from a singular source in the first place?<p>While unbundling is the reality, this new era of data technology will always still have a need for data orchestration tools that serve as a centralized view into your data workflows, whether that&#x27;s Airflow or any of the new players in the space.<p>(Disclosure: I&#x27;m a co-founder of <a href="https:&#x2F;&#x2F;www.shipyardapp.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.shipyardapp.com&#x2F;</a>, building better data orchestration for modern data teams)
评论 #30354782 未加载
评论 #30354918 未加载
the_af大约 3 年前
As a newcomer to the world of data, I have no strong opinions about Airflow. It replaced a bunch of disparate cron jobs, so it&#x27;s definitely better than what was there before.<p>There are things I like and things I don&#x27;t about it. The UI is awful -- I don&#x27;t know anyone that likes it, unlike what the article states. I like that it&#x27;s centralized and that it&#x27;s all Python code.<p>Deploying it and fine-tuning the config for a variety of workloads can be a pain. Sometimes sensors don&#x27;t work right. Tasks sometimes get evicted and killed for obscure reasons. Zombie tasks are a pain big enough you&#x27;ll see plenty of requests for help online.<p>That said, replacing it with a bunch of disparate tools again? Seems like a step backwards. And now instead of a single tool, your org has to vet, secure, understand and monitor a bunch of different tools? It&#x27;s bad enough with only one...<p>What am I missing?<p>PS: data analysis&#x2F;engineering as a field seems new and immature enough that, in my humble opinion, we should be focusing on developing good practices and theory, instead of deprecating existing (and pretty recent) tech at an ever increasing pace.
评论 #30357177 未加载
评论 #30355966 未加载
评论 #30362141 未加载
fdgsdfogijq大约 3 年前
This post is hard to follow. But I&#x27;ll give my unsolicited opinion on airflow:<p>Its too complex to run as a single team and there are far better tools out there for scheduling. Airflow only makes sense when you need complex logic surrounding when to run jobs, how to backfill, when to backfill, and complex dependency trees. Otherwise, you are much better off with something like AWS step functions.
评论 #30354078 未加载
评论 #30354511 未加载
评论 #30354031 未加载
评论 #30354219 未加载
评论 #30357027 未加载
评论 #30353860 未加载
评论 #30355920 未加载
评论 #30354355 未加载
评论 #30353879 未加载
jimmytucson大约 3 年前
If I put each select statement in its own Airflow task, I get the same lineage dbt gives me, except I can see it and administer to it alongside all my other E and L-type tasks.<p>Also, I can write my T in plain ol’ SQL (granted, with some jinja) instead of this dbt-QL that I can’t copy and paste into my database console or share with a non-dbt user.<p>So, folks who have adopted dbt: what am I missing by being a fuddy-duddy?
评论 #30356161 未加载
评论 #30361401 未加载
评论 #30356398 未加载
DevKoala大约 3 年前
I love Airflow. Plenty of data businesses I&#x27;ve built are nothing more than just one DAG.<p>As for the article, I don&#x27;t think we are yet at the point in which a competing stack comprised of individual specialized components do things better since Airflow is more than the sum of its parts imho.
idomi大约 3 年前
Well written. I think that airflow is being enforced in organizations as the main orchestrator even though it&#x27;s not always the right too for the job. In addition, organizations has to enforce a micro-services approach to have modular components. Besides that managing those frameworks is a nightmare. We built Ploomber (<a href="https:&#x2F;&#x2F;github.com&#x2F;ploomber&#x2F;ploomber" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ploomber&#x2F;ploomber</a>) specifically for this reason, modular components and easy deployments. It standardize your pipelines and allows you to deploy seamlessly on Airflow, Argo (Kubernetes), Kubeflow and cloud providers.
评论 #30356515 未加载
xeRTRex大约 3 年前
I have used airflow with two different organizations over the past couple years. When we had a complex orchestration with critical pipelines and enough human-power to manage the system, it was great. Trying to deploy it for a small team with no critical pipelines has been overkill and we recently migrated to dagster which is still in beta but accomplishes 90% of what airflow does with a much smaller footprint.
throwaway984393大约 3 年前
You can &quot;unbundle&quot; Airflow into different components. What is it called when you take one thing and break it into many pieces? Distributed (<i>sometimes</i> decentralized) computing. What do you get when you take a single system and distribute&#x2F;decentralize it? Complexity. And what&#x27;s the best way to simplify complexity? Consolidate the complexity into one system.<p>The Circle of Computing Complexity.
评论 #30355877 未加载
ricklamers大约 3 年前
I like this post, because in many ways it highlights the importance of how Airflow has helped shape the modern data stack.<p>Like mentioned in this thread, managing Airflow can quickly become complicated. Its flexibility means that you can stretch Airflow in pretty interesting ways. Especially when trying to pair container orchestrators like k8s with it.<p>To combat that complexity and reduce the operational burden of letting a data team create &amp; deploy batch processing pipelines we created <a href="https:&#x2F;&#x2F;github.com&#x2F;orchest&#x2F;orchest" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;orchest&#x2F;orchest</a><p>We suspect that many standardized use cases (like reverse ETL) will start disappearing from custom batch pipelines. But there’s a long tail of data processing tasks for which having freedom to invoke your language of choice has significant advantages. Not to mention stimulating innovative ideas (why not use Julia for one of your processing steps?).
jevgeni大约 3 年前
&quot;You can use these 24 proprietary paid tools instead of Airflow&quot;<p>Thanks.
mianos大约 3 年前
Tools like prefect.io, IMHO, are just this. A &#x27;modular&#x27; Airflow where you can pick and choose to use the just the DAG with no GUI, workflow GUI, scheduling, runners of all types from local to k8s.
fmakunbound大约 3 年前
It&#x27;s ok, but seems to be a bit too complex for what it does. It was pretty janky running it locally (pegged the CPU), and now that we have it in MWAA we&#x27;ve got several support issues on it with AWS for unkillable task instances and scheduler problems.
评论 #30355836 未加载
VectorLock大约 3 年前
I found Airflow to be extremely buggy when I started deploying it for use with a small&#x2F;medium sized team. Did anybody else have a similar impression, or has it gotten better with later versions?
评论 #30356343 未加载
speed_spread大约 3 年前
This is fine and will allow Airflow to focus on it&#x27;s core functionality of being a distributed job scheduler.<p>FWIW, last I looked at Airflow I thought the schedule+task model could be made tighter as their was numerous ways to enter inconsistent states. For example, changing the schedule after tasks had already been run would allow to rerun jobs (in the past) at dates that were never scheduled in the first place.
gorkemyurt大约 3 年前
High Resolution Version of the diagram if anyone is interested<p><a href="https:&#x2F;&#x2F;drive.google.com&#x2F;file&#x2F;d&#x2F;1btZ0yck9SdgsUdNom0WXgHcSQvOJdcGR&#x2F;view" rel="nofollow">https:&#x2F;&#x2F;drive.google.com&#x2F;file&#x2F;d&#x2F;1btZ0yck9SdgsUdNom0WXgHcSQvO...</a>
schrockn大约 3 年前
Funny enough this post mirrors quite a bit of our thinking over at Dagster! <a href="https:&#x2F;&#x2F;dagster.io&#x2F;blog&#x2F;rebundling-the-data-platform" rel="nofollow">https:&#x2F;&#x2F;dagster.io&#x2F;blog&#x2F;rebundling-the-data-platform</a>
jillesvangurp大约 3 年前
I had a pretty terrible experience doing devops to automate the setup of an Airflow setup in 2020. This was before 2.0; I assume a lot of the bugs and issues may have been at least partially addressed.<p>My main gripes:<p>- The out of the box configuration is not something you should use in production. It&#x27;s basically using python multiprocess (yikes) and sqlite like you would on a developer machine. Instead, you&#x27;ll be using dedicated workers running on different machines and either a database or redis in between.<p>- Basically the problem is that python is single threaded (the infamous gil) and has synchronous (IO). And that kind of sucks when you are building something that ought to be asynchronous and running on multiple threads, cores, cpus, and machines. It&#x27;s not a great language for that kind of job. Mostly in production it acts as a facade for stuff that is much better at such things (kubernetes, yarn, etc.).<p>- Most of the documentation is intended for people doing stuff on their laptops, not for people trying to actually run this in a responsible way on actual servers. In our case that meant referring to third party git repositories with misc terraform, aws, etc. setup to figure out what configuration was needed to run it in a more responsible way.<p>- Python developers don&#x27;t seem to grasp the notion that installing a lot of python dependencies on a production server is not a very desirable thing. Doing that sucks, to put it mildly. Virtual environments help. Either way, that complicates deployment of new dags to production. That severely limits what you should be packaging up as a dag and what you should be packaging up with e.g. docker.<p>- What that really means is that you should be considering packaging up most of your jobs using e.g. Docker. Airflow has a docker runner and a kubernetes runner. I found using that to be a bit buggy but we managed to patch our way around it.<p>- Speaking of docker, at the time there was no well supported dockerized setup for Airflow. We found multiple unsupported bits of configuration for kubernetes by third parties though. That stuff looked complicated. I quickly checked and at least they now provide a docker-compose for a setup with postgresql and redis; so that&#x27;s an improvement.<p>- The UI was actually worse than jenkins and that&#x27;s a bit dated to say the least. Very web 1.0. I found my self hitting F5 a lot to make it stop lying about the state of my dags. At least Jenkins had auto reload. I assume somebody might have fixed that by now but the whole thing was pretty awful in terms of UX.<p>- Actual dag programming and testing was a PITA as well. And since it is python, you really do need to unit test dags before you deploy them and have them run against your production data. A small typo can really ruin your day.<p>We got it working in the end but it was a lot of work. I could have gotten our jobs running with jenkins in under a day easily.
评论 #30359525 未加载
timClicks大约 3 年前
What&#x27;s the state of the art in terms of &quot;distributed cron&quot; these days?
argella大约 3 年前
Since this might catch the eye of someone knowledgeable …<p>Does anyone know if the community docker images for airflow can be run using podman?
评论 #30355461 未加载
robertlagrant大约 3 年前
Tl;dr 2nd to last paragraph says that Airflow&#x27;s unbundling is better than writing a better Airflow. Final paragraph says that DBT Cloud will become the better Airflow.