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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

How Airbnb Built “Wall” to prevent data bugs

116 点作者 charlysl大约 3 年前

7 条评论

SOLAR_FIELDS大约 3 年前
Ive been in the end stage of this (worked on data validation for a good chunk of my career) and these are my thoughts on the article:<p>Determining blocking vs non blocking is a big issue - deciding which checks should be stoppers and which shouldn’t is often a matter of extensive debate. In my experience, only a few data checks are absolute show stoppers under any circumstance and a lot of things need to spawn tickets that should be routed to the correct team and followed up on. Some type of tracking system is necessary for this.<p>Defining the logic of checks themselves in YAML is a trap. We went down this DSL route first and it basically just completely falls apart once you want to add moderately complex logic to your check. AirBnB will almost certainly discover this eventually. YAML does work well for the specification of how the check should behave though (eg metadata of the data check). The solution we were eventually able to scale up with was coupling specifications in a human readable but parseable file with code in a single unit known as the check. These could then be grouped according to various pipeline use cases.<p>A model that plugs into an Airflow DAG as AirBnB has designed seems like a good approach. Often when it was time to incorporate checks into the pipeline we had heterogenous strategies to invoke our checks engines. Having a standardized approach helps drive adoption across the organization- oftentimes I’ve found that people are reluctant to run non critical checks if it’s a significant time and effort cost and will only run critical ones to try and push data quality accountability either upstream or downstream. If it’s really easy to turn on and incorporate that’s one less excuse that can be used to not run the checks.
评论 #31454197 未加载
评论 #31454380 未加载
评论 #31475411 未加载
评论 #31488877 未加载
quadrifoliate大约 3 年前
I&#x27;m a little bit annoyed at reading about details that seem closely connected to internal code (e.g. CheckConfigModel classes) without being able to see the source.<p>I am not sure what others find so compelling about this blog post. Granted it&#x27;s from Airbnb which probably has one of the more interesting data sets, but honestly it looks to me like an internal blog post that&#x27;s been reposted to Medium without considering the viewpoint of an external user. I understand if they don&#x27;t want to open source the framework; but then most of the blog post should be about design principles, maybe a bit about the process itself — not implementation details that seem directed towards an internal audience.
jm1271大约 3 年前
Thanks for this post! Naive question: why not &quot;just use Great Expectations&quot;? At first blush GE seems like it has a lot of what you need out of the box: checks definable in YAML, extensibility, and connectors to many major data sources.<p>Was there something you all found lacking there which made &quot;roll your own&quot; the right approach here?
评论 #31464255 未加载
charlysl大约 3 年前
From related <a href="https:&#x2F;&#x2F;medium.com&#x2F;airbnb-engineering&#x2F;data-quality-at-airbnb-e582465f3ef7" rel="nofollow">https:&#x2F;&#x2F;medium.com&#x2F;airbnb-engineering&#x2F;data-quality-at-airbnb...</a><p>&gt; The new role requires Data Engineers to be strong across several domains, including data modeling, pipeline development, and software engineering.<p>&gt; comprehensive guidelines for data modeling, operations, and technical standards for pipeline implementation<p>&gt; Tables must be normalized (within reason) and rely on as few dependencies as possible. Minerva does the heavy lifting to join across data models.<p>&gt; When we began the Data Quality initiative, most critical data at Airbnb was composed via SQL and executed via Hive. This approach was unpopular among engineers, as SQL lacked the benefits of functional programming languages (e.g. code reuse, modularity, type safety, etc)<p>&gt; made the shift to Spark, and aligned on the Scala API as our primary interface. Meanwhile, we ramped investment into a common Spark wrapper to simplify reads&#x2F;write patterns and integration testing.<p>&gt; needed to improve was our data pipeline testing. This slowed iteration speed and made it difficult for outsiders to safely modify code. We required that pipelines be built with thorough integration tests<p>&gt; tooling for executing data quality checks and anomaly detection, and required their use in new pipelines. Anomaly detection in particular has been highly successful in preventing quality issues in our new pipelines.<p>&gt; important datasets are required to have an SLA for landing times, and pipelines are required to be configured with Pager Duty<p>&gt; a Spec document that provides layman’s descriptions for metrics and dimensions, table schemas, pipeline diagrams, and describes non-obvious business logic and other assumptions<p>&gt; a data engineer then builds the datasets and pipelines based on the agreed upon specification
geoffjentry大约 3 年前
Is this available for others to use or internal only? I think the answer is the latter as a google search didn&#x27;t turn anything up and I didn&#x27;t see anything in the article. But if I&#x27;m wrong I&#x27;d love to kick the tires a bit.
testbjjl大约 3 年前
Maybe Jim Buckmaster and Craig Neumark are taking notes.
评论 #31453876 未加载
d_burfoot大约 3 年前
&gt; Hive SQL, Spark SQL, Scala Spark, PySpark and Presto are widely used as different execution engines<p>This makes me think they&#x27;re doing something very very wrong. AirBNB does not have data on the scale that would require these tools. They have 5.6 million listings, 150 million users, and 1 billion total person-stays. These numbers can easily be processed with Postgres or SQLite on single machines. Spark and Hive are for companies like Google and Facebook.<p><a href="https:&#x2F;&#x2F;www.thezebra.com&#x2F;resources&#x2F;home&#x2F;airbnb-statistics&#x2F;#infographic" rel="nofollow">https:&#x2F;&#x2F;www.thezebra.com&#x2F;resources&#x2F;home&#x2F;airbnb-statistics&#x2F;#i...</a>
评论 #31454505 未加载
评论 #31455003 未加载
评论 #31454927 未加载
评论 #31455077 未加载
评论 #31454586 未加载