Inceptor/ArgoDB/Quark 中出现未被清理的数据加载临时表

  使用配置, 性能相关
内容纲要

概要描述

本文主要描述 Inceptor / ArgoDB 或 Quark 数据库的 default 库下包含名称前缀为tdt_rock_table_tdt_rock_view_的表或视图的原因和处理方法。

详细说明

这些表是什么

tdt_rock_table_开头的表,通常是TDS数据加载任务中,执行引擎端(通常是 Inceptor / ArgoDB / Quark )连接第三方数据库的 JDBC 表。tdt_rock_view_开头的视图,通常是TDS数据加载任务中用到的数据转换中间视图。在默认配置下,它们都会在加载任务运行时被创建,且在加载任务运行结束后被删除。

为什么会有残留

如果发现 Inceptor / ArgoDB 或 Quark 数据库的 default 库下包含名称前缀为tdt_rock_table_tdt_rock_view_的表或视图,可能是以下原因导致的:

  • 当前还有正在运行或调试中的加载任务,这种情况下是正常的,中间表和视图的清理动作会在运行或调试结束时进行。
  • 存在加载任务调试时,手动将tdt.job.cleaning服务参数改为false的情况,这种情况下本次调试的中间表和视图将不会在调试结束时被清理。
  • 存在加载任务的参数配置里的tdt.job.cleaning服务参数配置为false的情况,这种情况下该任务运行的中间表和视图将不会在运行结束时被清理。
  • 存在加载任务运行结束前,Transporter服务出现异常导致中间表和视图没有按预期被清理的情况。
  • 这些前缀为tdt_rock_table_tdt_rock_view_的表或视图并非由 TDS 自动创建,而是用户或其他应用程序创建的名称类似的表,这种情况需要用户自行确认请注意,本文讨论的这些表和视图均指 TDS 自动创建的标准场景。

如何清理这些表

可以通过在这个 Inceptor / ArgoDB / Quark 数据库中执行这个SQL:

select 'drop table ' || table_name || ';' from system.tables_v where table_name like 'tdt_rock_%';

这样可以拼出清理所有名称前缀为tdt_rock_table_tdt_rock_view_的表或视图的语句,在default库下执行拼出来的语句即可完成清理。但需要注意,建议用户自行对每张要被清理的表人工确认,避免业务表被误清理。

同时建议需要在没有加载任务运行时操作,否则该操作可能导致正在运行或调试的加载任务执行失败。

操作完成后,也建议检查是否有参数配置里的tdt.job.cleaning服务参数配置为false的加载任务,建议修改为true后重新保存发布以重新启用自动清理中间表和视图。

file

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。