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
聚焦模式
字号
最后更新时间: 2024-07-17 14:52:09

DLC 分区表

用户可以将数据按照分区目录的方式进行存储,将不同特征的数据存放在不同的目录下,在进行数据探索时,通过 where 条件按照分区进行过滤,DLC 的数据扫描量将大幅减少,提高查询效率。
注意:
同一个表的分区应使用相同的数据类型及格式。
DLC 内表采用隐藏式分区实现,可不用关注分区目录结构。

创建分区表

创建表格语句中通过 PARTITIONED BY 指定分区字段。 示例:创建分区表 test_part
CREATE EXTERNAL TABLE IF NOT EXISTS `DataLakeCatalog`.`test_a_db`.`test_part` (
`_c0` int,
`_c1` int,
`_c2` string,
`dt` string
) USING PARQUET PARTITIONED BY (dt) LOCATION 'cosn://testbucket/data/';


添加分区

通过 alter table add partition 添加分区

如果用户的数据分区目录为 Hive 的分区规则:分区列名=分区列值,可采用这种方式添加分区,目录组织方式如图。


ALTER TABLE `DataLakeCatalog`.`test_a_db`.`test_part` add PARTITION (dt = '202206')
ALTER TABLE `DataLakeCatalog`.`test_a_db`.`test_part` add PARTITION (dt = '202207')
ALTER TABLE `DataLakeCatalog`.`test_a_db`.`test_part` add PARTITION (dt = '202208')
ALTER TABLE `DataLakeCatalog`.`test_a_db`.`test_part` add PARTITION (dt = '202209')
ALTER TABLE `DataLakeCatalog`.`test_a_db`.`test_part` add PARTITION (dt = '202210')

通过 alter table 指定 location 添加分区

如果用户的数据组织为普通的 cos 目录(非“分区列名=分区列值”组织方式),可以在 add partition 时指定目录。 SQL 参考:
ALTER TABLE `DataLakeCatalog`.`test_a_db`.`test_part` add PARTITION (dt = '202211') LOCATION='cosn://testbucket/data2/202211'
ALTER TABLE `DataLakeCatalog`.`test_a_db`.`test_part` add PARTITION (dt = '202212') LOCATION='cosn://testbucket/data2/202212'

使用 MSCK REPAIR 自动添加分区

使用 MSCK REPAIR TABLE 语句,扫描在建表时指定的数据目录。若存在新的分区目录,则系统会自动将这些分区添加到数据表的元数据信息中。 SQL参考:
MSCK REPAIR TABLE `DataLakeCatalog`.`test_a_db`.`test_part`
建议优先选择 alter table 的方式添加分区,如果采用 msck repair 自动添加分区,有如下约束条件:
MSCK REPAIR TABLE 仅向数据表元数据添加分区,不会删除分区。
数据数据量较大时,不推荐使用 MSCK REPAIR TABLE 的方式,该方式会扫描全部数据量,可能会导致超时。
如果分区目录不为 Hive 的分区规则:分区列名=分区列值,不能采用 MSCK REPAIR TABLE 方式。

帮助和支持

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

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

文档反馈