首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >快速搭建一套实时数仓演示环境

快速搭建一套实时数仓演示环境

作者头像
苏奕嘉
发布2025-07-14 18:24:25
发布2025-07-14 18:24:25
10000
代码可运行
举报
运行总次数:0
代码可运行

引言

哈喽各位看官老爷,又见面了~

先说个好消息:Apache Doris 补习班公众号粉丝突破 2k!

这是一个新的里程碑,感谢大家的支持~

昨晚在直播的结束时刻,我说尽快会给大家一份通过 Docker 快速搭建部署一套演示环境的 Demo 文章示例,那么本篇就应昨天的承诺,给大家来一篇简单、高效、可复刻的快速搭建演示环境的教程。

文章不长,所以大家有兴趣的话完全可以上手来测测,一共就八步,天龙八部(步)。

话不多说,开干!

环境准备

  1. 1. 本次用的镜像是基于x86做的,故此需要一台 x86 机器
  2. 2. 部署好 docker 服务和 docker-compose
  3. 3. 硬件规格最小 4C8G

操作流程

1.上传或创建 Docker-Compose 的 doris-demo.yaml 脚本到服务器

代码语言:javascript
代码运行次数:0
运行
复制
version: "3"
services:
    mysql:
        image:mysql:8.0.31
        volumes:
            -/data/mysql/script:/docker-entrypoint-initdb.d
        environment:
            MYSQL_ROOT_PASSWORD:
            MYSQL_DATABASE:doris-test
            MYSQL_PASSWORD:
        command:
            --character-set-server=utf8
        hostname:mysql
        ports:
            -:3306
    jobmanager:
        image:apache/flink:1.17-scala_2.12
        expose:
            -
        ports:
            -:8081
        volumes:
            -/data/flink/flink-doris-connector-1.17-1.6.2.jar:/opt/flink/lib/flink-doris-connector-1.17-1.6.2.jar
            -/data/flink/flink-sql-connector-mysql-cdc-2.4.2.jar:/opt/flink/lib/flink-sql-connector-mysql-cdc-2.4.2.jar
        command:jobmanager
        environment:
            -JOB_MANAGER_RPC_ADDRESS=jobmanager
    taskmanager:
        image:apache/flink:1.17-scala_2.12
        expose:
            -
            -
        depends_on:
            -jobmanager
        volumes:
            -/data/flink/flink-doris-connector-1.17-1.6.2.jar:/opt/flink/lib/flink-doris-connector-1.17-1.6.2.jar
            -/data/flink/flink-sql-connector-mysql-cdc-2.4.2.jar:/opt/flink/lib/flink-sql-connector-mysql-cdc-2.4.2.jar
        command:taskmanager
        links:
            -"jobmanager:jobmanager"
        environment:
            -JOB_MANAGER_RPC_ADDRESS=jobmanager
    doris:
        image:registry.cn-hangzhou.aliyuncs.com/freeoneplus/doris:2.1.4-all
        hostname:doris
        ports:
            -:8030
            -:9030
            -:8040
        network_mode:host
    superset:
        image:selectdb/superset_3.0.1-cloud_3.0.3:latest
        user:"root"
        environment:
            -SUPERSET_SECRET_KEY="doris"
        command:
            -"sh"
            --c
            -|
               superset db upgrade
               superset fab create-admin --username admin --password doris --firstname Superset --lastname Admin --email admin@superset.com
               superset init
               /bin/sh -c /usr/bin/run-server.sh
        ports:
            -:8088
        restart:on-failure
        network_mode: host

这里简单介绍一下,该 yaml 脚本中一共有五个进程:

  • • MySQL:TP库,模拟业务库,初始化密码为123456,初始化的数据库为doris-test
  • • JobManager:Flink-Job-Manager,负责 Flink 任务管理等
  • • TaskManager:Flink-Task-Manager,负责 Flink 任务执行等
  • • Doris:All-In-One 的镜像,内置 1FE 1BE,且会自动注册
  • • SuperSet:All-In-One 的镜像,里面内置了 Apache Doris 数据源,用户名为admin,密码为doris

2.将Flink依赖的 Flink-MySQL-Connector 和 Flink-Doris-Connector 两个依赖jar包下载至对应宿主机目录,这里我使用的是/data/flink目录,可根据自身需要调整

代码语言:javascript
代码运行次数:0
运行
复制
# flink-doris-connector-1.17-1.6.2 下载地址
https://repo1.maven.org/maven2/org/apache/doris/flink-doris-connector-1.17/1.6.2/flink-doris-connector-1.17-1.6.2.jar
# flink-sql-connector-mysql-cdc-2.4.2 下载地址
https://repo1.maven.org/maven2/com/ververica/flink-sql-connector-mysql-cdc/2.4.2/flink-sql-connector-mysql-cdc-2.4.2.jar

3.启动 Docker-Compose 脚本

代码语言:javascript
代码运行次数:0
运行
复制
docker-compose -f doris-demo.yaml up -d

4.连接 MySQL 创建库表并初始化数据,这里有两种方式,一种可以通过 MySQL-Client、Navicat 或者 DBeaver 去连接,使用 MySQL-JDBC 连接方式,账号为root,密码为123456,端口为 3306,连接成功后执行创建库表语句和初始化插入语句,另一种可通过 docker-compose exec 命令完成库表创建,命令如下:

代码语言:javascript
代码运行次数:0
运行
复制
   docker-compose exec mysql mysql -uroot -p123456 -e "
   DROP TABLE IF EXISTS \`doris-test\`.\`orders\`;
   CREATE TABLE \`doris-test\`.\`orders\` (
     order_id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
     order_date DATETIME NOT NULL,
     customer_name VARCHAR(255) NOT NULL,
     price DECIMAL(10, 5) NOT NULL,
     product_id INTEGER NOT NULL,
     order_status BOOLEAN NOT NULL -- Whether order has been placed
   ) AUTO_INCREMENT = 10001;
   INSERT INTO \`doris-test\`.\`orders\`
   VALUES (default, '2020-07-05 10:08:22', 'Jark', 50.50, 102, false),
   (default, '2020-07-05 10:11:09', 'Sally', 15.00, 105, false),
   (default, '2020-07-05 12:00:30', 'Edward', 25.25, 106, false);"

这里我们创建了一张名为 orders 的表,并初始化了三条数据。

5.根据源表创建 FlinkJob 任务,自动同步表结构并创建 CDC 任务持续导入数据,可使用如下命令提交 Job 任务:

代码语言:javascript
代码运行次数:0
运行
复制
docker-compose exec jobmanager /opt/flink/bin/flink run \
-Dexecution.checkpointing.interval=s \
-Dparallelism.default= \
-c org.apache.doris.flink.tools.cdc.CdcTools \
/opt/flink/lib/flink-doris-connector-1.-1.6.2.jar \
           mysql-sync-database \
--database mysql_demo \
--mysql-conf hostname=${改为你的机器内网IP地址} \
--mysql-conf username=root \
--mysql-conf password= \
--mysql-conf port= \
--mysql-conf database-name=doris-test \
--sink-conf fenodes=${改为你的机器内网IP地址}: \
--sink-conf benodes=${改为你的机器内网IP地址}: \
--sink-conf username=root \
--sink-conf password= \
--sink-conf jdbc-url=jdbc:mysql://${改为你的机器内网IP地址}: \
--sink-conf sink.label-prefix=label \
--single-sinktrue \
--table-conf replication_num= ;

把IP地址改为你的内网IP地址即可,其他不用改变,具体若希望知道每个参数都是代表什么意思,可在 Doris 官网的 Flink-Doris-Connector 章节找到所有参数。

6.查询 Doris 是否成功创建表和同步数据,同样可通过 DBeaver、MySQL-Client、Navicat 等工具连接到 Doris 查看,数据源选择 MySQL,账号为root,密码为空,端口为9030,连接成功后执行查询即可。或通过 docker-compose exec 命令进行查询,命令如下:

代码语言:javascript
代码运行次数:0
运行
复制
docker-compose exec doris mysql -uroot -P9030 -h127.0.0. -e "select * from mysql_demo.orders"

7.登录 SuperSet 界面,配置数据源、数据集、图表、看板,并设置自动刷新

  • • 登录
图片
图片
  • • 配置数据源
图片
图片
  • • 创建数据集
图片
图片
  • • 配置图表
  • • 创建看板
图片
图片
  • • 设置自动刷新
图片
图片

8.MySQL端实时插入数据,SuperSet 看板实时更新

代码语言:javascript
代码运行次数:0
运行
复制
   docker-compose exec mysql mysql -uroot -p123456 -e "
   INSERT INTO \`doris-test\`.\`orders\`
   VALUES (default, '2020-07-05 10:30:15', 'Tom', 12.50, 104, false),
   (default, '2020-07-05 10:35:09', 'Sally', 35.00, 108, false),
   (default, '2020-07-05 11:00:30', 'Jark', 66.15, 106, false);"
图片
图片

视频教程

今晚发布于 B站 Apache Doris 补习班。

小结

后续我会制作更多诸如此类的简单易用快速上手的 Demo 演示环境教程供大家去体验,甚至后续的 3.0 存算分离,也会有类似这样的形态去尝试和玩耍。

但这里一定注意一点:不可上生产!不可上生产!不可上生产!!!

这是为了轻松入门和快速学习调试使用的,不要在生产上使用!

制作不易,来个点赞在看鼓励鼓励吧!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Apache Doris 补习班 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 环境准备
  • 操作流程
  • 视频教程
  • 小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档