在云数据仓库ADB中如何设计AnalyticDBMySQL表结构,分布键,分区键-选择分区键 ?
设计AnalyticDB for MySQL表结构时,应考虑:
表类型:复制表适合小量数据,普通表(分区表)适合大量数据。
分布键:选择值分布均匀的字段,如交易ID、设备ID,避免日期时间字段,以避免写入倾斜和查询效率降低。
分区键:可根据业务需求,如日期时间字段,使用PARTITION BY VALUE设置年、月、日或原始值分区。
确保分区粒度适中,避免影响写入和查询性能。
分区应保持静态,避免频繁更新。
举例来说,创建一张按登录时间分区的表:
CREATE TABLE customer (
...
login_time timestamp NOT NULL,
PRIMARY KEY (login_time, customer_id),
DISTRIBUTED BY HASH (customer_id)
) PARTITION BY VALUE (DATE_FORMAT(login_time, '%Y%m%d'))
LIFECYCLE 30;
此表按login_time分区,生命周期30天,customer_id为分布键。可参考.云原生数据仓库AnalyticDB MySQL版 表结构设计
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。