Dinky项目快速体验指南:从零开始玩转FlinkSQL开发

Dinky项目快速体验指南:从零开始玩转FlinkSQL开发

dinky Dinky is an out-of-the-box, one-stop, real-time computing platform dedicated to the construction and practice of Unified Streaming & Batch and Unified Data Lake & Data Warehouse. Based on Apache Flink, Dinky provides the ability to connect many big data frameworks including OLAP and Data Lake. dinky 项目地址: https://gitcode.com/gh_mirrors/di/dinky

前言

Dinky作为一款强大的FlinkSQL开发平台,为大数据开发者提供了便捷的任务开发和管理体验。本文将带领初学者快速上手Dinky,通过实际案例体验其核心功能。

环境准备:Docker快速部署

对于初次接触Dinky的用户,推荐使用Docker方式快速搭建体验环境。这种方式无需复杂的配置,开箱即用。

部署步骤

  1. 首先拉取官方提供的Dinky镜像:
docker pull dinkydocker/dinky-standalone-server:1.0.3-flink1.17
  1. 运行容器并映射端口:
docker run -p 8888:8888 --name dinky dinkydocker/dinky-standalone-server:1.0.3-flink1.17

注意事项

  • 默认使用H2内存数据库,适合快速体验
  • 生产环境建议使用MySQL或PostgreSQL等外部数据库
  • 容器启动后可通过8888端口访问Web界面

初识Dinky界面

成功启动后,通过浏览器访问服务地址,将看到登录界面:

  • 默认用户名:admin
  • 默认密码:dinky123!@#

登录后您将进入Dinky的主界面,这里集成了数据开发、任务运维等核心功能模块。

第一个FlinkSQL任务实战

创建作业流程

  1. 进入"数据开发"页面
  2. 右键点击目录树,选择"新建作业"
  3. 选择"FlinkSQL"作业类型
  4. 填写作业名称并确认

配置作业参数

在右侧配置面板中:

  • 执行模式选择"Local"(本地模式)
  • 并行度设置为1(适合测试环境)

编写示例SQL

输入以下FlinkSQL语句创建测试表并查询数据:

CREATE TABLE Orders (
    order_number BIGINT,
    price        DECIMAL(32,2),
    buyer        ROW<first_name STRING, last_name STRING>,
    order_time   TIMESTAMP(3)
) WITH (
  'connector' = 'datagen',
  'rows-per-second' = '1',
  'number-of-rows' = '50'
);

SELECT order_number,price,first_name,last_name,order_time FROM Orders;

预览查询结果

点击右上角"预览"按钮,系统将:

  1. 启动本地Flink集群
  2. 执行SQL语句
  3. 在"结果"选项卡中展示查询数据

预览功能特点

  • 仅支持SELECT语句的即时查询
  • 适合开发调试阶段快速验证SQL逻辑
  • 不支持带有INSERT语句的完整作业

完整任务提交流程

对于生产环境,我们需要提交完整的Flink作业:

编写完整SQL示例

-- 创建数据生成源表
CREATE TABLE datagen_source(
  id  BIGINT,
  name STRING
) WITH (
  'connector' = 'datagen'
);

-- 创建数据接收表
CREATE TABLE blackhole_sink(
   id  BIGINT,
   name STRING
) WITH (
  'connector' = 'blackhole'
);

-- 定义数据处理逻辑
INSERT INTO blackhole_sink
SELECT id, name FROM datagen_source;

提交作业

点击"执行"按钮,Dinky将:

  1. 解析并验证SQL语法
  2. 生成Flink作业图
  3. 提交到配置的集群执行

作业运维管理

提交后的作业可以在"运维中心"进行管理:

  1. 作业列表:查看所有运行中的作业
  2. 详情查看:点击作业可查看详细运行信息
  3. 监控指标:实时监控作业运行状态
  4. 日志查看:获取作业执行日志

生产环境注意事项

Nginx代理配置

如果使用Nginx作为反向代理,需要添加以下配置以支持SSE日志推送:

proxy_buffering off;
proxy_cache off;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;

数据库选择

体验环境使用H2数据库虽方便,但生产环境建议:

  • 使用MySQL或PostgreSQL等关系型数据库
  • 提前做好数据库性能优化
  • 配置定期备份策略

进阶学习建议

完成本快速体验后,建议进一步探索:

  1. 连接真实数据源(如Kafka、MySQL等)
  2. 尝试不同的执行模式(如YARN、Kubernetes)
  3. 学习使用UDF函数扩展功能
  4. 探索任务版本管理和调度功能

Dinky的强大功能将极大提升您的Flink开发效率,祝您使用愉快!

dinky Dinky is an out-of-the-box, one-stop, real-time computing platform dedicated to the construction and practice of Unified Streaming & Batch and Unified Data Lake & Data Warehouse. Based on Apache Flink, Dinky provides the ability to connect many big data frameworks including OLAP and Data Lake. dinky 项目地址: https://gitcode.com/gh_mirrors/di/dinky

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

田桥桑Industrious

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值