库表合并

最近更新时间:2025-07-07 17:12:22

我的收藏
在分析集群中,支持将多个数据源端中的多个对象进行库表合并,本文将详细介绍如何配置库表合并。

前提条件

准备好分析集群,请参见 创建分析集群
集群状态为运行中。

合并库

将对象同步到分析集群后,如果需要将多个源端数据库实例的数据放到分析引擎中的同一个数据库下,则可以使用合并库功能实现。
1. 登录 TDSQL-C MySQL 版控制台,在上方选择 MySQL 版(分析集群)
2. 在左侧集群列表,单击目标集群,进入集群管理页。
3. 在集群详情页下的计算节点下,单击详情,进入实例详情页面。
4. 对象信息下,选中所有需要合并库的表,然后单击上方的设置映射

5. 在弹窗中,开启合并库的按钮,单击校验。则当前被选中的所有对象的映射库名都将合并为第一行对象中设置的映射库中。


合并表

将对象同步到分析集群后,如果需要将多个表结构相同的表合并为一张表。则可以使用分析集群的合并表功能实现。
合并表功能有几点使用要求:
必须保证合并表之间的表结构一致。
必须保证待合并的表都同步到分析集群。
当对源端表进行 DDL 操作时,在分析集群中默认无法查询合并表。必须要等待合并表的所有原表的表结构保持一致后才可查询和使用。
注意:
在分析集群中,如果对合并表的源端表进行 DDL 变更,例如:添加列,修改列,删除列等操作系统会有两种处理策略。
悲观协调模式:合并表存在任意一个源表的表结构与主表的表结构不同时,则会无法查询。默认采用此处理策略。
乐观协调模式:合并表始终基于主表的表结构为准,不会影响合并表的查询。此选项默认关闭,如需开启,请 提交工单 申请。
操作步骤
1. 登录 TDSQL-C MySQL 版控制台,在上方选择 MySQL 版(分析集群)
2. 在左侧集群列表,单击目标集群,进入集群管理页。
3. 在集群详情页下的计算节点下,单击详情,进入实例详情页面。
4. 对象信息下,选中所有需要合并的表,然后单击上方的设置映射
5. 在弹窗中,开启合并表的按钮,单击校验。则当前被选中的所有对象的映射库名都将合并到第一行对象中设置的映射表中。

说明:
分析集群的映射名称可以随时修改,表合并也可以随时修改或者取消合并,修改后立即生效。
合并到已存在的表:若勾选此项,并选择了其他库名和表名,则代表需要将当前已经选择的所有表合并到其他表中。
添加虚拟列:若勾选此项,则代表为合并后的表新增一个虚拟列,虚拟列会为每一行记录添加一个标识,用以标识此数据的数据源。填充值可自定义,默认为实例 ID。
注意:
_libra_aggid 字段默认为 varchar 类型,支持各类 varchar 类型所支持的表达式与函数,但是能做到高效表数据裁剪的只有等于、不等于、in。
select * from database.merge_table;
+----+------+-------------------+
| id | c1 | _libra_aggid |
+----+------+-------------------+
| 1 | 1 | cdb-adf3123 |
| 2 | 2 | cdb-adf3123 |
| 1 | 1 | cdb-bda41ag |
| 2 | 2 | cdb-bda41ag |
| 1 | 1 | cdb-zd3123d |
| 2 | 2 | cdb-zd3123d |
+----+------+-------------------+
6 rows in set(0.01 sec)
主表:在多表合并场景下,需要设定合并的表中的某一个表为主表。在分析引擎中进行合并表的查询的表结构将以主表为准。主表可以在使用过程中随时修改。