一、前言
- 上期分享了如何编译安装Hue并适配sparksql,其实hue中有很多个连接器,比如Oracle、MySQL、PostgreSQL、Clickhouse等。详细见hue官网connectors介绍,刚好上次适配了SparkSQL,刚好研究了一下如何适配StarRocks连接器,由于StarRocks是兼容MySQL协议的,所以我们可以直接用MySQL的connectors就可以适配StarRocks。
二、下载安装python mysqlclient
- pip 安装mysqlclient
#先按照开发工具,不然安装pip会报错
yum install python-devel mysql-devel -y
#安装完开发工具,再安装mysqlclient
/data/hue-4.10/hue/build/env/bin/pip install mysqlclient
- 查看是否安装成功
/data/hue-4.10/hue//build/env/bin/pip list |grep -i mysqlclient
三、修改hue配置文件
本次主要介绍如何适配StarRocks连接器,安装部署不介绍,如果没有安装Hue和StarRocks的小伙伴,可以看我前面的文章。
- 这里官网介绍了MySQL连接器。这里有两种方式,我们选择使用方案1,使用原生自带的MySQL connectors
- 另一种jdbc方式,需要在hue编译安装的时候添加 BUILD_DB_PROXY=true 参数,还要将jdbc jar包添加至java CLASSPATH当中。此次不过多介绍,想了解的小伙伴可以去hue官网。
- 修改hue配置文件,在[[interpreters]]中添加如下配置, 其中charset=utf8mb4 是必须的,不然会报错字符集问题
- 这里通过使用变量向用户提示 $USER 和 $PASSWORD,也可以不使用变量,所有登录都统一使用一个只读账号。
vim /data/hue-4.10/hue/desktop/conf/pseudo-distributed.ini
[[[mysql]]]
name=StarRocks
interface=sqlalchemy
options='{"url": "mysql://${USER}:${PASSWORD}@172.17.209.4:9030/?charset=utf8mb4"}'
四、登录hue
- 选择StarRocks连接器
-
输入StarRocks中的账号密码(默认账号是使用当前登录hue用户,所以我们使用hue在StarRocks中创建账号可以创建和StarRocks名称一样的)
-
查询SQL测试
-
点击相应表名,可以正常显示表字段信息
- 建表、删表测试
--建表:
CREATE TABLE `example_db`.starrocks_hue_test
(
`tb` STRING COMMENT "表名",
`db` STRING COMMENT "数据库",
`time` STRING COMMENT "时间"
) ENGINE = OLAP
DUPLICATE KEY(`tb`)
DISTRIBUTED BY HASH(`time`) BUCKETS 10;
五、总结
1、问题总结
- 使用LIKE ‘%’ 语句报错,GitHub相关issues
需要加两个 %%,SQL如下:
select
substr(timestamp , 1, 16) ,
user as "用户",
stmt as "SQL原始语句"
from
starrocks_audit_db__.starrocks_audit_tbl__
where
timestamp >= '2023-06-12 14:55:00'
and timestamp <= '2023-06-12 17:00:00'
and user = 'ads_bdc_services_rw'
and stmt like 'SELECT %%'
order by
substr(timestamp , 1, 16) ;
2、使用总结
- Hue提供了直观简单的Web界面,并提供连接器组件,用于连接外部数据库,并支持多种类型的数据库,如MySQL、Oracle、PostgreSQL、Impala等。使用Hue,能够统一入口进行访问,并便于管理和操作。