Skip to content

feat: 更多数据源的库表智能扫描任务 #3249

@actiontech-bot

Description

@actiontech-bot

需求描述

为更多数据源类型实现库表元数据扫描任务(SchemaMeta AuditPlan)。

当前仅支持 MySQL、PostgreSQL、DB2、TDSQL For InnoDB 的库表元数据扫描,需要扩展支持以下数据源:

  • Oracle — 通过 Plugin.Query() + DBMS_METADATA.GET_DDL 获取建表 DDL
  • OceanBase For MySQL — 复用 MySQL executor 直连方式
  • TiDB — 复用 MySQL executor 直连方式
  • OceanBase For Oracle — 通过 Plugin.Query() + Oracle 兼容系统视图获取 DDL
  • DM(达梦) — 通过 Plugin.Query() + DBMS_METADATA.GET_DDL 获取建表 DDL
  • SQL Server — 需先在 sqle-ms-plugin 中启用 OptionalModule.Query,再通过系统视图拼接 DDL
  • openGauss / GaussDB — 复用 PostgreSQL 实现(需确认插件可用性)

实现方案

每个数据源新增一个文件 task_type__schema_meta_ee.go,嵌入 BaseSchemaMetaTaskV2 基类,只需实现 extractSQL() 和 InstanceType() 方法。

分阶段实施

  • P0(高优先级):TiDB、OceanBase For MySQL、Oracle
  • P1(中优先级):OceanBase For Oracle、DM(达梦)
  • P2(低优先级):SQL Server(需插件改造)、openGauss(需确认插件)

涉及文件

  • sqle-ee/sqle/server/auditplan/meta_ee.go — 注册新任务类型
  • sqle-ee/sqle/server/auditplan/task_type_*_schema_meta_ee.go — 各数据源实现(新增 7 个文件)
  • sqle-ms-plugin — SQL Server 插件需启用 Query 模块(P2 阶段)

详细方案设计见 docs/spec/requirements.md。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions