tencent cloud

数据湖计算

产品动态
产品简介
产品概述
产品优势
应用场景
购买指南
计费概述
退费说明
欠费说明
调整配置费用说明
快速入门
新用户开通全流程
DLC 数据导入指引
一分钟入门 DLC 数据分析
一分钟入门 DLC 权限管理
一分钟入门分区表
开启数据优化
跨源分析 EMR Hive 数据
标准引擎配置指引
配置数据访问策略
操作指南
控制台操作介绍
开发指南
运行环境
SparkJar 作业开发指南
PySpark 作业开发指南
查询性能优化指南
UDF 函数开发指南
系统约束
客户端访问
JDBC 访问
TDLC 命令行工具访问
第三方软件联动
Python 访问
实践教程
通过 Power BI 访问 DLC 数据操作指南
建表实践
使用 Apache Airflow 调度 DLC 引擎提交任务
StarRocks 直接查询 DLC 内部存储
Spark 计算成本优化实践
DATA + AI
使用 DLC 分析 CLS 日志
使用角色 SSO 访问 DLC
资源级鉴权指南
在 DLC 中实现 TCHouse-D 读写操作
DLC 原生表
SQL 语法
SuperSQL 语法
标准 Spark 语法概览
标准 Presto 语法概览
保留字
API 文档
History
Introduction
API Category
Making API Requests
Data Table APIs
Task APIs
Metadata APIs
Service Configuration APIs
Permission Management APIs
Database APIs
Data Source Connection APIs
Data Optimization APIs
Data Engine APIs
Resource Group for the Standard Engine APIs
Data Types
Error Codes
通用类参考
错误码
配额与限制
第三方软件连接DLC操作指南
常见问题
权限类常见问题
引擎类常见问题
功能类常见问题
Spark 作业类常见问题
DLC 政策
隐私协议
数据处理和安全协议
服务等级协议
联系我们

查询分区表

PDF
聚焦模式
字号
最后更新时间: 2025-03-07 15:27:24
若用户将数据以分区目录的方式进行存储,可以减少 DLC 计算任务的数据扫描量,大幅度提升运算性能。对数据进行分区最常见的做法是将数据按照时间存储到不同目录下,例如,将同一天产生的数据放到一个目录下,可以按照“年-月-日”组织多层数据目录。DLC 中的同一个表及其分区必须使用相同的数据格式。

创建分区表

创建分区表需要在建表语句中指定分区字段。

添加分区数据

在创建数据表时指定分区仅是配置了分区字段,不能立刻执行查询语句获取数据。用户需要将分区数据添加至数据表。若有新的分区数据添加至数据目录,则需要添加分区信息到数据表。

手动添加分区

使用 ALTER TABLE ADD PARTITIO 语句,会把指定的分区目录添加至数据表。若区目录兼容 Hive 的分区规则(分区列名 = 分区列值),则无需指定数据路径。否则,需要显示指定数据路径。
示例1:单个分区目录,分区目录符合。
ALTER TABLE tabel_demo ADD
PARTITION (dt = '2021-01-01');
示例2:多层分区目录嵌套。
ALTER TABLE tabel_demo ADD
PARTITION (year = '2021', month='01', day='01');
示例3:显示指定分区路径。
ALTER TABLE tabel_demo ADD
PARTITION (year = '2021', month='01', day='01') LOCATION 'cosn://tablea_demo' ;

自动添加分区

使用 MSCK REPAIR TABLE 语句,扫描在建表时指定的数据目录。若存在新的分区目录,则系统会自动将这些分区添加到数据表的元数据信息中。示例如下:
MSCK REPAIR TABLE table_demo

系统约束

MSCK REPAIR TABLE仅向数据表元数据添加分区,不会删除它们。想要删除已经添加的分区,可执行语句ALTER TABLE table-name DROP PARTITION
若数据量非常大,MSCK REPAIR TABLE不是推荐的方案。系统会扫描全量数据,并且消耗很长的时间,可能会导致任务超时,使得数据表的分区信息处于不完整状态。
分区目录必须兼容 Hive 的分区规则:分区列名=分区列值,若不一致,请使用ALTER TABLE ADD PARTITIO加载分区。
请确保在单独的文件夹层次结构中保留单独表的数据。例如,假设 COS 服务中有表 A 的数据cosn://tablea_a和表 B 的数据s3://table_a/table_b如果两个表都按字符串进行分区,MSCK REPAIR TABLE会将表 B 的分区添加到表 A。为了避免这种情况,请使用单独的文件夹结构,如cosn://tablea_acosn://tablea_b
该语句可能会导致 COS 服务的数据读写开销,可参见 COS 服务的收费标准

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈