删除未使用的数据文件与真空
您可以删除数据文件不再引用的三角洲表保留阈值以上的运行真空
命令在桌子上。运行真空
定期对成本和遵从性很重要,因为以下注意事项:
删除未使用的数据文件云存储成本降低。
数据文件被
真空
可能包含已修改或删除记录。永久删除这些文件从云存储确保这些记录不再访问。
数据文件的默认保留阈值后运行真空
是7天。要改变这种行为,明白了配置数据保留时间旅行的查询。
一些三角洲湖功能使用元数据文件将数据标记为删除而不是重写数据文件。您可以使用REORG表…应用(清洗)
提交这些删除和重写数据文件。看到清洗仅元数据删除重写力数据。
重要的
在砖运行时的13.2及以上,
真空
语义与统一目录管理表浅克隆不同于其他三角洲表。看到真空和统一目录浅克隆。真空
从目录中删除所有文件不是由三角洲湖,忽略目录开始_
。如果你储存额外的元数据是结构化流检查站在三角洲表目录,使用目录名称等_checkpoints
。数据更改数据提要是由三角洲湖和删除管理
真空
。看到使用三角洲湖变化数据以砖。
查询表版本的能力超过保存期丢失后运行
真空
。日志文件后自动删除和异步检查点操作和不受
真空
。虽然日志文件的默认的保持期是30天,运行真空
桌子上删除时间旅行所需的数据文件。
请注意
当启用磁盘缓存时,一个集群可能包含数据从拼花已被删除的文件真空
。因此,它可能会查询以前的表的数据版本的文件已经被删除。重新启动集群将删除缓存数据。看到配置磁盘高速缓存。
例如语法真空
真空eventsTable——真空不是必需的文件版本比默认的保存期真空“/数据/事件”在基于路径表——真空文件真空δ。' /数据/事件/ '真空δ。' /数据/事件/ '保留One hundred.小时——真空所需的文件不超过100小时的旧版本真空eventsTable干运行——做排练要删除文件的列表
火花的SQL语法细节,请参阅真空。
看到三角洲湖API文档Scala的Java、Python语法细节。
清洗仅元数据删除重写力数据
的REORG表
命令提供了应用(清洗)
语法改写数据应用软删除。软删除不重写或删除数据文件的数据,而是使用元数据文件表明,一些数据值已经改变了。看到REORG表。
在三角洲湖创建软删除的操作包括以下:
启用软删除后,旧的数据可能仍在表的当前文件即使在数据已经被删除或更新。身体从表中删除这些数据,请完成以下步骤:
运行
REORG表…应用(清洗)
。这样做之后,旧的数据表中不再存在当前的文件,但它仍然是在旧的文件用于时间旅行。运行
真空
删除这些旧文件。
REORG表
创建一个新版本的表操作完成。历史上所有表版本之前,这笔交易是指旧的数据文件。从概念上讲,这是相似的优化
命令,数据文件重写尽管当前表中的数据版本保持一致。
重要的
数据文件时只删除文件过期的根据真空
保存期。这意味着真空
必须完成后延迟REORG
这旧的文件已经过期。的停留时间真空
可以减少缩短所需的等待时间,减少成本的最大历史留存。
集群真空需要什么尺寸的?
选择正确的集群大小真空
,它有助于理解操作发生在两个阶段:
这份工作首先使用所有可用的执行器节点并行在源目录列表文件。这个列表是相对于目前所有文件中引用三角洲事务日志来识别文件被删除。司机都闲置在这段时间。
司机然后问题删除命令对每个文件被删除。文件删除是司机才操作,这意味着所有操作发生在单个节点,而工人空闲节点。
优化成本和性能,砖推荐以下,特别是对于长期真空工作:
在一个集群上运行真空与伸缩设置为1 - 4工人,每个工人在8核。
8 - 32之间选择一个司机与核心。提高司机的大小以避免出现内存不足(伯父)错误。
如果真空
操作是定期删除超过1万文件或接管30分钟的处理时间,您可能想要提高司机的大小或工人的数量。
如果你发现经济放缓出现在识别文件被删除,添加更多的工作节点。如果经济放缓出现删除命令运行时,试着增加司机的大小。
你应该运行真空的频率?
砖建议定期运行真空
所有表,以减少多余的云数据存储成本。真空的默认保留阈值是7天。设定更高的门槛让你获得更大的历史表,但增加了数据文件存储的数量,因此,从云提供商带来更大的存储成本。