[英]Databricks / Spark storage mechanism for Delta Tables, Delta Logs, Partitions etc
我试图了解如何在 DataBricks 环境中存储和管理数据。 我对幕后发生的事情有相当不错的了解,但在网上看到了一些相互矛盾的信息,因此希望得到详细的解释以巩固我的理解。 要问我的问题,我想总结一下我在 Apache Spark 开发人员课程中的练习之一中所做的工作。
作为练习的一部分,我在 Databricks 平台上执行了以下步骤:
完成上述步骤后,我的 DBFS 目录如下所示:
在我用来存储增量表(上图)的根文件夹中,我有以下类型的文件夹/文件
基于上述练习,以下是我的问题:
我在网上看到的一些答案说所有分区都存储在内存(RAM)中。 按照这种逻辑,一旦我关闭集群 - 它们应该从内存中删除,对吗?
但是,即使我关闭集群,我也能够查看 DBFS 中的所有数据(与我上面包含的图片完全相同)。 我怀疑一旦关闭集群,RAM 就会被清除,因此我应该看不到 RAM 中的任何数据。 我的理解不正确吗?
如果您能尽可能详细地按顺序回答我的问题,将不胜感激。
当您将数据写入DBFS时,它会存储在与集群分开的某种形式的永久对象存储中。 这就是集群关闭后它仍然存在的原因。 这是什么存储取决于您运行 Databricks 工作区的云。
这是分离计算和存储的主要思想,您的集群是其他地方的计算和存储。 只有当您读入并处理数据时,它才会分布在您的节点上进行处理。 一旦您的集群关闭节点上的所有数据,RAM 或磁盘就会消失,除非您已将其写入某种形式的永久存储。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.