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

partition LIFECYCLE

问题描述

1、按以下SQL创建表,不知每个节点最多保留的分区个数为多少?

CREATE TABLE customer ( customer_id bigint NOT NULL COMMENT '顾客ID', customer_name varchar NOT NULL COMMENT '顾客姓名', phone_num bigint NOT NULL COMMENT '电话', city_name varchar NOT NULL COMMENT '所属城市', sex int NOT NULL COMMENT '性别', id_number varchar NOT NULL COMMENT '身份证号码', home_address varchar NOT NULL COMMENT '家庭住址', office_address varchar NOT NULL COMMENT '办公地址', age int NOT NULL COMMENT '年龄', login_time timestamp NOT NULL COMMENT '登录时间', PRIMARY KEY (login_time,customer_id,phone_num)  ) DISTRIBUTED BY HASH(customer_id) PARTITION BY VALUE(DATE_FORMAT(login_time, '%Y%m%d')) LIFECYCLE 30 COMMENT '客户信息表';  

2、不明确写出,DISTRIBUTED BY HASH语句时,使用show create table customer 查看不出partition 的信息

CREATE TABLE customer ( customer_id bigint NOT NULL COMMENT '顾客ID', customer_name varchar NOT NULL COMMENT '顾客姓名', phone_num bigint NOT NULL COMMENT '电话', city_name varchar NOT NULL COMMENT '所属城市', sex int NOT NULL COMMENT '性别', id_number varchar NOT NULL COMMENT '身份证号码', home_address varchar NOT NULL COMMENT '家庭住址', office_address varchar NOT NULL COMMENT '办公地址', age int NOT NULL COMMENT '年龄', login_time timestamp NOT NULL COMMENT '登录时间', PRIMARY KEY (login_time,customer_id,phone_num)  ) PARTITION BY VALUE(DATE_FORMAT(login_time, '%Y%m%d')) LIFECYCLE 30 COMMENT '客户信息表';  

期望结果

不太明白DISTRIBUTED 和 PARTITION 的关系

已尝试的方法

展开
收起
bka5zdiix6kp6 2022-09-27 14:48:26 108 0
1 条回答
写回答
取消 提交回答
    1. 保留30个分区。可以看下这篇文档中关于partition_options的内容。https://help.aliyun.com/document_detail/123333.html
    2. distributed是分片。parition是分区。先根据DISTRIBUTED BY HASH(column_name,...)中column_name的HASH值进行数据分片,再在每个分片上根据PARTITION BY VALUE(column_name)中column_name的值进行数据分区。
    2022-09-27 15:28:42
    赞同 展开评论 打赏
问答分类:
SQL

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

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载