Audantic如何使用Databricks Delta活动表来提高房地产细分市场的生产力
2022年5月5日 在bob体育客户端下载平台的博客
在Audantic,我们为单户住宅房地产的细分市场提供数据和分析解决方案。我们利用房地产数据构建机器学习模型,为客户进行排名、优化,并为客户提供收益情报,实时做出数据驱动的房地产投资战略决策。
我们利用各种数据集,包括房地产税和记录器数据以及人口统计数据。要建立我们的预测模型需要大量的数据集,其中许多数据集有数百列宽,甚至在考虑时间维度之前就有数亿条记录。
为了支持我们的数据驱动计划,我们将ETL、编排、ML(利用AWS)、气流等各种服务“拼接”在一起,我们看到了一些成功,但很快就变成了一个过于复杂的系统,开发时间几乎是新解决方案的五倍。我们的团队获得了比较我们之前的实现和当前的lakehouse解决方案的高级指标。正如您从下表中看到的,我们花了几个月的时间开发之前的解决方案,并且不得不编写大约3倍的代码。此外,我们能够将管道运行时间缩短73%,并节省21%的运行成本。
以前的实现 | 新湖屋解决方案 | 改进 | |
---|---|---|---|
开发时间 | 6个月 | 25天 | 减少86%的开发时间 |
代码行数 | ~ 6000 | ~ 2000 | 代码行数减少66% |
在这篇博客中,我将介绍我们之前的实现,并讨论我们当前的lakehouse解决方案。我们的目的是向您展示我们的数据团队如何使用Databricks Lakehouse平台降低复杂性、提高生产力和提高敏捷性。bob体育客户端下载
以前的实现
我们之前的架构包括来自AWS的多个服务以及其他组件来实现我们想要的功能,包括Python模块、气流、EMR、S3、Glue、Athena等。下面是一个简化的架构:
简而言之,过程如下:
- 我们利用气流来协调我们的dag。
- 内置自定义代码,通过气流发送电子邮件和Slack通知。
- 转换代码被编译并推送到S3。
- 创建脚本,使用适当的Apache Spark™设置、集群设置和作业参数启动EMR。
- 通过将代码推送到S3来编排作业。
- 表模式是用Glue添加的,表分区管理是通过Athena使用SQL命令完成的。
由于我们之前实施的复杂性,我们面临许多挑战,减缓了我们的进步和创新,包括:
- 管理失败和错误场景
- 必须以这样一种方式编写任务,以支持故障时的轻松重启,否则就需要人工干预。
- 需要添加自定义数据质量和错误跟踪机制,这会增加维护开销。
- 复杂的DevOps
- 必须管理气流实例和访问主机。
- 有许多不同的工具和复杂的逻辑将它们连接在气流dag中。
- 手动维护和调优
- 必须管理和调优Spark设置、集群设置和环境(并尽可能使用自定义代码实现自动化)。
- 必须管理输出文件大小,以避免每个作业有太多的小文件或过大的文件(使用parquet)。
- 需要对数据进行完全刷新,或者计算增量更新需要执行哪些分区,然后需要根据正在使用的数据分区数量调整集群和Spark设置。
- 源数据集模式的更改需要手动更改代码,因为输入数据集是CSV文件或类似的自定义代码,包括每个数据集的模式。
- 在气流任务中内置日志记录,但仍然需要查看不同位置的日志(气流、EMR、S3等)。
- 缺乏对数据沿袭的可见性
- 不同作业中数据集之间的依赖关系复杂且不易确定,特别是当数据集处于不同的dag中时。
当前实现:使用Databricks的可扩展数据湖
我们之所以选择Databricks Lakehouse平台,是因为它易于管bob体育客户端下载理环境、集群和文件/数据,给我们留下了深刻的印象;Databricks笔记本中实时协作编辑的乐趣和有效性;以及在不牺牲可靠性和质量的情况下平台的开放性和灵活性(例如,围绕他们的开源Delbob体育客户端下载ta Lake格式构建,这使我们免于被锁定在专有格式或堆栈中)。我们认为DLT在消除先前实施带来的更多挑战方面又迈出了一步。我们的团队对S3上存储的原始数据的提取、支持模式演变、定义验证和监控数据质量的期望以及管理数据依赖关系的简单和快速感到特别兴奋。
Delta Live Tables的好处
Delta Live Tables (DLT)可以轻松构建和管理可靠的数据管道,从而在Delta Lake上交付高质量的数据。DLT将开发人员的生产力提高了380%,帮助我们更快地为机器学习和数据分析提供高质量的数据集。
通过使用Delta Live Tables,我们已经看到了许多好处,包括:
- 流处理
- 内置支持流,并在需要时选择完全刷新
- 简单的DevOps
- 我们的团队不需要管理服务器,因为DLT管理了整个处理基础设施。
- 管理员能够轻松地管理Databricks用户
- 更少的工具更顺畅地协同工作。
- 例如:
- 新的实现:通过DLT创建的表可以立即使用DB SQL访问。
- 以前的实现:使用Glue创建表模式,然后在Spark作业创建/添加底层数据的基础上使用Athena添加新分区。
- 简化的维护和性能调优
- DLT中Spark和集群默认设置的最佳实践。
- 文件大小管理与自动优化和真空。
- 在DLT中轻松查看状态、计数和日志。
- 自动数据沿袭
- DLT维护数据依赖关系,并使从数据源到目标的沿袭易于查看。
- 提高数据质量
- 内置数据质量管理,能够指定数据质量期望,提供日志记录和忽略/丢弃/隔离选项——我们以前的实现需要单独的自定义气流任务,有时还需要人工干预来管理数据质量。
使用Databricks SQL
使用Databricks SQL,我们能够为分析人员提供一个SQL接口,直接从数据库中使用数据,而不需要将数据导出到其他工具以供分析使用。它还通过Slack的成功和失败通知为我们提供了对日常管道的增强监控。
使用自动加载器摄取文件
Databricks Auto Loader可以自动将云存储上的文件导入Delta Lake。它允许我们利用结构化流中内置的簿记和容错行为,同时将成本降低到接近批处理。
结论
我们使用Delta Lake、Delta Live Tables、Databricks SQL和Auto Loader在Databricks lakbob体育客户端下载ehouse平台上构建了一个弹性的、可扩展的数据湖。通过消除维护气流实例、管理Spark参数调优和控制依赖关系管理的需要,我们能够显著降低操作开销。
此外,使用Databricks的技术天生就可以协同工作,而不是将许多不同的技术拼接在一起来覆盖我们需要的功能,从而大大简化了工作。操作开销和复杂性的减少极大地加快了我们的开发生命周期,并且已经开始导致业务逻辑的改进。总之,我们的小团队能够利用DLT在更短的时间内交付高价值的工作。
未来的工作
我们有一些即将到来的项目,将我们的机器学习模型转移到湖边小屋,并改进我们复杂的数据科学流程,比如实体解析。我们很高兴能够授权我们组织中的其他团队了解和访问新湖屋中的可用数据。Databricks产品,如Feature Store、AutoML、Databricks SQL、Unity Catalog等,将使Audantic能够继续加速这种转变。
下一个步骤
查看我们的一些资源来开始使用Delta Live Table
- 请注意这个网络研讨会了解Delta Live Tables如何简化数据转换和ETL的复杂性
- 开始使用DLT指南
- 看一下短片Delta Live Tables演示
- 参观Delta Live Tables主页了解更BOB低频彩多