我对spark+delta有很多疑问。
1) databricks建议使用3层(青铜层、银层、金层),但建议使用哪一层进行机器学习?为什么?我想他们建议把数据整理干净,放在黄金层。
2) 如果我们抽象出这三层的概念,我们能把青铜层看作数据湖,把银层看作数据库,把金层看作数据仓库吗?我是说在功能方面。
3) 三角洲建筑是一个商业术语,或者是kappa建筑的演变,或者是lambda和kappa建筑的新趋势?(delta+lambda架构)和kappa架构之间有什么区别?
4) 在许多情况下,delta+spark的扩展比大多数数据库都要大得多,而且通常要便宜得多,如果我们调整得当,我们可以获得几乎2倍的查询结果。我知道比较实际趋势数据仓库和feature/agg数据存储非常复杂,但是我想知道如何进行比较?
5) 我曾经使用kafka、kinesis或event hub进行流式处理,我的问题是,如果我们用delta-lake表替换这些工具,会发生什么样的问题(我已经知道,一切都取决于许多事情,但我希望对此有一个大致的设想)。
2条答案
按热度按时间p1tboqfb1#
1) 让你的数据科学家来决定吧。他们应该在白银和黄金地区工作,一些更先进的数据科学家会想回到原始数据,解析出可能没有包含在白银/黄金表中的额外信息。
2) 青铜色=原生格式/三角洲湖格式的原始数据。银色=三角洲湖中经过消毒和清理的数据。gold=根据业务需求,通过delta湖访问或推送到数据仓库的数据。
3) delta架构是lambda架构的简单版本。目前,delta架构是一个商业术语,我们将拭目以待将来是否会发生变化。
4) delta-lake+spark是最具扩展性的数据存储机制,价格合理。欢迎您根据业务需求测试性能。delta lake的存储成本将远低于任何数据仓库。您对数据访问和延迟的要求将是一个更大的问题。
5) kafka、kinesis或eventhub是从边缘到数据湖获取数据的源。delta lake可以作为流应用程序的源和汇。实际上,使用delta作为源几乎没有问题。delta-lake源依赖于blob存储,因此我们实际上绕过了基础设施问题的许多问题,但是添加了blob存储的一致性问题。delta-lake作为流式作业的来源比kafka/kinesis/event hub更具可伸缩性,但是您仍然需要这些工具将数据从边缘导入delta-lake。
2hh7jdfx2#
奖章表是基于我们的客户如何使用delta lake的建议。你不必完全遵循它;然而,它与人们设计edw的方式非常吻合。至于机器学习和使用哪个表。这将是进行机器学习的人们的一个选择。有些人可能想访问青铜表,因为这是原始数据,没有对它做任何处理。其他人可能想要银表,因为它被认为是干净的,虽然扩大。通常情况下,黄金表是高度精炼和具体的回答明确界定的业务问题。
不完全是。青铜表是原始事件数据,例如,每个事件或度量值一行等。银色表也处于事件/度量级别,但它们经过高度细化,可以用于查询、报告、 Jmeter 板等。金色表可以是事实和维度表、聚合表或策展数据集。重要的是要记住,delta并不是用来作为一个跨国的oltp系统。它实际上是针对olap工作负载的。
delta体系结构是我们为delta lake的一个特定实现命名的。它本身不是一个商业术语,但希望它能成为一个。有足够的信息来比较和对比kappa和lambda架构。delta架构在delta文档和databricks博客、技术讲座、youtube视频等中都有很好的定义。
我想问你到底想比较什么?速度、功能、产品。。。?
delta lake并没有试图替换任何消息发布/子系统,它们有不同的用例。delta lake可以连接到您提到的作为订阅者和发布者的每个产品。别忘了delta lake是一个开放的存储层,它为数据湖带来了符合acid的事务、高性能和高可靠性。
路易斯。