Dinky 开源一周年了~

2022-09-04 08:50:47 浏览数 (1)

摘要:本文介绍了 Dinky 实时计算平台的开源一周年的建设情况。内容包括:

  1. 前言
  2. 项目特点
  3. 发展历程
  4. 问卷调查
  5. 近期预告
  6. 参与贡献
  7. 总结

GitHub 地址

https://github.com/DataLinkDC/dlink

https://gitee.com/DataLinkDC/Dinky

欢迎大家关注 Dinky 的发展~

一、前言

光阴荏苒,日月如梭,不知不觉间,Dinky 开源已经满满一周年。在这一年里,从思想的火花到实现的落地,再到各种组件与功能的扩展,是数十位贡献者的共同努力的成果,在此感谢各位贡献者与社区伙伴的支持,Dinky 定韶华不负,未来可期。

二、项目特点

一个 开箱即用易扩展 ,以 Apache Flink 为基础,连接 OLAP数据湖 等众多框架的 一站式 实时计算平台,致力于 流批一体湖仓一体 的建设与实践。其主要目标如下:

  • 可视化交互式 FlinkSQL 和 SQL 的数据开发平台:自动提示补全、语法高亮、调试执行、语法校验、语句美化、全局变量等
  • 支持全面的多版本的 FlinkSQL 作业提交方式:Local、Standalone、Yarn Session、Yarn Per-Job、Yarn Application、Kubernetes Session、Kubernetes Application
  • 支持 Apache Flink 所有的 Connector、UDF、CDC 等
  • 支持 FlinkSQL 语法增强:兼容 Apache Flink SQL、表值聚合函数、全局变量、CDC多源合并、执行环境、语句合并、共享会话等
  • 支持易扩展的 SQL 作业提交方式:ClickHouse、Doris、Hive、Mysql、Oracle、Phoenix、PostgreSql、SqlServer 等
  • 支持 FlinkCDC (Source 合并)整库实时入仓入湖
  • 支持实时调试预览 Table 和 ChangeLog 数据及图形展示
  • 支持语法逻辑检查、作业执行计划、字段级血缘分析等
  • 支持 Flink 元数据、数据源元数据查询及管理
  • 支持实时任务运维:作业上线下线、作业信息、集群信息、作业快照、异常信息、作业日志、数据地图、即席查询、历史版本、报警记录等
  • 支持作为多版本 FlinkSQL Server 的能力以及 OpenApi
  • 支持易扩展的实时作业报警及报警组:钉钉、微信企业号等
  • 支持完全托管的 SavePoint 启动机制:最近一次、最早一次、指定一次等
  • 支持多种资源管理:集群实例、集群配置、Jar、数据源、报警组、报警实例、文档、用户、系统配置等
  • 更多隐藏功能等待小伙伴们探索

三、发展历程

开源仓库

  • 2021年6月6日,当时 Flink 社区正如火如荼的发展,但苦于没有一款适合 Flink SQL 界面化开发的工具,于是增加了 Flink 的门槛与成本。虽然官方提供了 SQL Client,但仍有很多局限与不方便。于是 Dlink 在个人仓库开源,版本号 0.1.0。
  • 2021年6月9日,由于项目引起了诸多用户的关注,为便于贡献及管理项目,创建了 DataLinkDC (DataLink Data Center)组织来管理 dlink 开源项目,标志着 dlink 正式开源共建。
  • 2022年1月17日,Dlink 更名为 Dinky,英译为 “ 小巧而精致的 ” ,最直观的表明了它的特征:轻量级但又具备复杂的大数据开发能力,标志着 Dinky 从 FlinkSQL 开发平台转变为实时计算平台。
  • 2022年3月25日,Dinky 顺利入选 2022 年度 Gitee GVP 项目。
  • 2022年5月20日,Dinky 加入中国信通院可信开源社区共同体预备成员。

实现原理

  • 0.1.0 ~ 0.3.2 的原理如下所示,Local 和 Remote 两种实现方式,支持 Session 集群的 FlinkSQL 任务开发与提交。
  • 0.4.0 扩展了 YarnClient 的实现,从而支持了 Yarn Per-Job 和 Yarn Application 的任务提交方式。此外还支持了远程集群的任务管理,如 监控Metrics、SavePoint、停止等操作。
  • 0.5.0 带来了全新的平台架构,以支撑实时计算平台的能力,如监控、报警、血缘等。此外支持了全面的 FlinkSQL 提交方式,以及各种入仓入湖的实践分享。

数据开发

  • 0.1 版本最初的沉浸式数据开发页面的设计,比较简陋,页面固定且利用不充分。
  • 随后在 0.2 版本进行了页面布局的调整,使其元素更加紧凑。
  • 在 0.3 版本去除了页面边框,并增加了共享会话、集群进程、数据源、元数据等功能。
  • 0.3.2 版本带来了支持自定义的 FlinkSQL 自动提示与补全的实用辅助功能。
  • 0.4 版本支持页面布局拖拽。
  • 0.5 版本支持 ChangeLog 和 Table 的两种查询展示方式。
  • 0.5 版本此外还支持了 BI 统计图的渲染。
  • 0.6 版本新增了运维中心,且支持了字段级的血缘分析。

实践分享

为方便用户使用相关功能或集成其他生态,许多社区小伙伴进行了实践分享。

  • 《Flink 表值聚合操作在 Dlink 的实践》作者:文末
  • 《Dlink 实时计算平台——部署篇》作者:文末
  • 《Dlink-0.3.2 新功能 FlinkSQL 自动补全》作者:文末
  • 《Dlink 在 Hive 的实践》作者:文末
  • 《Dlink On Yarn 三种 Flink 执行方式的实践》作者:文末
  • 《Dlink 在 Flink-mysql-cdc 到 Doris 的实践》作者:文末
  • 《Dlink 如何在 IDEA 中调试开发》作者:文末
  • 《Dlink FlinkSQL构建流批一体数据平台——部署篇》作者:韩非子
  • 《Dlink 在 FinkCDC 流式入湖 Hudi 的实践分享》作者:zhumingye
  • 《Flink CDC 和 kafka 进行多源合并和下游同步更新》作者:谢帮桂
  • 《Dinky在IDEA远程调试实践分享》作者:唐修红
  • 《Dinky在Kubernetes的实践分享》作者:mydq
  • 《Dinky 扩展 Phoenix 连接器使用分享》作者:高原
  • 《Dinky 构建 Flink CDC 整库入仓入湖》作者:文末
  • 《Dinky 扩展 kudu 实践分享》作者:roohom
  • 《Dinky 扩展 iceberg 的实践分享》作者:wangyayuan

社区发展

四、问卷调查

在2022年3月31日,社区进行了为期三天的问卷调查,取前百份的调查结果研究统计分析如下所示:(数据为两个月前的调查结果,仅为参考)

目前 Apache Flink 的应用程度

未来 FlinkSQL 的应用程度

目前 FlinkSQL 的提交方式

目前 Dinky 的应用程度

未来 Dinky 的应用程度

Dinky 最吸引人的地方

五、近期预告

定时调度——DolphinScheduler 扩展 Dinky 作业类型

  • 在 Dinky 中点击 API 按钮查询当前任务的 API 手册,获取其 id。
  • 在 DolphinScheduler 中创建 DINKY 类型的 Task 节点,填写 dinky 地址与作业 ID。
  • DolphinScheduler 任务调度成功后,任务实例中可查询到 DINKY 节点执行成功。
  • Dinky 运维中心可查询到 DolphinScheduler 调度节点任务的执行状态,已完成(批任务)。

多租户及命名空间

Dinky 将提供多租户支持,多租户共用一套用户,每个租户下有单独的角色,通过角色授权命名空间,命名空间下为现有的功能模块如任务、集群、报警等。

六、参与贡献

社区推广

  • 登记 ISSUE #66 Who is using Dlink & FlinkSql?协助社区在 github 上进行案例推广。
  • 在 github 和 gitee 上 star 和 fork 源项目。
  • 分享或转发社区相关文章。

案例分享

  • 发表基于 Dinky 建设数据平台、扩展功能等案例实践分享的文章。
  • 在相关技术会议分享包含 Dinky 的生产实践经验。

代码贡献

  • 修复已知的代码 bug 至 dev 分支。
  • 优化已有的功能代码实现至 dev 分支。
  • 扩展新的功能模块实现至 dev 分支。
  • 添加 FlinkSQL 等基本使用案例至初始化数据库脚本至 dev 分支。

文档贡献

  • 完善功能文档内容
  • 贡献生态扩展案例文章
  • 贡献企业生产案例文章

致谢贡献者

aiwenmo、zhu-mingye、walkhan、coderTomato、JPengCheng、gaogao110、xiebanggui777、lewnn、yanchenyun、zackyoungh、qq314000558、gaopan-05、SlvaCoHan、chengyuan1029、wuhuiqiang2、roohom、hushenmin、liulian6、chengchuen、huzk8、fforever14、George-zqq、wmtbnbo、chaixiaoxue、fqyy365t、yqwoe‍、tgluon、Dkbei

0 人点赞