Orc Format
功能描述
Apache Orc Format允许读写ORC数据。更多具体使用可参考开源社区文档:Orc Format。
支持的Connector
- FileSystem
参数说明
参数 |
是否必选 |
默认值 |
类型 |
描述 |
---|---|---|---|---|
format |
是 |
无 |
String |
指定要使用的格式,这里应该是 'orc'。 |
Orc 格式也支持来源于 Table properties 的表属性。 举个例子,您可以设置 orc.compress=SNAPPY 来允许spappy压缩。
数据类型映射
Orc 格式类型的映射和 Apache Hive 是兼容的。下面的表格列出了 Flink 类型的数据和 Orc 类型的数据的映射关系。
Flink数据类型 |
Orc物理类型 |
Orc逻辑类型 |
---|---|---|
CHAR |
bytes |
CHAR |
VARCHAR |
bytes |
VARCHAR |
STRING |
bytes |
STRING |
BOOLEAN |
long |
BOOLEAN |
BYTES |
bytes |
BINARY |
DECIMAL |
decimal |
DECIMAL |
TINYINT |
long |
BYTE |
SMALLINT |
long |
SHORT |
INT |
long |
INT |
BIGINT |
long |
LONG |
FLOAT |
double |
FLOAT |
DOUBLE |
double |
DOUBLE |
DATE |
long |
DATE |
TIMESTAMP |
timestamp |
TIMESTAMP |
ARRAY |
- |
LIST |
MAP |
- |
MAP |
ROW |
- |
STRUCT |
示例
使用kafka发送数据,输出到print中。
- 根据kafka所在的虚拟私有云和子网创建相应的跨源,并绑定所要使用的队列。然后设置安全组,入向规则,使其对当前将要使用的队列放开,并根据kafka的地址测试队列连通性(通用队列 > 找到作业的所属队列 > 更多 > 测试地址连通性 > 输入kafka的地址 > 测试)。如果能连通,则表示跨源已经绑定成功;否则表示未成功。
- 创建flink opensource sql作业,开启checkpoint,并提交运行,其代码如下:
CREATE TABLE kafkaSource ( order_id string, order_channel string, order_time string, pay_amount double, real_pay double, pay_time string, user_id string, user_name string, area_id string ) WITH ( 'connector' = 'kafka', 'topic-pattern' = kafkaTopic', 'properties.bootstrap.servers' = 'KafkaAddress1:KafkaPort,KafkaAddress2:KafkaPort', 'properties.group.id' = 'GroupId'', 'scan.startup.mode' = 'latest-offset', 'format' = 'csv' ); CREATE TABLE sink ( order_id string, order_channel string, order_time string, pay_amount double, real_pay double, pay_time string, user_id string, user_name string, area_id string ) WITH ( 'connector' = 'filesystem', 'format' = 'orc', 'path' = 'obs://xx' ); insert into sink select * from kafkaSource;
- 向kafka的作为source的topic中插入下列数据:
202103251505050001,appshop,2021-03-25 15:05:05,500.00,400.00,2021-03-25 15:10:00,0003,Cindy,330108 202103241606060001,appShop,2021-03-24 16:06:06,200.00,180.00,2021-03-24 16:10:06,0001,Alice,330106
- 读取sink表中配置的obs路径中的orc文件,其数据结果如下
202103251202020001, miniAppShop, 2021-03-25 12:02:02, 60.0, 60.0, 2021-03-25 12:03:00, 0002, Bob, 330110 202103241606060001, appShop, 2021-03-24 16:06:06, 200.0, 180.0, 2021-03-24 16:10:06, 0001, Alice, 330106