为您的数据湖带来可靠性、性能和安全性

三角洲湖:你湖屋的基础

可按需

作为开放格式存储层,Delta Lake为数据湖提供了可靠性、安全性和性能。在实施Delta Lake后,客户的数据处理速度加快了48倍,洞察时间缩短了50%。

观看现场演示,了解三角洲湖:

  • 解决传统数据湖的挑战-为您提供更好的数据可靠性,支持高级分析并降低总体拥有成本

  • 为具有成本效益,高度可扩展的湖屋建筑提供了完美的基础

  • 提供审计和治理功能,以简化GDPR合规性

  • 为我们的客户极大地简化了数据工程

演讲者:

Himanshu拉贾

产品管理,数据库

山姆Steiny

产品营销,数据库

布兰诺Heintz

产品营销,数据库

负责人芭芭拉Eckman

软件架构师,康卡斯特

成绩单

山姆·斯泰尼:嗨,欢迎来到Databricks活动,三角洲湖,你湖屋的基础。我叫Sam Steiny,在Databricks公司从事产品营销工作,主要研究数据工程和Delta Lake。我很高兴今天来到这里。我将成为今天活动的MC,我将指导你们完成今天的环节。我们越来越多地看到“湖屋”这个词在新闻、科技博客和思想领导力中被引用。除了我们在Databricks的工作之外,各行各业的组织都越来越多地将湖屋作为统一分析、数据科学和机器学习的未来。bob体育亚洲版

山姆·斯泰尼:在今天的活动中,我们将看到Delta Lake的概述,它是数据湖的安全数据存储和管理层,真正构成了湖屋的基础。我们将看到Delta Lake的实际演示,我们将听到康卡斯特如何利用Delta Lake为他们的数据带来可靠性、性能和安全性。我们将以现场问答的形式结束今天的活动,所以,请准备好你的问题,我们将尽可能多地回答你。所以,在我们开始做一些简单的家务之前,今天的会议已经被记录下来了。因此,任何注册的人都可以按需使用。

山姆·斯泰尼:还有,如果你在整个活动中有任何问题,请随时将它们添加到问答框中。我们会尽量实时回答这些问题。但我们也会回答剩下的问题,以及在会议结束时的现场问答中任何额外的问题。所以,在我们开始演讲之前,我想在我们最近发布的一个视频中简要介绍一下德尔塔湖。这将让你对三角洲湖有一个高层次的了解,在三角洲湖产品经理Himanshu将更详细地介绍三角洲湖以及它是如何形成湖屋的基础的。

提问者3:今天的企业有能力收集比以往更多的数据。这些数据包含了对你的业务和客户的宝贵见解,如果你能解锁的话。正如大多数组织所发现的那样,将数据转化为见解并不是一件简单的任务。今天的数据有各种各样的格式,视频、音频和文本。数据湖已经成为事实上的解决方案,因为它们可以以较低的成本存储这些不同的格式,并且不像数据仓库那样将业务锁定在特定的供应商。但传统的数据湖存在挑战,因为数据湖以不同的格式积累数据,保持可靠的数据具有挑战性,并且经常会导致不准确的查询结果。

提问者3:不断增长的数据量也会影响性能,降低分析和决策的速度,而且由于很少有审计和治理功能,数据湖很难得到适当的保护和治理。面对所有这些挑战,多达73%的公司数据没有用于分析和决策,其中的价值从未实现。三角洲湖解决了这些挑战。Delta Lake是您的数据湖的数据存储和管理层,使您能够在整个组织中扩展洞察,为所有数据工作负载提供可靠的单一真实来源,包括批处理和流处理,通过高级索引和模式强制等性能特性优化大规模速度,提高工作效率。

演讲者3:在Apache parquet格式存储的开源环境中灵活操作,通过快速准确地bob下载地址更新数据湖中的数据来降低风险,并通过审计日志维护更好的数据治理。通过使用Delta Lake解锁数据,您可以直接在数据湖上执行ETL过程,从而极大地简化数据工程。为数据分析、数据科学和机器学习即时提供新的实时数据,让您对可靠地满足GDPR和CCPA等合规标准的能力充满信心。

发言者3:Delta Lake on Databricks以开放的格式为您的数据带来可靠性、性能和安全性,使其成为具有成本效益、高度可扩展的湖屋架构的完美基础。三角洲湖,开放、可靠、高性能、安全的湖屋基础。

山姆·斯泰尼:很好。那么,有了这样一个高层次的观点,现在你对Delta Lake有了一个了解,现在我要把它交给Himanshu Raja,他是Databricks公司Delta Lake的产品经理。他将深入研究三角洲湖,并解释它如何真正为我们的客户提供湖屋。交给你了,希曼舒。

Himanshu Raja:谢谢你,Sam。我非常高兴来到这里和你们谈谈三角洲湖,以及为什么它是建造湖屋的正确基础。在今天的会议中,我将介绍构建数据分析堆栈的挑战,而lakehouse是唯一的未来证明解决方案。三角洲湖是什么?为什么它是你湖屋最好的地基?Brenner将会进入最激动人心的部分做一个演示。在会议结束后,您将有足够的上下文,支持材料的链接开始并构建您的第一个数据湖。

Himanshu Raja:每个公司都感觉到了成为数据公司的吸引力,因为当大量数据被应用到即使是简单的模型时,用例的改进是指数级的。在Databricks,我们的全部重点是帮助客户应用数据解决他们最棘手的问题。我将以康卡斯特(Comcast)和Nationwide这两家这样的客户为例。康卡斯特是一家媒体公司的一个很好的例子,它成功地采用了数据和机器学习,为观众创造了新的体验,有助于提高满意度和留存率。

Himanshu Raja:他们已经建立了一个声控遥控器,允许你对着遥控器说话,问它一个问题,它会提供一些真正相关的结果,利用自然语言处理和深度学习等技术。他们把所有这些都建立在Databricks平台之上。bob体育客户端下载全美保险公司是全美最大的保险公司之一,他们发现数据可用性的爆炸式增长和日益激烈的市场竞争对他们提出了挑战,要求他们为客户提供更好的定价。通过分析全国范围内下游ML的数亿个保险记录,他们意识到他们的遗留批处理分析过程缓慢且不准确,为预测索赔的频率和严重程度提供了有限的见解。

Himanshu Raja:通过Databricks,他们已经能够大规模使用深度学习模型来提供更准确的定价预测,从而从索赔中获得更多收入。由于这种潜力,83%的首席执行官表示人工智能是战略重点也就不足为奇了。根据麻省理工学院斯隆管理评论(MIT Sloan management review)发布的一份报告,Gartner预测人工智能将在短短几年内创造近万亿美元的商业价值。但这很难做到。Gartner称85%的大数据项目将会失败。Venture Beat发布了一份报告,称87%的数据科学项目从未投入生产。因此,虽然一些公司取得了成功,但大多数公司仍在挣扎。

Himanshu Raja:所以,故事从数据仓库开始,这很难让人相信。即将迎来40岁生日。数据仓库出现于80年代,是专门为BI和报告而构建的。随着时间的推移,他们已经变得必不可少,今天地球上的每个企业都有很多这样的人。然而,它们并不是为现代数据用例而构建的。它们不支持视频、音频或文本等数据。对现代用例至关重要的数据集。它必须是非常结构化的数据,只能用SQL查询。因此,数据科学或机器学习没有可行的支持。此外,它不支持实时流。 They are great for batch processing, but either do not support streaming or can be cost prohibitive.

Himanshu Raja:因为他们是封闭的专有系统,他们强迫你锁定你的数据,所以你不能轻易移动数据。因此,今天所有这些的结果是,大多数组织将首先将所有数据存储在数据湖和块存储中,然后将其子集移动到数据仓库中。所以,当时的想法是,潜在的数据湖可能是我们所有问题的答案。数据湖大约在10年前出现,它们很棒,因为它们确实可以处理所有数据。他们在那里是为了数据科学和机器学习用例。对于很多企业来说,数据湖是一个很好的起点。

Himanshu Raja:但是,他们不能支持数据仓库或BI用例。数据湖的设置实际上比数据仓库要复杂得多。我们的仓库有很多熟悉的支持语义,比如资产事务。对于数据湖,您只是在处理文件。所以,这些抽象没有提供,你真的必须自己构建它们。而且它们的设置非常复杂。即使你做了所有这些,性能也不是很好。你只是在处理文件,就这样。在大多数情况下,客户最终会得到很多小文件,即使是最简单的查询也需要您列出所有这些文件。这需要时间。

Himanshu Raja:最后,当谈到可靠性时,他们也不是那么好。实际上,我们在数据湖中有更多的数据,而不是仓库,但这些数据可靠吗?我能保证模式保持不变吗?对于分析人员来说,将一堆不同的模式合并在一起是多么容易啊。所有这些问题的结果是,数据湖变成了不可靠的数据沼泽,你拥有所有的数据,但却很难从中得到任何意义。因此,可以理解的是,在没有更好的选择的情况下,我们在大多数组织中看到的是一种共存的战略。

Himanshu Raja:所以,这就是数据沼泽的样子。有大量不同的工具来支持业务单元或组织所需的每种架构。你必须连接一大堆不同的开源工具。bob下载地址在左侧的数据仓库堆栈中,您经常要处理专有的数据格式。如果您希望启用高级用例,则必须将数据移到其他堆栈。管理成本高,资源密集。结果是什么呢?因为系统是孤立的,团队也会变得孤立。沟通变慢,阻碍了创新和速度。

Himanshu Raja:不同的团队通常会得出不同版本的真相。其结果是数据的多个副本、没有一致的安全治理模型、封闭的系统和不连接的、效率较低的数据团队。那么,我们如何做到两全其美呢?我们需要数据仓库中的一些东西,我们需要数据湖中的一些东西。我们想要数据仓库的性能和可靠性,我们想要数据湖的灵活性和可伸缩性。这就是我们所说的湖屋模式。这里的想法是数据在数据湖中,但现在我们要添加一些组件,这样我们现在就可以从仓库中进行所有的BI和报告,从数据湖中进行所有的数据科学和机器学习,还支持流分析。所以,让我们建一个湖边小屋。建造湖边小屋需要什么东西?

Himanshu Raja:我们说过,我们希望所有的数据都在一个真正可扩展的存储层中。我们想要一个统一的平台,我们可以做多个用例。bob体育客户端下载我们可以实现多个用例。因此,我们需要在数据存储层之上有某种事务性的层。所以,你真正需要的是像资产合规性这样的东西,这样当你写数据时,它要么完全成功,要么完全失败,而且事情是一致的。结构事务层就是数据湖。我们谈到的另一个要求是性能。所以,为了支持不同类型的用例,我们需要非常快。我们有很多数据需要处理。因此,有了数据引擎,这是一个高性能的查询引擎,它是Databricks创建的,以支持不同类型的用例,无论是SQL,数据科学,ETL, BI报告,流,所有这些东西都在引擎之上,使它非常非常快。

Himanshu Raja:那么,让我们深入研究一下什么是数据湖。数据湖是一个开放、可靠、高性能和安全的数据存储和管理层,用于您的数据湖,使您能够创建真正的单一真相来源。由于它是在预算有限的情况下构建的,因此您可以构建高性能的数据管道来清理从原始注入到业务级聚合的数据。由于采用了开放格式,因此可以避免不必要的复制和专有锁定。最终,数据湖提供了解决下游数据用例所需的可靠性、性能和安全性。接下来,我将讨论数据湖的每一个好处。使用数据湖获得的首要好处是分析堆栈中的高质量可靠数据。

Himanshu Raja:让我谈谈三件关键的事情。首先是资产交易。第二个是模式强制和模式演变。第三个是统一的批处理和流处理。因此,对于资产事务,Delta采用全有或全无的资产事务方法,以确保在数据湖上执行的任何操作要么完全成功,要么被中止,以便可以重新运行。在模式强制方面,Delta Lake使用模式验证,这意味着在正确的时间检查表的所有新权限是否与目标表模式兼容。如果模式不兼容,Delta Lake将完全取消事务,不写入任何数据,并引发异常让用户知道不匹配。

Himanshu Raja:我们最近也引入了模式进化的功能,我们可以在数据进入时动态地进化模式,特别是在数据是半结构化或非结构化的情况下。你可能不知道数据类型是什么,甚至在很多情况下,不知道进来的列是什么。我想讲的第三件事是统一批处理和流处理。Delta能够同时处理批处理数据和流数据,包括能够并发地将批处理数据和流数据写入同一个数据表。Delta Lake直接集成spark结构化流以实现低延迟更新。

Himanshu Raja:这不仅使系统架构变得更简单,不再需要构建Lambda架构。它还缩短了从数据摄取到查询结果的时间。Delta Lake的第二个关键优势是性能,闪电、快速的性能。数据分析堆栈的性能有两个方面。一个是如何存储数据,另一个是查询期间的性能,在运行时。那么,让我们讨论一下他们的数据是如何存储的,以及Delta是如何优化数据存储格式excel的。Delta提供了开箱即用的功能,以最佳方式存储数据以供查询。其中一个功能是,数据按照多个维度自动结构化,以实现快速查询性能。Delta还具有数据跳过功能,其中Delta维护文件统计信息,以便使用与查询相关的数据子集,而不是整个表。

Himanshu Raja:我们不需要去阅读所有的文件。可以根据统计数据跳过文件。然后是自动优化,优化是一组功能,自动将小文件压缩成更少的大文件,这样查询性能就可以开箱即用。它在写入过程中支付了一个小的暂停来抵消,并在请求期间为表提供了很大的好处。这就是关于如何存储数据的部分。现在,让我们讨论Delta引擎,它在实际查询数据时发挥作用。数据引擎有三个关键组件提供超快的性能,光子,查询优化器和缓存。Photon是一个原生矢量化引擎,与Apache spark完全兼容,与spark 2.4相比,可以将所有结构化和半结构化工作负载加速超过20倍。

Himanshu Raja: Delta引擎的第二个关键组件是查询优化器。查询优化器扩展了Spark基于成本的优化器和具有高级统计数据的自适应查询执行,为数据仓库工作负载提供比Spark 3.0快18倍的查询性能。Delta引擎的第三个关键组件是缓存。Delta引擎自动缓存IO数据,并将其转换为CPU效率更高的回退,以利用nbmsts提供比Spark 3.O快5倍的表扫描性能。它还包括用于查询结果的第二个缓存,可以立即为任何后续的rap提供结果。这提高了重复查询(如仪表板)的性能,其中底层表不会频繁更改。

Himanshu Raja:那么,让我谈谈三角洲湖的第三个主要好处,那就是提供大规模的安全和合规。Delta Lake让您能够快速准确地更新数据湖中的数据,遵守GDPR等法规,并通过审计日志维护更好的数据治理,从而降低风险。让我谈谈两个具体的特性,时间旅行和稳定的基于角色的访问控制。通过时间旅行,Delta自动对存储在数据湖中的大数据进行版本化,并允许您访问该数据的任何历史版本。这种临时数据管理简化了您的数据管道,使其易于审计,回滚数据,以防意外写入或删除错误,并重现实验和报告。

Himanshu Raja:您的组织终于可以标准化一个干净的集中式版本,在您自己的云存储中为您的分析提供大数据存储库。我想讲的第二个特性是基于表和角色的访问控制。在数据湖中,您可以基于特定的工作空间或角色以编程方式授予和撤销对数据的访问权,以确保用户只能访问您希望他们访问的数据。Databrick是一个广泛的合作伙伴生态系统。bob体育外网下载客户可以根据自己的需求启用各种安全性和治理功能。

Himanshu Raja:最后,三角洲湖最重要的好处之一是,它是开放和灵活的。Delta Lake是一种与其他开源技术合作的开放格式,避免了供应商锁定,并开放了整个工具社区和生态系bob下载地址统。Delta Lake中的所有数据都以开放的Apache parquet格式存储,允许任何兼容的读取器读取数据。开发人员可以将他们的Delta Lake与现有的数据管道一起使用,只需进行最小的更改,因为它与spark完全兼容。最常用的大数据处理引擎。Delta Lake还支持SQL DML,使客户能够简单、轻松地将SQL工作负载迁移到Delta。

Himanshu Raja:那么,让我们谈谈我们看到的客户是如何利用Delta Lake进行一些用例的,其中主要是改进数据管道,大规模地进行ETL,统一批处理和流式处理,直接与Apache spark结构化流集成来运行批处理和流式工作负载,在Lambda架构中,使用我们的Delta引擎在数据湖中进行BI,超级快速,就绪的性能。您不需要在数据湖和数据仓库之间做出选择。正如我们在湖边小屋中谈到的那样,您可以直接在数据湖上进行BI,然后通过保留历史数据变化记录来满足GDPR等标准的监管需求。这些用户是谁?

Himanshu Raja:世界上一些最大的财富100强公司正在使用这个数据湖。我们的客户包括Comcast、Wirecomm、Conde Nast、McAfee、Edmonds。事实上,Databricks所有的数据分析都是使用数据湖完成的。所以,我想深入探讨,想谈谈星巴克的用例,让你们了解我们的客户是如何在他们的生态系统中使用数据湖的。星巴克今天确实需要在他们的应用程序上预测和个性化他们的客户体验。他们的架构实际上正在努力处理为下游ML和分析调整的pb级数据,他们需要一个可伸缩的平台来支持整个组织的多个用例。bob体育客户端下载

Himanshu Raja:通过Azure Databricks和Delta Lake,他们的数据工程师能够在同一个平台上构建支持批处理和实时工作负载的管道。bob体育客户端下载他们让数据科学团队能够混合各种数据集,创建改善客户体验的新模型。最重要的是,数据处理性能显著提高,允许他们在几分钟内部署环境并提供洞察。所以,让我总结一下数据湖能为你做什么,为什么它是你湖屋的正确基础。正如我们发现的那样,通过使用Delta Lake,您可以在整个组织中提高分析、数据科学和机器学习,使团队能够协作,并确保他们使用可靠的数据来提高决策速度。

Himanshu Raja:您可以简化数据工程,以最佳的价格性能降低基础设施和维护成本,并且可以通过数据湖启用多云安全基础设施平台。bob体育客户端下载那么,如何开始数据湖呢?这实际上非常简单,如果你已经在Azure或AWS上部署了Databricks,现在是GCP,如果你用DBR部署了一个集群,也就是Databricks发布的8.0或更高版本,你实际上不需要做任何事情。Delta现在是所有创建表和数据帧api的默认格式。但我们也有很多资源供您试用和学习。

Himanshu Raja:实际上,部署你的第一个数据湖并使用笔记本电脑构建一个非常酷的仪表盘是非常有趣的。如果你之前没有尝试过Databricks,你可以注册一个免费试用帐户,然后你可以按照我们的入门指南。Brenner很快会做一个演示来展示我们讲过的功能。那就交给你了,山姆。

山姆·斯泰尼:太棒了。谢谢你,希曼舒。太棒了。现在,在过去的舞台上,布伦纳·海因茨和布伦纳将带我们进行一个演示,真正地将三角洲湖带入生活。现在,您已经听说了它是什么以及它有多强大,让我们看看它的实际应用。交给你了,布伦纳。

Brenner Heintz:我叫Brenner Heintz。我是Databricks的技术PMM,今天我将向您展示Delta Lake如何为您的湖屋建筑提供完美的基础。我们将做一个演示,我将从从业者的角度向你们展示它是如何工作的。在此之前,我想强调一下三角洲湖小抄。我和我的几个同事一起工作过,这里的想法是能够为像你这样的从业者提供一个资源,能够快速轻松地跟上三角洲湖的速度,能够非常非常快地使用它。我们在这个笔记本中提供了大部分(如果不是全部的话)命令,它是小抄的一部分。所以,我强烈建议你下载这个笔记本你可以直接点击这个图片,它会直接带你到备考单,提供一个带Python的Delta Lake页面和一个带Spark SQL的Delta Lake页面。

Brenner Heintz:首先,为了使用Delta Lake,你需要能够将数据转换为Delta Lake格式。我们能够做到这一点的方法不是说parquet作为你的create table的一部分或者你的Spark数据帧写入命令,你所要做的就是把它和单词Delta放在一起,这样就可以马上开始使用Delta Lake。让我们看看它是什么样子的。在Python中,我们可以使用Spark以拼花格式读取数据。例如,您还可以以CSV或其他格式读取数据。Spark在这方面非常灵活。然后我们简单地把它写成这样的形式。

Brenner Heintz:我们要把数据保存在贷款表中。我们可以用SQL做同样的事情。我们可以使用create table命令,使用Delta将表保存为Delta格式。最后,convert to Delta命令可以很容易地将数据转换为Delta Lake格式。现在,我们已经向您展示了如何将数据转换为类似Delta的格式,让我们来看看Delta Lake表及其外观。我已经运行了单元格。我们的贷款Delta表中有14,705个批记录。今天,我们正在处理来自贷款俱乐部的一些数据,您可以在这里看到当前属于我们表的列。

Brenner Heintz:所以,我继续往我们的桌子上放了一些正确的流。这里的想法是向您展示Delta Lake表能够处理批处理和流数据,并且它们能够直接集成这些数据,而不需要任何额外的配置或其他任何需要的东西。例如,在实时数据中集成这两个批处理,不需要构建Lambda体系结构。三角洲湖表可以很容易地同时管理。因此,如您所见,我们每秒向现有的Delta Lake表写入大约500条记录。我们使用了两个不同的编写器,只是为了向您展示,您可以同时从Delta Lake表中读取和写入与资产事务一致的数据,从而确保您永远不会处理破坏表状态的管道中断。

布伦纳·海因茨:三角洲湖的一切都是交易。这让我们能够在不同的读者和作者之间建立隔离。这是非常强大的,它为我们省去了很多麻烦和时间来弥补我们可能犯的错误如果我们没有酸性交易的话。因此,正如我所承诺的,这两个流写入已经被耦合。我还创建了两个流读取,以近乎实时地向您展示表中发生的事情。所以,我们在这里有最初的14,705个批记录。但从那时起,我们有大约124000条流媒体记录进入了我们的表。

Brenner Heintz:这本质上是相同的图表,但向你展示了在每个10秒窗口内发生的事情,这些柱状图代表了一个10秒窗口,正如你所看到的,自从我们的流开始以来,每个流在任何时候都有大约5000条记录写入我们的表中。所以,所有这些只是说Delta Lake是一个非常强大的工具,允许您轻松地集成批处理和流数据直接开箱即用。它很容易使用,你可以马上开始使用。为了锦上添花,我们添加了一个批处理查询,并使用Databricks内置的可视化工具绘制了它,这些工具非常简单,允许您快速可视化事情。

Brenner Heintz:现在,我们已经向您展示了用Delta Lake集成批处理和流数据是多么容易,让我们来谈谈数据质量。您需要模式强制和模式进化之类的工具来强制表中的质量。这样做的原因是您不想要上游数据源、添加额外列、删除列或在您不知情的情况下更改模式。因为这会导致管道中断,进而影响所有下游数据表。因此,为了避免这种情况,我们可以首先使用模式强制。这里我创建了这个新数据,数据帧包含了一个新列,信用评分列,这在当前表格中不存在。

Brenner Heintz:因为Delta Lake在运行这个命令时提供了模式强制,所以我们得到一个异常,因为Delta Lake检测到了模式不匹配。这是一件好事。我们不希望数据成功地写入Delta Lake表,因为它不符合我们的期望。然而,只要我们意识到并有意地迁移我们的模式,我们就可以通过向写入命令添加一个命令来实现,我们包括merge schema选项。现在,额外的那一列成功地写到我们的表中,我们也能够进化我们的模式。现在,当我们尝试选择表中的记录时,在我们的新数据表中,你可以看到那些记录实际上已经成功地写入到表中,新的信用评分列现在也出现在我们的表的模式中。

Brenner Heintz:所以,这些工具给你,它们非常强大,它们允许你加强你的数据质量,你需要的方式,为了把你的数据从原始的非结构化数据转换为高质量的结构化数据,这是为下游应用程序和用户准备的。现在,我们已经讨论了模式实施和模式演变,我想继续讨论Delta Lake时间旅行。时间旅行是三角洲湖的一个强大功能。因为Delta Lake中的所有事情都是一个交易,我们在事务日志中跟踪所有在Delta Lake表中发生的交易,这允许我们回到过去并在任何时间点重新创建Delta Lake表的状态。

Brenner Heintz:首先,让我们看看它是什么样的。因此,在任何时候,我们都可以通过运行这个describe history命令来访问事务日志。如你所见,表的每一个版本都代表了某种交易,某种对表的改变。所以,我们最近的改变是,我们用Delta Lake表的新列来颠覆那些全新的记录。你可以在这里看到这个交易,在那之前我们有一些流媒体更新。所有发生在我们表中的权利都被添加为事务。基本上,这允许你返回并使用版本号或时间戳,然后在任何时候查询Delta Lake表的历史版本。这是非常强大的,因为您甚至可以做一些创造性的事情,比如将当前版本的表与以前的版本进行比较,以查看从那时起发生了什么变化,并沿着这些思路做其他类型的事情。

Brenner Heintz:让我们开始吧。让我们看一下,我们将使用时间旅行来查看表的原始版本,也就是版本0。这应该只包括我们开始时的14,705条记录,因为在表的版本0时,我们根本没有将任何新记录流到表中。正如你所看到的,在原始版本中,这14705条记录是唯一存在于0的记录。这里也没有信用评分列,因为在版本0中,我们还没有进化出Delta Lake表模式。

Brenner Heintz:那么,将14,705条记录与我们表中当前超过326,000条记录的数量进行比较。最后,使用Delta Lake时间旅行可以做的另一件事是恢复任何给定时间点上的表的以前版本。这真的很强大,如果你无意中删除了一列,或者无意中删除了一些记录,你总是可以返回并使用restore命令,让你的表的当前版本恢复到你的数据在给定时间戳或版本号时的状态。因此,正如您所看到的,当我们运行这个命令来将表恢复到0的原始状态版本时,我们已经能够成功地做到这一点。现在,当我们查询它的时候,我们只得到这14,705条记录作为表的一部分。

Brenner Heintz:接下来,我认为开发人员、数据工程师和其他数据从业者在构建他们的湖屋时真正寻找的功能之一是能够运行简单的DML命令,只需一两行代码,能够执行删除、更新、合并、插入等操作。在传统的数据湖上,这些根本是不可能的。使用Delta Lake,您可以运行这些命令,它们只需以事务方式工作。它们非常非常简单。因此,当您使用这些简单的命令时,管理更改数据变得非常非常容易。

Brenner Heintz:让我们看一下,我们将选择用户ID 4420作为我们的测试用例,我们将使用修改他们的数据来向你展示Delta Lake可以做什么。如您所见,它们目前存在于我们的表中,但如果我们运行这个delete命令并指定特定的用户,当我们运行该命令并从我们的表中选择所有用户时,我们现在没有结果。删除成功。接下来,当我们查看所描述的历史命令时,事务日志(您可以看到我们刚刚执行的删除现在出现在我们的表中)。你还可以看到我们做的恢复,跳回到表的原始版本,版本0,也出现了。如果我们想这样做的话,我们也可以直接将记录插入到我们的表中。

Brenner Heintz:在这里,我们将使用时间旅行来查看0时的版本,即删除该用户之前表的原始版本,然后将该用户的数据插入其中。现在,当我们运行select all命令时,用户再次出现在我们的表中。insert into命令工作得很好。接下来,是更新命令。如果需要进行行级更改,则更新非常有用。这里,我们将把用户的资金金额改为22000。实际上我们把它设为25000,看起来之前已经是22000了。

Brenner Heintz:我们会更新这个数字,然后当我们查询表格时,实际上,用户的资金金额已经成功更新。最后,在三角洲湖你有能力做非常非常强大的合并。您可以有一个充满更改数据的表,例如表示对Delta Lake表的插入和更新。有了德尔塔湖,你就可以上插了。对于想要写入Delta Lake表的数据帧中的每一行,如果该行已经存在于表中,您可以简单地更新该行中的值。然而,如果该表中不存在该行,则可以插入它。

Brenner Heintz:所以,这就是所谓的upsert,这是完全可能的,而且在三角洲湖非常非常容易。它们让管理三角洲湖变得非常非常简单。因此,首先我们创建一个快速数据帧,其中只有两条记录,我们希望将用户4420的数据添加回我们的表中。然后我们还创建了一个用户,其用户ID小于100万。所以是999999。这个用户目前不在我们的表中。我们要插入它们。这就是我们的数据帧。如你所见,我们有一个更新或插入。当我们运行merge into命令时,Delta Lake能够识别已经存在的行,比如用户4420,以及那些不存在的行。 And when they don’t exist, we simply insert them.

Brenner Heintz:所以,正如你所看到的,这些更新和插入成功地进行了,Delta Lake在upserts方面没有任何问题。最后,我想指出的最后一件事是Delta Lake提供的一些特定性能增强。但也是数据库的一部分,只有三角洲湖。我们有几个命令,目前只有Databricks和Delta Lake。首先是真空命令。vacuum命令查看当前是表的一部分的文件,并删除当前不是表的一部分的任何文件,这些文件已经存在了您指定的保留期。因此,这允许你清理旧版本的表,这些旧版本超过了特定的保留期,并通过这种方式节省了云计算成本。

Brenner Heintz:你可以在Databricks Delta Lake上做的另一件事是,你可以在内存中缓存特定命令的结果。因此,如果您有一个特定的表,您的下游分析人员总是倾向于按照特定的维度进行分组,您可以缓存该SQL命令,它总是比它出现得快得多,例如,这样它就能够避免对您的数据进行完整的读取。您还可以使用Z顺序优化命令,这非常强大。Z顺序优化本质上是查看数据表的布局,并找出在不同文件中定位数据的最佳方法。它基本上以优化的方式布局您的文件,这允许您节省云存储成本,因为它的布局方式通常比您开始时要紧凑得多。它还会优化这些表的读写吞吐量。

Brenner Heintz:它非常强大。它加快了查询结果的速度,最终节省了存储和计算成本。这就是演示。我希望你喜欢这个演示。再一次,看看我们将作为描述的一部分发布的Delta Lake备忘单,或者在下面的演示中作为聊天的一部分。所以,非常感谢。我希望你们喜欢这个演示。查看Delta Lake,并在GitHub、Slack或作为我们邮件列表的一部分加入我们。非常感谢。

山姆·斯泰尼:太棒了。谢谢你,布伦纳。那真是太棒了。我很高兴芭芭拉·埃克曼能加入我们。Barbara是Comcast的高级首席软件架构师,她将与Delta Lake分享她的经验,以及与Databricks的合作是如何对她的日常工作和Comcast业务产生影响的。非常感谢你的到来,芭芭拉。你的到来让我们超级兴奋。

芭芭拉·艾克曼:大家好。很高兴来到这里。希望你们一切都好。在康卡斯特,我要讲的是自助式计算机环境中的混合云访问控制。我想简单地提一下,康卡斯特非常认真地履行对客户的承诺,保护他们的数据。我是康卡斯特的一员,我们称之为数据体验大数据组。在这种情况下,大数据不仅意味着公共云,还包括现场数据。所以,我们有一个异构的数据集,这提供了一些挑战,挑战很有趣,对吧?我们的愿景是将数据视为企业资产。这不是一个新想法,但它很重要。

芭芭拉·埃克曼:我们的使命是通过自助服务平台、数据发现传承、管理治理、工程服务,以及所有这些重要的事情,为康卡斯特企业提供动力,使人们能够以重要的方式真正使用数据。bob体育客户端下载我们知道,许多人都有强大的商业洞察力,最强大的洞察力来自于集成数据的模型,这些模型跨越了竖井。改进客户体验和业务价值的见解。这对企业意味着什么这里有一些例子。基本上,这是基于我们从传感器和康卡斯特网络捕获的大量遥测数据。我们捕捉诸如延迟、流量、信噪比、下游和上游、错误率以及其他我甚至不知道它们是什么意思的东西。

芭芭拉·埃克曼:但这使我们能够做一些改善客户体验的事情,比如规划网络拓扑,如果有一个地区有大量的流量,我们可能会改变政策来支持它。尽量减少卡车滚动,当康卡斯特的有线电视男或有线电视女来你家时,我们称之为卡车滚动。在新冠疫情时期,我们真的希望将这种情况降至最低。如果我们可以提前分析数据,我们也许可以做出任何调整或建议用户可以做出的调整,以最大限度地减少人们来他们家的需求。

Barbara Eckman:由于这些数据,我们可以在用户知道之前监控、预测问题并纠正它们,这涉及到遥测数据,并将其与整个企业的其他类型的数据集成。然后优化区域或整个家庭的网络性能。所以,现在这是非常重要的东西,它真的帮助了客户。我们正在努力让这种情况更加普遍。那么,是什么让你的生活变得艰难?这是一份职业声明。如果你想谈谈个人,是什么让你的生活变得艰难?我们可以稍后再做,但作为数据专业人员,是什么让您的生活更困难?

芭芭拉·埃克曼:人们通常会说,“我需要找到数据。因此,如果我要跨竖井集成数据,我需要找到它。我知道它在我自己的筒仓里,但也许。”我们的方法是元数据搜索和发现,这是通过Elasticsearch实现的。然后,一旦我找到了我可能感兴趣的数据,我就需要理解它的含义。因此,人们所称的帐户ID可能与您习惯称为帐户ID、账单ID或后台办公室帐户ID的帐户ID不同,需要知道它的含义以便能够加入它,与富兰克林数据相反,富兰克林数据是没有真正适当地加入的怪物数据。我们需要知道是谁制作的,它来自机顶盒。它是否来自第三方,当它通过康卡斯特,通过特尼特,通过卡夫卡或Kinesis传播时,有人接触了它,然后可能有人用其他数据丰富了它。

芭芭拉·埃克曼:然后它降落在一个数据湖。数据湖中数据的用户想知道数据来自哪里,以及谁添加了哪些部分。你可以看到,发布者看着数据湖中的数据说,“这看起来很奇怪,这有什么问题?谁把我的数据弄乱了?”他也可以说,或者他们也可以说,“哇,这真是太丰富了。我要感谢那个人。”使用数据的人也想知道该向谁提问。你用什么来充实它?这些数据是从哪里来的?所有这些在做积分的时候都很有帮助。 That’s data governance and lineage, which we do in Apache Atlas.

Barbara Eckman:那是我们的元数据和谱系存储库。一旦你找到了数据并理解了它,你就必须能够访问它。我们通过Apache Ranger及其由Privacera提供的扩展来做到这一点。一旦您访问了它,您就需要能够在整个企业范围内对它进行集成和分析。所以,最后,现在我们得到了能够真正得到数据的好东西。我们使用Databricks进行自助计算。Databricks是一个非常强大的工具。最后,我们发现对于重要的操作,我们确实需要资产遵从性。我们在三角洲湖就是这样做的。所以,我可以更详细地谈论这个,当这个顶部或在提问环节。

芭芭拉·埃克曼:我是一名建筑师。所以,我必须有总线和线形图。因此,这是我们混合云解决方案的高级视图。所以,收入传递给我们的数据中心,我们有一个Hadoop数据湖,包括Hadoop Ranger和Apache Atlas一起工作。我们,和许多公司一样,正在逐步淘汰这种做法,但不是马上,这需要一段时间。我们有一个Terra数据,企业数据仓库。同样,我们也在考虑将其迁移到云端,但不一定是完全迁移到云端,而可能是迁移到另一个本地资源,比如对象存储。我们使用MinIO,它给我们混合这个对象,让它看起来像S3。因此,当我们喜欢在S3上使用spark作业时,也可以在我们的预数据存储上运行。

芭芭拉·埃克曼:当然,这是一个很大的优势。为此,我们有一个Ranger数据服务来帮助访问控制。在云端,我们使用AWS,尽管Azure在康卡斯特也有很大的影响力。而Databricks计算是这里的中心。我们用它来访问kineesis。红移只是,我们才刚刚开始。我们使用Delta Lake和S3对象存储,我们有一个Ranger插件,由Databricks和Privacera精心创建,这样我们的自助Databricks环境就可以拥有运行Privacera提供的访问控制所需的所有nit脚本和配置。

芭芭拉·埃克曼:我们也使用Presto,为了我们的联邦查询功能,它也有一个Ranger插件和所有应用于元数据的标签,这些元数据是建立在策略之上的,或者是在Apache Atlas和Ranger和Atlas中同步的。这就是Ranger如何知道对什么数据应用什么策略。在提问环节,如果你想深入了解这些问题,我很乐意回答。这对我来说很令人兴奋,我们刚刚推出了这个,它很优雅,我没有创造它,所以我可以这么说。因此,Ranger分析一起提供了基于声明性策略的访问控制。正如我所说,Privacera扩展了Ranger,它最初只能通过插件和代理在Hadoop中工作。我们使用的一个关键的工具,当然是在这三个环境中都使用的数据库。基本上我喜欢的是我们真的有一个护卫队来统治所有的护卫队阿特拉斯是他的小伙伴,因为他或她提供了标签,为我们的访问控制提供了真正的动力。

芭芭拉·埃克曼:这又是一个图表。我们有一个门户,我们为我们的自助服务应用程序和用户标签,带有标签的元数据,比如这是PII,这是一个视频域,诸如此类的东西。它进入Atlas,标签和元数据关联与Ranger同步,基于它的策略。那么,谁得到CPI?谁能看到视频域数据?这些都是同步和兑现的插件范围。然后当用户调用应用程序时,无论是Databricks中的云应用程序,还是on-prem应用程序,应用程序都会问Ranger,“这个用户是否有权限对这些数据做他们要求做的事情?”如果答案是肯定的,而且非常快,因为这些是插件。如果答案是肯定的,他们就能进入。

芭芭拉·埃克曼:如果没有,那么他们会得到一个错误消息,我们也可以屏蔽和显示数据,如果有人可以访问许多列,但不是所有的列,我会说一个粘合表,我们可以屏蔽那些他们没有访问的数据,仍然给他们允许看到的数据。最近我们真的需要酸的依从性。所以,传统的大数据湖是写一次,读多次。有线电视世界的机顶盒里有数据流,这些不是事务性的,不是事务性的数据。这是我们所习惯的,但是现在我们越来越多地发现我们需要从parquet文件或其他文件中删除特定的记录。我们可以在Spark中做到这一点,但它的性能非常糟糕。这当然是可以做到的,但事实证明三角洲湖做得更好。

芭芭拉·埃克曼:删除的性能更好,你可以看到过去数据湖状态的快照,这真的非常棒。所以,我们真的在朝着,我喜欢这个词,一个湖屋能够做,写一次,读很多,酸都在一个地方。这在很大程度上要归功于数据湖。这就是我。如果你愿意,请给我发电子邮件。如果你们有任何问题,我很乐意在现场回答。非常感谢大家的聆听。

山姆·斯泰尼:谢谢你参加这次活动,芭芭拉。太棒了。很高兴听到康卡斯特的故事。好了,让我们来回答一些问题。我们将进入现场问答环节。所以,请把你的问题加到问答中。

看现在