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

云数据仓库ADB若第一天我写入数据并创建出10个分区,第二天我再创建1个分区,那被删除的分区是哪个?

"问题1:云数据仓库ADB设置分区键的问题,LIFECYCLE 设为10,如果第一天我写入数据并创建出10个分区,然后第二天我再创建1个分区,那被删除的分区是哪个?
问题2:那么LIFECYCLE =10,第一天创建的10个分区,全部都是10天的生命周期?https://help.aliyun.com/zh/analyticdb-for-mysql/developer-reference/create-table?spm=a2c4g.11186623.0.0.20617b0ezueFxe 按这里的文档,LIFECYCLE 是限制每个节点的分区上限。那么在我的例子,第一天创建10个分区已经达到上限,再继续创建分区的话就需要删除老分区。在你们的例子中,是一天创建1个分区,这很好理解,那自然是删除最早的一天的分区。但在我的例子中,我1天创建了10个分区,并达到LIFECYCLE设定的分区上限,官方文档有这么两段话,那一段比较准确?一:LIFECYCLE 365表示每个节点最多保留的分区个数为365,即如果数据保存天数为365天,则第366天写入数据后,系统会自动删除第1天写入的数据。二:您可以通过LIFECYCLE N关键字实现表生命周期管理,即对分区进行排序,超出N的分区会被过滤。
c83e79f9f6fac16ccb02cfef83a5721a.jpg
e7c19ac40a9a40d5880831dd189598e4.jpg
"

展开
收起
十一0204 2023-08-08 23:21:01 120 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在云数据仓库ADB中,如果你将分区的LIFECYCLE设置为10,并在第一天写入数据并创建了10个分区,然后在第二天创建了一个新分区,那么被删除的分区将是最早的一个分区。

    ADB的分区按照分区键的值进行排序,并根据LIFECYCLE参数设置保留的分区数量。当新的分区创建时,系统会检查现有的分区数量是否超过LIFECYCLE设置的值。如果超过了LIFECYCLE设置的值,系统会删除最早的一个分区。

    在你的情况下,由于LIFECYCLE设置为10,当第二天创建新分区时,系统会检查分区的数量是否已经超过10个。如果超过了,那么最早的一个分区将被删除,以保持总分区数不超过10个。

    2023-08-16 19:19:16
    赞同 展开评论 打赏
  • 意中人就是我呀!

    "回答1: https://help.aliyun.com/zh/analyticdb-for-mysql/use-cases/schema-design?spm=a2c4g.11186623.0.i12
    可以看考一下文档。
    回答2:
    建表时设置LIFECYCLE 10,表示每个节点最多保留的分区个数为10,即如果数据保存天数为10天,则第11天写入数据后,系统会自动删除第1天写入的数据。建表时设置好的生命周期,如果要修改为11,需要alter table去修改,修改后手动触发build任务,任务结束后生效。 此回答整理至钉群“云数据仓库ADB-开发者群”。"

    2023-08-09 11:03:31
    赞同 展开评论 打赏

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

相关产品

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

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