本文为您介绍对分析集群设置库表映射的相关说明和操作。
注意:
未设置库表映射的对象,无法在分析引擎中进行查询。因此在完成对象加载配置后,需要手动设置库表映射。
操作场景
在分析集群中,支持将多个数据源的数据同步到分析集群。当数据加载到分析集群完成后,默认是无法进行查询的,这是因为所有对象均需要存在映射名称,通过映射名称才可以进行查询,因此需要进行库表映射设置。
前提条件
准备好分析集群,请参见 创建分析集群。
已 添加数据源。
已 加载数据到分析集群。
集群状态为运行中。
映射名称说明
在分析集群中,所有对象均是由 TDSQL-C MySQL 版分析集群自动从源端数据库中同步而来。但同步到分析集群中的对象必须使用映射名称进行表对象的数据查看。映射名称支持修改,例如源端的库表名称为“db1.ta2”,同步到分析集群后,可设置名称为"db3.ta3"。
如何查看映射名称
1. 登录 TDSQL-C MySQL 版控制台,在上方选择 MySQL 版(分析集群)。
2. 在左侧集群列表,单击目标集群,进入集群管理页。
3. 在集群详情页下的计算节点下,单击详情,进入实例详情页面。
4. 在对象信息下,可查看到所有同步到分析集群中的库表信息,映射库名和映射表名即为其映射名称。如果字段映射库名和映射表名为空,则代表未设置映射,无法在数据库中进行查询。
说明:
如果存在已同步的对象没有映射名称,则会在映射库名和映射表名前标记红色感叹号,您可通过此标记快速了解是否设置了库表映射。

在修改对象时设置库表映射
1. 在数据对象页面中,单击同步与映射配置,进入配置页面。

2. 在第三步高级映射配置中,您可以设置高级映射配置的策略,不同 LibraDB 内核版本的设置项如下。
4.2509.x 之前的版本

根据默认规则强制设置所有库表映射名:默认规则为将所有同步到分析集群的数据库以“数据库名_实例 ID”格式进行命名。例如数据库 database1 的源端实例为 cdb-af321a3,则激活此按钮后,此数据库的映射名称为“database1_cdb-af321a3”。
与源端库表名称保持一致,重名对象自动取消映射:将加入同步列表中的对象的映射名设置成和源端的库表名一致。由于多源数据合并场景下可能会出现库表名重复的问题,如果出现该问题,重复库表的映射名将置空。后续需要手动进行库表映射设置。
说明:
以上两个选项默认关闭,激活任意按钮后,会将所有已经修改了映射名的对象刷新为对应规则的映射名。建议在初次配置时才选择这两个选项。
4.2509.x 及之后的版本:

注意:
在 4.2509.x 及之后的版本中支持高级映射配置。在此之前的版本仅支持基础映射配置,无法自动对新增对象进行映射匹配。
映射策略可以随时添加和修改,对表同步不造成任何影响,修改映射也不会导致对象重新同步。
基础策略
默认基础策略为激活状态,激活的基础策略会在下方策略表格的首行新增一条策略信息。规则为所有同步到分析集群的对象都将按照原库名和原表名进行映射。当存在库名和表名相同的表时,则会自动合并。如果表结构不一致,则查询会报错。可以手动添加其他高级策略,让指定实例的库表映射为其他名称。
存量对象映射策略
激活此选项代表所有已经同步到分析集群中的对象的映射名称都会按照策略表中的规则进行映射名更新,无论当前是否手动修改过映射名称。
高级策略
单击添加策略,会自动为当前分析集群新增策略,您可以在弹窗中进行配置。策略越靠后,规则优先级越高。其应用逻辑是由上至下进行匹配,如果出现两条规则冲突的场景,则以最下方的规则为准。
添加策略弹窗下的配置如下:
参数 | 说明 |
源实例 | 支持选择“全部”或者“指定的实例 ID”,代表当前规则匹配的实例范围。 |
匹配模式 | 默认为正则匹配模式。 |
源库 | 支持输入源库的正则表达式,所有正则表达式命中的源库都会应用此规则。例如 .* 代表所有库。 |
源表 | 支持输入源表的正则表达式,所有正则表达式命中的源表都会应用此规则。例如 .* 代表所有表。 |
目标库 | 支持输入需要映射的库名称。若勾选“与原对象名保持一致”,则此选项默认为 *,代表同步到分析引擎的映射库名不变。 |
目标表 | 支持输入需要映射的表名称。若勾选“与原对象名保持一致”,则此选项默认为 *,代表同步到分析引擎的映射表名不变。 |
策略规则场景化示例
场景 | 源实例 | 源库 | 源表 | 映射库名 | 映射表名 |
基础规则:按原名映射 | 全部 | .* | .* | * | * |
所有 XX_ 开头的库合并到 XX 库 | 全部 | ^XX_.* | .* | XX | * |
所有 XX 开头的表合并为 XX.XX_TEST | 全部 | .* | ^XX_.* | XX | XX_TEST |
A.A 映射为 B.B | 实例 ID | A | A | B | B |
A 库映射为 B 库 | 全部 | A | .* | B | * |
所有实例的所有库表放到一起 | 全部 | .* | .* | DB2 | * |
指定实例的所有以 T_ 开头的库合并到 XX 库 | 实例 ID | ^T_.* | .* | XX | * |
指定实例的所有以 T_ 开头的表合并为 XX.T_TEST | 实例 ID | .* | ^T_.* | XX | T_TEST |
指定实例的所有库名都映射为 xx_1 | 实例 ID | .* | .* | *_1 | * |
指定实例的 A 库下的表名映射为 B.xxx_1 | 实例 ID | A | .* | B | *_1 |
在对象列表中设置库表映射
如果对象信息列表下,存在对象没有映射名称,则会在对象列表中映射库名和映射表名列标记红色的感叹号。此时单击对应表的操作列下的设置映射,即可为选中的表进行映射名称设置。
注意:
自动映射策略与手动设置库表映射并不冲突,手动设置库表映射是一次性操作,是在自动匹配生效之后进行的临时修改。如果在设置自动映射策略时勾选了“存量对象映射策略”则会让手动映射失效。如果需要固化对象的映射名称,请通过自动映射策略配置映射规则。

批量为对象设置映射名称
如果需要同时为多个对象设置映射名称,可通过多选的方式,勾选需要设置映射名称的多个对象。然后单击对象信息后的设置映射。在设置映射右上方会提示目前已经选中的对象数量。
说明:
单击数量提示,可在弹窗中清空已经选择的对象。

如何判断库表对象是否设置映射名称
如果一个对象未设置映射名称,则会默认将其库名和表名分别填到映射库名和映射表名文本框中。

如果一个对象已经设置过映射名称,则会将其修改后的库名和表名分别显示到映射库名和映射表名文本框中。
