人工智能 频道

Databricks CTO Matei Zaharia 的十几个问题

Matei Zaharia 是一个非常忙碌的人。当他没有作为首席技术官帮助塑造 Databricks 的未来时,他正在作为斯坦福大学的助理教授帮助塑造计算机科学的未来。他还抽出时间研究和帮助 Apache Spark,这是他最著名的开源项目。

在Databricks和斯坦福大学的繁忙日程中,Zaharia 很乐意花一些时间在上个月在旧金山举行的 Data + AI 峰会上回答Datanami的问题。这是按主题排列的那次采访的精简版。

关于 Presto 和在开放生态系统中工作

“人们使用 Presto 和 Databricks 已经很长时间了。这有点微妙,人们有时会对此感到困惑。确实,我们为您提供了很多包含在我们产品中的电池。如果你正在建立一个新的数据项目,你想要一个计算引擎,你想要一个 UI,你想要笔记本,模型服务,等等——我们在我们的平台上有这些。

“但与此同时,Lakehouse 的全部意义在于,在这些开放格式和开放 API(如 Spark)的基础上构建,许多其他人将构建有趣的应用程序,您也可以在您的数据上运行这些应用程序。因此,例如使用 Presto,从一开始您就可以将 Presto 与 Databricks 一起运行……它们相互连接。他们共享一份数据。他们都可以就地工作。在许多其他领域,我们的合作伙伴可以处理各种工作负载,从机器学习到 BI 再到其他任何东西——流媒体。他们都融为一体。”

关于开放表格式的重要性

“当我们启动 Delta Lake 时,我们只是将它作为产品中的一个功能开始,我们看到它非常有用,因为它为您的数据湖添加了事务和数据版本控制以及类似的功能,几乎每个客户都在采用它。每个人都在问我如何获得外部工具来使用它?所有这些开源的东西,比如 PyTorch 或 TensorFlow——所有这些工具都在那里。这就是我们决定开放格式的原因。

“很难拿走专有的东西并立即释放所有东西。所以有一段时间我们有一些扩展,主要是围绕性能,没有开放。但我们一直想鼓励这个生态系统,我们认为这是正确的下一步,我们为此投入了工作。”

关于私下开发功能,然后开源它们

“Spark 最初是加州大学伯克利分校的研究产品。实际上,我们在伯克利开发了一段时间。我们在公共 GitHub 上没有它。但是我们在那里有用户,当它变得足够好时……我们说,嘿,这实际上很有用,我们希望外部人员使用它。我们发布了它。

“即使是 Hadoop,如果你还记得一开始的时候,很多开发都是在雅虎或 Facebook 中进行的。Facebook 自己开发了 Hive,然后在它已经工作之后将其开源。考虑它的方式是,特别是作为一家企业公司,[是]你想要发布你可以在未来继续支持的东西。最糟糕的是你告诉别人,嘿,这样去做,然后一年后,他们说我们取消了!我们想弃用它。因此,我们希望确保事情经过测试并且足够稳定,以便我们愿意承诺。”

关于开源创新的未来

“我认为不同类型的项目可以以不同的方式开始。对于已经建立的东西——比如 Delta Lake 和 Spark 中的所有新功能——我们从一开始就在那里构建了其中的许多功能。但是对于一个全新的概念,比如 Delta Lake,“嘿,这就是你管理所有数据的方式。” 如果人们开始采用它真的很冒险,然后它实际上是错误的设计,你必须告诉他们迁移。这是一个挑战。这是公司正在解决的问题。”

“我们看到许多其他公司希望深入参与 [开源] 开发过程。我认为我们现在看到 [in Spark] 大约三分之二的贡献来自 Databricks 外部,我们预计这一数字会增加。我们还想给他们一个非常简单的方法来做到这一点,他们知道那里的一切,他们可以计划一切如何整合。我们所有的路线图也是公开的,所以我们可以讨论,我们现在想这样做。人们会说,你能不能等着放点别的东西,或者别的什么。”

关于 Delta Lake 选择 Linux 基金会而不是 Apache 软件基金会

“它们都是很棒的开源托管基金会。在 Linux Foundation 中,我们看到了很多有趣的云和 AI 项目——例如,Kubernetes 就在其中——我们希望确保与这些项目很好地集成。这就是我们追求它的原因。对于每个项目,我们都会把它放在我们认为最有意义的地方。例如,对于 Spark 中的很多东西,显然我们正在向 Apache Spark 添加模块和东西。”

Apache Spark 项目的现状

“发生了很多事情。我们实际上是在谈论我们想要贡献大量工程资源的两项工作。其中之一是流媒体,通过我们所谓的 Project Lightspeed 提高流处理性能、可操作性和功能。”

“这对我们来说是一个非常令人惊讶的事情。我们在我们的平台上播放了一段时间。我们没有一个庞大的工程团队来处理它。这只是一种工作。然后,当我们查看使用指标时,我们发现它的增长速度非常快。在过去三年中,它的使用量实际上增长了 9 倍。实际上,它的增长速度比我们的批处理作业、交互和其他东西要快,这对于基本上他们说没有那么多工程投入的东西来说非常酷。”

在 Apache Flink 上 Spark 结构化流

“[Spark Structured Streaming 和 Flink 之间] 肯定存在差异。我们正在密切关注这一点。他们确实迎合了略有不同的观众。所以对于结构化流,正如我所说,如果您从批处理查询或交互式查询开始将其转换为流,我们希望使其变得非常容易,所以我们优先考虑的第一件事是您可以多么容易地编写作业。

“使用 Flink,使用它的团队通常更先进。他们是希望对所有内容进行细粒度控制的工程师,他们通常会从中挤出非常低的延迟。它通常在延迟方面——不是在吞吐量方面,而是在延迟方面——比 Spark 更好。因此,我们正在研究如何改善延迟和吞吐量 [使用 Project Lightspeed],同时保持易用性并增加可操作性。

“高级 API 是另一种,高级窗口等等。这些是我们没有使用的东西,我们正在添加......基本上我们想要亚秒级的延迟,即使对于非常复杂的查询也是如此。现在,对于大多数类型的查询来说,很容易得到大约一分钟的延迟。我们认为我们可以将它们中的许多提升到亚秒级。”

2022 年是流数据最终爆发的一年

“这可能需要一段时间。但我们看到了非常有趣的迹象。我们看到的一件事基本上是我们的工作负载的两位数百分比是流媒体。几年前情况并非如此。所以肯定会增加。越来越多的企业希望使用他们的数据构建运营应用程序,这是一种趋势。不是每个人。

“推动它的往往是这些应用程序。就像说我正在运行流媒体电影服务,我想实时推荐东西或修复质量问题,相反,我认为很多人认为我看到的任何类型的 BI 或仪表板都会神奇地变成流媒体并且更快。那没有那么有用。这是一种不错的选择。但是对于这些可操作的,你必须让它工作。如果你正在流式传输视频,几分钟后人们就会离开——这就是驱动它的原因。”

无论 Apache Graph 发生了什么

“它还在附近。它是一种叫做 GraphFrames 的东西。但它并没有那么多新的活动。我们仍然看到它的用法。这可能会有所收获,但我们还没有在那里做过任何超级大的事情。”


“但它就在那里。它实际上受益于 Photon 之类的东西。在底层,它进行了大量的连接和 SQL 计算,因此它确实从中受益。但我们并没有在那里做一些巨大的新努力。”

关于数据重力与。数据孤岛

“有一点细微差别。我确实认为世界正在分裂,尤其是在地理上。跨地理边界移动有关数据的任何数据非常困难。而且它会变得更加困难。所以你确实需要将你的计算和机器学习以及所有这些东西部署到许多区域。这确实带来了新的挑战。这是我们对我们的产品跨云等工作感到兴奋的原因之一,即使您在不同地区有不同的供应商,您实际上也可以做到这一点。

“但与此同时,如果你在一个区域内思考,很多企业计算正在迁移到云中。与您用于管理 IT 的方式相比,云中真正不同的是您的所有计算,您的所有数据都在该数据中心内的同一个非常快速的网络上。例如,从历史上看,也许您有两个部门,每个部门都建立了一个数据仓库,并且每个部门都为此付费。他们每个人都有自己的集群。很难将两者联系起来并在它们之间进行搜索并将它们结合起来。

“在云中,没有理由,因为它们都只是 S3 中的一些存储桶——你没有理由不能完成工作,扫描两者中的数据,然后将它们组合起来。这就是为什么我们首先押注开放格式。如果您有一个使用 Databricks 的团队和一个使用 Presto 的团队,他们都可以看到彼此的数据,而我们刚刚开始为您提供将所有数据联合在一起并将所有数据组合在一个界面中的功能。所以我认为这是一个改变。有如此多的公司在这些开放格式上构建,如此多的软件——即使是主要的云供应商,他们都支持 Parquet、Delta Lake 之类的东西。”

关于本地 Databricks 环境的可能性

“我们确实支持 [多云]。我们现在不提供 Databricks 本身。但是我们可以通过所有这些云到本地链接进行连接,并且您可以以合理的性能访问这些数据。

“我们一直在调查是否也应该提供本地 [产品]。而现在,我们发现我们可以通过连接数据的能力和开放的 API,如 Spark,您可以在 prem 或 Databricks 上运行相同的工作。但我们必须看到。


Project Lightspeed 旨在改善 Spark Structured Streaming 的延迟 (Peshkova/Shutterstock)

“对于多云,我们看到了很多需求。我们投资的其中一件事是对 Terraform 的非常好的支持。它来自Hashi Corp。基本上,这是一种将软件部署到不同云中并实现自动化的方法。如果您想在三个不同的云区域中部署相同的应用程序,您可以编写一个脚本,我可以连接到每个区域,它就可以做到。这是一个我们确实与之集成的开源项目。所以我们确实看到人们以这种方式管理多云部署。”

数据结构和数据网格的兴起

“我们确实试图支持它……它们更像是架构,或者组织应该如何管理内部工作的模式。比如你们是怎么组队的?贵公司有一个中央数据团队,还是有多个?

“而且我们更像是一个技术平台,因此我们希望支持所有这些不同的模式。其中一些你需要一些技术,所以我们正在投资其中一些。例如,使用我们的治理层 Unity Catalog,您可以将部分目录的所有权委托给不同的个人,这样他们就可以各自拥有自己的部分,并且仍然可以组合它们。我们还有我们的数据共享协议 Delta Sharing。这让你,即使你有完全不同的 Databricks 部署,甚至是其他软件,你仍然可以在它们之间共享数据。”

“我们没有特定的数据网格管理层。我们拥有可用于构建数据网格架构的低级技术位...... 我确实认为即使是构建数据网格的组织,他们也希望将数据放在相同的数据中心和相同的云区域中,因为它们在它们之间结合的速度和成本很低。更多的是关于所有权。这就是它的意义所在。这有点像软件中的微服务。过去每个人都必须将代码添加到一个巨大的应用程序中,[那] 发布东西的速度非常慢。现在人们拥有这些不同的东西,他们可以各自管理。


0
相关文章