从阿里云dms导出mysql无法导入_导入数据并查询 - 云原生数仓 AnalyticDB MySQL - 阿里云...

本文介绍了如何针对带有分区的Parquet/CSV数据文件在OSS上创建外部表,强调了在创建表时声明分区列的重要性。详细阐述了建表语法,包括指定数据源、格式、分区列等参数,并解释了分区列的类型限制。查询时,分区列与其他数据列的使用并无区别。
摘要由CSDN通过智能技术生成

针对带有分区的Parquet/CSV数据文件创建OSS外表

有的OSS数据源是包含分区的,会在OSS上形成一个分层目录,类似如下内容:parquet_partition_classic/

├── p1=2020-01-01

│   ├── p2=4

│   │   ├── p3=SHANGHAI

│   │   │   ├── 000000_0

│   │   │   └── 000000_1

│   │   └── p3=SHENZHEN

│   │   └── 000000_0

│   └── p2=6

│   └── p3=SHENZHEN

│   └── 000000_0

├── p1=2020-01-02

│   └── p2=8

│   ├── p3=SHANGHAI

│   │   └── 000000_0

│   └── p3=SHENZHEN

│   └── 000000_0

└── p1=2020-01-03

└── p2=6

├── p2=HANGZHOU

└── p3=SHENZHEN

└── 000000_0

上述数据中p1为第1级分区,p2为第2级分区,p3为第3级分区。对应这种数据源,一般都希望以分区的模式进行查询,那么就需要在创建OSS外表时额外指明分区列。具体的建表语法示例如下(本例为Parquet格式,分区也支持CSV格式):CREATE TABLE IF NOT EXISTS oss_parquet_partition_table

(

uid varchar,

other varchar,

p1 date,

p2 int,

p3 varchar

)

ENGINE='OSS'

TABLE_PROPERTIES='{

"endpoint":"oss-xxxx.aliyuncs.com",

"url":"oss://****/****/oss_parquet_data_dir",

"accessid":"****",

"accesskey":"****",

"format":"parquet",

"partition_column":"p1, p2, p3"

}'

说明

如上例所示,除了在table的列定义中声明p1、p2、p3及其类型,还需要在TABLE_PROPERTIES部分中的partition_column属性里声明它们为分区列。且partition_column属性里必须按“第1级, 第2级, 第3级......”的严格顺序声明(例中p1为第1级分区,p2为第2级分区,p3为第3级分区),在列定义中也需保持相同顺序,并将分区列置于列定义列表的末尾。

可以作为分区列的数据类型有:boolean、tinyint、smallint、int/integer、bigint、float、double、decimal、varchar/string、date、timestamp。

查询时分区列和其它数据列的表现和用法没有区别。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值