内容纲要
概要描述
本文主要描述 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后重新保存发布以重新启用自动清理中间表和视图。
