我们的组织在Azure上运行Databricks,数据科学家和;分析员主要为笔记本电脑,以便进行特别的分析和探索
我们还为不需要spark的ETL工作流运行Kubernetes集群
我们希望使用Delta Lakes作为我们的存储层,在这里,Databricks和Kubernetes都可以作为一等公民进行读写。
目前,我们的Kubernetes作业直接将拼花写入blob store,还有一个额外的作业,用于启动databricks集群,将拼花数据加载到Databrick的表格式中。这既慢又贵
我想做的是直接从Kubernetes python写入Delta lake,而不是先将拼花文件转储到blob存储,然后触发额外的Databricks作业将其加载到Delta lake格式。
相反,我还想利用Delta lake从Kubernetes查询
简言之,如何设置Kubernetes python环境,使其能够平等地访问现有的Databricks Delta Lake进行写操作&;查询?
如蒙惠顾,不胜感激
您可以通常可以使用Delta connector for Spark写入增量表。只需使用necessary packages and configuration options启动Spark作业:
并以与在Databricks上相同的方式写入:
但是通过使用OSS版本的Delta,您可能会失去一些仅在Databrick上可用的优化,例如,Data Skipping,等等。在这种情况下,从Kubernetes写入的数据的性能可能会更低(实际上取决于如何访问数据)
可能有这样一种情况:您无法写入由Databricks创建的增量表,即该表是由writer以OSS Delta connector支持的更高版本写入的(请参见Delta Protocol documentation)。例如,当您在Delta表上启用Change Data Feed时会发生这种情况,该Delta表在写入数据时执行附加操作
除了Spark之外,还计划为基于JVM的语言实现所谓的Standalone writer(除了现有的Standalone reader)。还有一个用Rust实现的delta-rs project(带有Python和Ruby的绑定),应该能够写入Delta表(但我自己还没有测试过)
相关问题 更多 >
编程相关推荐