Doris适配GaussDB开源开发任务心得

举报
guochengyi 发表于 2024/12/03 15:46:47 2024/12/03
【摘要】 Doris 是一个现代化的MPP(Massively Parallel Processing)大规模并行处理的分析型数据库产品。本文使用Flink实现Doris与GaussDB数据之间的互通。

1 背景介绍

开源for Huawei(参考:https://developer.huaweicloud.com/programs/opensource/contributing/) 通过和公司、高校、社区的开发者合作,完成鲲鹏、昇腾、欧拉、鸿蒙、高斯、云服务等与开源软件的适配开发,帮助繁荣Huawei的基础生态,同时让开源软件能够更加简单、高效的运行于华为云上。

2 任务目的和范围

本任务的主要目的是让Doris与华为云GaussDB数据库互通,打破数据孤岛,实现数据的自由流动和共享整合,拓展GaussDB数据库服务的影响力。同时,该任务也可以为一些项目迁移时候的改造打下基础,方便用户在云上做方案选型的时候,可以选择华为云GaussDB数据库服务,缩短开发周期,保证项目迁移进度,降低开发上云成本 。

3 适配验证

3.1 Doris集群部署

部署规划:
node1:fe、be、Broker
node2:be、Broker
node3:be、Broker
进行相应配置,启动fe、be、broker服务

3.2 Flink集群部署

本次适配使用Standalone模式
部署规划:
node1:TaskManager、JobManager
node2:TaskManager
node3:TaskManager
进行相应部署和配置
image.png

3.3验证

开发flink代码实现doris与gaussdb数据的互相传输

3.3.1 验证Doris to GaussDB

在Doris中建source表:
CREATE TABLE IF NOT EXISTS gcy_db.doris_to_gaussdb_source_t
(
name VARCHAR(1024) NOT NULL COMMENT “姓名”,
sex VARCHAR(1024) NOT NULL COMMENT “性别”
)
DUPLICATE KEY(name, sex)
DISTRIBUTED BY HASH(name) BUCKETS 10
PROPERTIES(“replication_num” = “3”);
插入两条数据:
INSERT INTO gcy_db.doris_to_gaussdb_source_t (name, sex) VALUES (‘牛魔王’, ‘男’), (‘铁扇公主’, ‘女’);
在GaussDB建sink表:
CREATE TABLE doris_to_gaussdb_sink_t (
name VARCHAR(1024) NOT NULL,
sex VARCHAR(1024) NOT NULL
);
插入两条数据:
INSERT INTO doris_to_gaussdb_sink_t (name, sex) VALUES
(‘张三’, ‘男’),
(‘翠花’, ‘女’);
打包代码提交Flink任务:
从Flink UI界面可以看到Doris的数据已经读取到:
image.png

观察GaussDB目标表doris_to_gaussdb_sink_t,结果也已经成功写入:
image.png

3.3.2 验证GaussDB to Doris

在GaussDB中建source表:
CREATE TABLE gaussdb_to_doris_source_t (
name VARCHAR(1024) NOT NULL,
sex VARCHAR(1024) NOT NULL
);
插入两条数据:
INSERT INTO gaussdb_to_doris_source_t (name, sex) VALUES
(‘张三’, ‘男’),
(‘翠花’, ‘女’);
在Doris中建sink表:
CREATE TABLE IF NOT EXISTS gcy_db.gaussdb_to_doris_sink_t
(
name VARCHAR(1024) NOT NULL COMMENT “姓名”,
sex VARCHAR(1024) NOT NULL COMMENT “性别”
)
DUPLICATE KEY(name, sex)
DISTRIBUTED BY HASH(name) BUCKETS 10
PROPERTIES(“replication_num” = “3”);
插入两条数据:
INSERT INTO gcy_db.gaussdb_to_doris_sink_t (name, sex) VALUES (‘牛魔王’, ‘男’), (‘铁扇公主’, ‘女’);
打包代码提交Flink任务:
在Flink UI上可以看到数据已经读取成功:
image.png

观察目标表gaussdb_to_doris_sink_t,数据已经成功写入:
image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。