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

ADB中如何新增主键字段?

ADB中如何新增主键字段?

展开
收起
真的很搞笑 2023-05-31 20:38:11 238 0
2 条回答
写回答
取消 提交回答
  • 十年摸盘键,代码未曾试。 今日码示君,谁有上云事。

    在ADB中,实时更新表必须包含主键字段。实时更新表在插入/删除(INSERT/DELETE)数据时,可通过主键来判断相同记录,以确定唯一记录。

    主键组成: 业务 ID + 一级分区键 + 二级分区键。

    某些情况下,业务 ID 会与一级分区键相同。如果表记录数特别大,从存储空间和 INSERT 性能考虑,一定要减少主键的字段数。

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

    ADB的事实表支持二级分区策略,一级分区采用 HASH 算法,二级分区采用 LIST 算法。通过二级分区策略,ADB可将表数据分布到不同的节点。

    在ADB中,设置一级分区的目的是将数据均匀分散到多个 CN 节点当中,以便充分发挥ADB分布式计算的能力。设置二级分区的目的是将数据分散到不同的存储文件上,与传统数据库的分区相似。

    二级分区支持自动清除历史数据。在使用ADB的过程中,您必须防止垃圾数据自动清除有效数据。

    AanlyticDB 内部采用 LIST 算法来划分二级分区,会自动删除多余的分区。

    在ADB中,数据存储支持按一列或多列进行排序(先按第一列排序,第一列相同情况下,使用第二列排序),以保证该列中值相同或相近的数据保存在磁盘同一位置,这样的列称之为聚集列。

    在ADB中,数值类型的处理性能远高于字符串类型,其原因如下:

    数值类型的值定长、占用内存少、存储空间小。 数值类型计算更快,尤其是 JOIN 查询时。

    在ADB中查询数据时,提前进行 optimize table 操作,可提升查询性能。

    ADB支持的 Local-Merge(简称 LM)和 Full MPP Mode(简称 MPP)计算引擎。

    当开启 MPP 引擎时,分析型数据库MySQL版自动对查询(Query)进行路由,并将 LM 引擎不支持的查询路由到 MPP 引擎,以兼顾分析型数据库MySQL版的性能和通用性。

    在新建ADB数据库前,您需要从数据量QPS(Query per Second)和性能 RT(Response Time)两个维度对数据库所要占用的资源进行评估,以给ADB数据库分配最合理的资源量。

    ADB分为高性能和大存储两种机型,对单个物理机器的存储规格如下:

    高性能模型:1 TB/物理机器。 大存储:10 TB/物理机器。

    如果ADB的数据量在百亿以上,物理机器在100台以上,则可以考虑选择大存储模式。但如果查询性能要求较高,则建议选择高性能模式。

    2023-06-01 10:01:09
    赞同 1 展开评论 打赏
    1. ADB支持在线修改分区表的生命周期 ALTER TABLE table_name partitions = N; 这个修改分区数是延迟生效的,会在下次build索引时生效,按照lifecycle清理数据也是在build索引时清理的。
    2. ADB是否支持在线修改分布字段和分区字段? ADB不支持在线修改分布字段和分区字段,如需需要修改分布字段和分区字段,您可以尝试如下办法:先创建临时表,并通过INSERT INTO SELECT命令把原表数据导入到临时表。删除原表后,使用正确的分布字段或者分区字段建表,再次使用INSERT INTO SELECT把临时表数据导入到新建的表。
    3. ADB是否支持修改主键字段? ADB目前不支持修改主键字段,此回答整理自钉群“云数据仓库ADB-开发者群”
    2023-05-31 20:42:21
    赞同 展开评论 打赏

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

相关产品

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

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