作者介绍:
赵敏,网易数帆服务端开发工程师,Apache Kyuubi Committer。目前在网易数帆从事有数数据集成产品的开发。
”
Kyuubi 在1.6.0版本实现了JDBC引擎,首先实现了Apache Doris的方言,提供了查询 Doris 的能力。本文将介绍如何从零开始配置通过 Kyuubi 查询 Doris。
1.1 下载Kyuubi安装包
从Kyuubi官网下载1.6.0的安装包后解压。
https://www.apache.org/dyn/closer.lua/incubator/kyuubi/kyuubi-1.6.0-incubating/apache-kyuubi-1.6.0-incubating-bin.tgz
1.2 修改配置文件
cd $KYUUBI_HOME/conf
vi kyuubi-defaults.conf
在 kyuubi-defaults.conf 中追加如下配置:
kyuubi.engine.jdbc.connection.url=jdbc:mysql://xxx:xxx
kyuubi.engine.jdbc.connection.user=***
kyuubi.engine.jdbc.connection.password=***
kyuubi.engine.jdbc.type=doris
kyuubi.engine.jdbc.driver.class=com.mysql.cj.jdbc.Driver
kyuubi.engine.type=jdbc
配置项说明:
配置项 | 说明 |
kyuubi.engine.jdbc.connection.url | jdbc 服务连接。这里请指定 Doris FE 上的 mysql server 连接地址 |
kyuubi.engine.jdbc.connection.user | jdbc 服务用户名 |
kyuubi.engine.jdbc.connection.password | jdbc服务密码 |
kyuubi.engine.jdbc.type | jdbc服务类型。这里请指定为doris |
kyuubi.engine.jdbc.driver.class | 连接jdbc服务使用的驱动类名。请使用com.mysql.cj.jdbc.Driver |
kyuubi.engine.type | 引擎类型。请使用jdbc |
1.3 添加驱动
添加mysql驱动mysql-connector-java-8.0.30.jar到apache-kyuubi-1.6.0-incubating-bin/externals/engines/jdbc目录
1.4 启动kyuubi服务
$KYUUBI_HOME/bin/kyuubi run
接下来我们将使用 doris 官网提供快速开始示例(https://doris.apache.org/zh-CN/docs/get-starting/)演示通过 kyuubi 查询 doris。
2.1 建立连接
./beeline -u "jdbc:hive2://xxxx:10009/;#kyuubi.engine.type=jdbc"
当输出下图所示日志时,说明 jdbc 引擎启动成功。
2.2 创建库
create database demo;
执行结果如下:
2.3 创建表
CREATE TABLE IF NOT EXISTS demo.expamle_tbl
(
user_id
LARGEINT NOT NULL COMMENT "用户id",
date
DATE NOT NULL COMMENT "数据灌入日期时间",
city
VARCHAR(20) COMMENT "用户所在城市",
age
SMALLINT COMMENT "用户年龄",
sex
TINYINT COMMENT "用户性别",
last_visit_date
DATETIME REPLACE DEFAULT "1970-01-01 00:00:00" COMMENT "用户最后一次访问时间",
cost
BIGINT SUM DEFAULT "0" COMMENT "用户总消费",
max_dwell_time
INT MAX DEFAULT "0" COMMENT "用户最大停留时间",
min_dwell_time
INT MIN DEFAULT "99999" COMMENT "用户最小停留时间")
AGGREGATE KEY(
user_id
,date
,city
,age
,sex
)DISTRIBUTED BY HASH(
user_id
) BUCKETS 1PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"replication_num" = "1"
);
执行结果如下:
2.4 导入数据
10000,2017-10-01,北京,20,0,2017-10-01 06:00:00,20,10,10
10000,2017-10-01,北京,20,0,2017-10-01 07:00:00,15,2,2
10001,2017-10-01,北京,30,1,2017-10-01 17:05:45,2,22,22
10002,2017-10-02,上海,20,1,2017-10-02 12:59:12,200,5,5
10003,2017-10-02,广州,32,0,2017-10-02 11:20:00,30,11,11
10004,2017-10-01,深圳,35,0,2017-10-01 10:00:15,100,3,3
10004,2017-10-03,深圳,35,0,2017-10-03 10:20:22,11,6,6
2.5 查询
select * from demo.expamle_tbl;
查询结果:
select city, sum(cost) as total_cost from demo.expamle_tbl group by city;
查询结果:
本文演示了如何通过 Kyuubi 自带的 beeline 查询 doris。当前对 Doris 的支持仍然处于 beta阶段,欢迎大家试用,提供意见和建议,共同来完善 Kyuubi 查询 Doris 的能力。
END
本文为从大数据到人工智能博主「bajiebajie2333」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://lrting.top/backend/10274/