presto连接kudu建表与查询方法

使用presto连接kudu查询引擎,在kudu中进行增删改查

查询数据

Apache Kudu 不支持模式,即表的命名空间。连接器可以选择通过表命名约定来模拟模

默认行为(无模式模拟)

默认情况下禁用模式模​​拟。在这种情况下,所有 Kudu 表都是default架构的一部分。

例如, 如果目录和模式分别设置为和,则orders可以在 Presto 中查询名为 的 Kudu 表。SELECT * FROM kudu.default.orders、SELECT * FROM orders。

表名可以包含 Kudu 中的任何字符。在这种情况下,请使用双引号。例如,查询名为special.table!use的 Kudu 表。SELECT * FROM kudu.default."special.table!"

例子

  • 在默认架构中创建一个用户表
CREATE TABLE kudu.default.users ( 
user_id int WITH (primary_key = true)
, first_name varchar, last_name varchar 
) 
WITH ( 
partition_by_hash_columns = ARRAY['user_id']
, partition_by_hash_buckets = 2 
);

在创建 Kudu 表时,您必须/可以指定有关列的主键、编码和压缩以及散列或范围分区的附加信息。

  • 该表可以使用
DESCRIBE kudu.default.users;
  • 插入一些数据
INSERT INTO kudu.default.users VALUES (1, 'Donald', 'Duck'), (2, 'Mickey', 'Mouse');
  • 选择插入的数据
SELECT * FROM kudu.default.users;

模式模拟的行为

如果在连接器属性中启用了模式模拟,即etc/catalog/kudu.properties,根据某些约定将表映射到模式。

  • 使用kudu.schema-emulation.enabled=true和kudu.schema-emulation.prefix=,映射的工作方式如下:

Kudu 表名

Presto 限定名称

orders

kudu.default.orders

part1.part2

kudu.part1.part2

x.y.z

kudu.x."y.z"

由于 Kudu 不直接支持模式,$schemas因此创建了一个名为的特殊表 来管理模式。

  • 使用kudu.schema-emulation.enabled=true和kudu.schema-emulation.prefix=presto::,映射的工作方式如下:

Kudu 表名

Presto 限定名称

orders

kudu.default.orders

part1.part2

kudu.default."part1.part2"

x.y.z

kudu.default."x.y.z"

presto::part1.part2

kudu.part1.part2

presto:x.y.z

kudu.x."y.z"

由于 Kudu 不直接支持模式,presto::$schemas因此创建了一个名为的特殊表来管理模式。

支持字段类型

注:使用presto执行create table...as...语句到kudu时,varchar\VARBINARY最大长度会丢失,date类型会被转化成字符串

Presto Data Type

Kudu Data Type

Comment

BOOLEAN

BOOL

TINYINT

INT8

SMALLINT

INT16

INTEGER

INT32

BIGINT

INT64

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值