=====这是一个广告位,招租中,联系qq 78315851====
1 条回复 A 作者 M 管理员
  1. 目前只能重建表,先创建一个新的主键表,然后使用INSERT OVERWRITE INTO SELECT将源表的数据导入到新的主键表中,然后重命名互换表名。重建表的流程同更改分区键/分布键:https://www.www.tongchenyun.com/wp-content/uploads/aliyun/2023/1128/alter-table](https://www.www.tongchenyun.com/wp-content/uploads/aliyun/2023/1128/wyvq5mjsckydw_8fb8073780714131a7d3dc8aebaf3a54.png)
    ,此回答整理自钉群“云数据仓库ADB-开发者群”

  2. ADB分析型数据库,是阿里云平台上资源,原名叫云原生数据仓库AnalyticDB Mysql,俗称ADB分析型数据库,云原生数据仓库AnalyticDB MySQL版支持通过ALTER TABLE修改表。

    AnalyticDB MySQL集群不支持更改分区键和分布键。如果您的业务必须更改分区键或分布键,可通过以下方案解决。

    假设您有一个表order需要将现有分布键order_id更改为customer_id,操作如下:

    使用分布键customer_id创建一个临时表order_auto_opt_v1。

    使用INSERT OVERWRITE INTO SELECT将源表的数据导入到临时表,

    判断分布键是否合理。数据导入后,需要判断新的分布键是否有数据倾斜问题,详情请参见分布字段合理性诊断。

    使用RENAME TABLE <源表表名> to ;更改源表表名。

    使用RENAME TABLE <临时表表名> to <源表表名>;将临时表表名更改为源表表名。

    主键:表必须包含主键。由业务id、一级分区键组成,有些情况业务id与一级分区相同。对于记录量特别大的表,从存储空间和insert性能考虑,一定要减少主键的字段数。

    维度表组(系统自带):自带维度概念的表(例如省份表等),可以放到维度表组下,数据库创建完毕后,系统会默认创建一个维度表组,所有维度相关的表,可以放到维度表组下。

    更新数据:AnalyticDB不支持update操作,可以通过主键覆盖的方式进行insert操作来实现和update同等的功能。