云数据仓库ADB假如设置30个分区,hot_partition_count也设置成30行不行?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在云原生数据仓库AnalyticDB(ADB)中,设置分区数量为30个,并将hot_partition_count
也设置为30是可行的,但需要根据具体的业务场景和存储策略来评估其合理性和影响。
冷热分层存储策略通过将查询频率高的分区(热分区)存储在高性能的SSD上,而将查询频率低的分区(冷分区)存储在低成本的OSS上,从而在性能和成本之间取得平衡。
- STORAGE_POLICY='MIXED'
表示启用冷热混合存储策略。 - hot_partition_count=N
定义了热分区的数量,按分区键值从大到小排序,最大的N个分区为热分区,其余为冷分区。
hot_partition_count=30
的影响如果表的分区总数为30,并且hot_partition_count
也设置为30,则意味着所有分区都被视为热分区,数据将全部存储在SSD上。这种配置实际上等同于将存储策略设置为HOT
,即全表数据都存储在高性能存储介质上。
SELECT * FROM information_schema.storage_policy_modify_progress WHERE table_schema='<schema_name>' AND table_name='<table_name>';
hot_partition_count
的值必须是正整数,且不能超过实际分区的总数。如果分区总数为30,则hot_partition_count
的最大值也为30。hot_partition_count
设置为与分区总数相同的值(如30)。但需权衡存储成本。hot_partition_count
,以充分利用冷热分层存储的优势,降低存储成本。以下是一个创建表并设置冷热分层存储策略的示例,假设分区总数为30,hot_partition_count
也设置为30:
CREATE TABLE customer (
customer_id BIGINT NOT NULL,
login_time TIMESTAMP NOT NULL,
city_name VARCHAR NOT NULL
)
DISTRIBUTED BY HASH(customer_id)
PARTITION BY VALUE(DATE_FORMAT(login_time, '%Y%m%d')) LIFECYCLE 30
STORAGE_POLICY='MIXED' HOT_PARTITION_COUNT=30;
此配置将所有分区视为热分区,数据全部存储在SSD上。
虽然技术上可以将hot_partition_count
设置为与分区总数相同的值,但需根据实际业务需求权衡性能和成本。如果所有分区的数据都需要高性能访问,可以选择此配置;否则,建议根据数据访问频率合理设置hot_partition_count
,以优化存储成本和查询性能。
阿里云自主研发的云原生数据仓库,具有高并发读写、低峰谷读写、弹性扩展、安全可靠等特性,可支持PB级别数据存储,可广泛应用于BI、机器学习、实时分析、数据挖掘等场景。包含AnalyticDB MySQL版、AnalyticDB PostgreSQL 版。