开发者社区 > 大数据与机器学习 > 大数据计算 MaxCompute > 正文

请问下大数据计算MaxCompute acid2.0表,说明这个pk是分区内才唯一是吗?

请问下大数据计算MaxCompute acid2.0表,按pk更新1条记录的分区字段后,新老分区各会存在1条记录,说明这个pk是分区内才唯一是吗?ca8a36e0ffefdee23c19e1103271d004.png

展开
收起
真的很搞笑 2023-07-11 17:42:27 137 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    MaxCompute ACID 2.0表是指支持原子性、一致性、隔离性和持久性的高可靠性表格,可以保证数据的完整性和一致性。在ACID 2.0表中,每个分区内的数据都有一个自增的64位整数类型的主键(PK),用于唯一标识每条记录。每个分区内的主键是唯一的,不同分区的主键可以重复。
    也就是说,ACID 2.0表的主键是分区内唯一的,同一分区内的不同记录必须具有唯一的主键值,但不同分区的记录可以有相同的主键值。这意味着,如果一个ACID 2.0表是按照时间或者地域等维度进行分区的,那么同一分区内的主键值是唯一的,而不同分区的主键值可以重复。
    需要注意的是,ACID 2.0表的主键并不是必须手动定义的,如果您没有指定主键,MaxCompute会自动为每个分区内的数据生成一个隐含的主键。同时,ACID 2.0表的主键也不是必须使用自增的方式生成,您可以根据实际需要自定义主键生成规则,例如使用UUID或其他算法生成主键。

    2023-07-29 13:08:33
    赞同 展开评论 打赏
  • 在大数据计算MaxCompute的ACID 2.0表中,按照主键(PK)更新一条记录的分区字段后,会导致新旧分区各存在一条记录。这是因为ACID 2.0表支持原子事务和快照隔离级别。

    在ACID 2.0表中,每个分区内的数据是强制唯一的,也就是说,同一个分区内的主键值必须是唯一的。当您对一条记录进行更新时,如果更新操作涉及到了分区字段的修改,MaxCompute会将原始记录标记为过期,并创建一个新的记录,包括新的分区字段值。这样就会导致新、旧分区各保留一条记录。

    需要注意的是,这种行为只适用于ACID 2.0表,并且仅在更新操作涉及分区字段时才会发生。对于其他非分区字段的更新,MaxCompute会直接修改原始记录,而不会创建新的记录。

    总结:在大数据计算MaxCompute的ACID 2.0表中,按照主键更新一条记录的分区字段后,会导致新、旧分区各存在一条记录。这是由于ACID 2.0表的特性以及分区内的主键唯一性要求所致。

    2023-07-28 21:38:40
    赞同 展开评论 打赏
  • pk只是分区内唯一,此回答整理自钉群“MaxCompute开发者社区1群”

    2023-07-11 17:59:59
    赞同 展开评论 打赏

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 相关电子书

    更多
    Data+AI时代大数据平台应该如何建设 立即下载
    大数据AI一体化的解读 立即下载
    极氪大数据 Serverless 应用实践 立即下载