Dinky集成Paimon数据源!可视化读取paimon元数据,支持HDFS,S3, Hive

837 阅读3分钟

项目地址:github.com/DataLinkDC/…

如果觉得项目不错欢迎前去点下 Star, 感谢您的支持!

Docker快速部署dinky

h2数据库无需安装,开箱即用,仅适合快速体验,重启后数据消失,如要正式使用,请切换为mysql

docker run --restart=always -p 8888:8888 \
  -v /opt/lib:/opt/dinky/customJar/ \
  --name dinky \
  dinkydocker/dinky-standalone-server:1.1.0-flink1.19

这里我们外挂了一个 /opt/lib 目录,这是专门用来放依赖的,后面我们下载的paimon和hadoop依赖都放到这个目录下面

hadoop部署

hadoop部署比较麻烦,这里就不展示了,相信看到这个文章的人肯定都有自己的hadoop环境了(❁´◡`❁)

准备依赖

hadoop的shade包 flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar Paimon flink 1.19的依赖包,如果你不是1.19,请自行替换 paimon-flink-1.19-0.9.0.jar

上述依赖下载完成后,放到dinky的依赖目录下(dinky/extends 或者 docker部署的customJar下面)

初始化paimon表

如果你已经有paimon库了,可以略过此步骤

dinky新建Flink Sql任务,写入一下代码


CREATE CATALOG my_catalog WITH (
    'type' = 'paimon',
    -- 这里更改为你的hdfs地址
    'warehouse' = 'hdfs://namenode:8020/data/paimon/',
    -- 这里更改为你的hadoop配置路径
    'hadoop-conf-dir' = '/opt/data/hadoop/conf'
);

use catalog my_catalog;

CREATE TABLE my_table_1 (
    user_id BIGINT,
    item_id BIGINT,
    behavior STRING,
    dt STRING,
    hh STRING,
    PRIMARY KEY (dt, hh, user_id) NOT ENFORCED
) PARTITIONED BY (dt, hh);

点击检查,(虽然是检查,但是Dinky在检查过程中会执行DDL语句image.png

检查成功,去HDFS上面看一眼表是不是建立了,(可以看到hdfs上面已经有表了)

hdfs dfs -ls /data/paimon/default.db/                                                                                   
drwxr-xr-x   - root supergroup          0 2024-09-26 16:12 /data/paimon/default.db/my_table
drwxr-xr-x   - root supergroup          0 2024-09-26 14:49 /data/paimon/default.db/my_table_1

 /opt/data/hive/conf                                                                    

注册Paimon数据源

前往注册中心-->数据源,新建数据源,选择paimon image.png

注意:虽然1.1版本HDFS选项被禁用了,但是没有影响,paimon只需要传参就能用,并无特殊逻辑配置,所以我们这里选择local,然后如图填写自定义相关配置

image.png

warehouse 参数: 表示数据在HDFS上面的存储路径,和我们上面sql里设置的一样即可

hive-conf-dir 参数: 本地hadoop配置路径

点击测试,没问题后保存。

查看Paimon元数据

在数据开发页面左侧点击数据源,下拉列表选择我们刚刚建立的paimon数据源 image.png

选择对应的表,即可看见元数据啦!

image.png

image.png image.png

能看到非常多的内容,再也不用在sql cli内敲命令了!╰(°▽°)╯

S3/OSS/COS/OBS 上面的paimon

首先 S3/OSS/COS/OBS 都是兼容S3协议的,所以我们只需要创建时候选择S3类型就可以啦。 image.png

如上图所示,只需要填写相关配置,其余操作都一样。

读取Hive上的Paimon数据

其余操作都一样,数据源需要做如下修改:

参数说明示例
warehousehive的存储路径hdfs://namenode:8020/hive/warehouse
metastore指定元数据为hivehive
hive-conf-dirHive配置文件路径/opt/data/hive/conf
hadoop-conf-dirHadoop配置文件路径/opt/data/hadoop/conf

image.png

关于数据源还有很多其他玩法,可以查看我的另一篇文章

Dinky教程- 数据源那些你不知道的功能Dinky数据源教程介绍了如何配置和使用数据源,包括Flink连接配置和Fli - 掘金 (juejin.cn)