开发者社区 > 数据库 > 数据仓库 > 正文

请问下,ADB 的表改字段要怎么改,我改了提示报错?

请问下,ADB 的表改字段要怎么改,我改了提示报错?image.png

展开
收起
真的很搞笑 2023-06-13 13:38:52 122 0
2 条回答
写回答
取消 提交回答
  • 目前只能重建表,先创建一个新的主键表,然后使用INSERT OVERWRITE INTO SELECT将源表的数据导入到新的主键表中,然后重命名互换表名。重建表的流程同更改分区键/分布键:https://help.aliyun.com/document_detail/123430.html?spm=a2c4g.92664.0.i3![image.png](https://ucc.alicdn.com/pic/developer-ecology/wyvq5mjsckydw_8fb8073780714131a7d3dc8aebaf3a54.png)
    ,此回答整理自钉群“云数据仓库ADB-开发者群”

    2023-07-20 16:24:32
    赞同 展开评论 打赏
  • 十年摸盘键,代码未曾试。 今日码示君,谁有上云事。

    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 <new_源表表名>;更改源表表名。

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

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

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

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

    2023-06-13 13:59:11
    赞同 1 展开评论 打赏

阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。

相关产品

  • 云原生数据仓库 AnalyticDB PostgreSQL版
  • 相关电子书

    更多
    消电行业数据中台解决方案白皮书 立即下载
    (终极版)2020阿里云金融数据中台报告 立即下载
    2020年中国乳制品行业数据中台研究报告 立即下载