Dinky 让Flink作业纵享丝滑

1.Dinky是什么?

Dinky 是一个开箱即用的一站式实时计算平台,以 Apache Flink 为基础,连接 OLAP 和数据湖等众多框架,致力于流批一体和湖仓一体的建设与实践。Dinky 让Flink作业纵享丝滑,为 Apache Flink 深度定制的新一代实时计算平台,提供敏捷的 Flink SQL, Flink Jar 作业开发、部署及监控能力,助力实时计算高效应用。

2.特性

  • 沉浸式 FlinkSQL 数据开发:自动提示补全、语法高亮、语句美化、在线调试、语法校验、执行计划、Catalog支持、血缘分析等
  • Flink SQL语法增强,如 CDC任务,jar任务,实时打印表数据,实时数据预览,全局变量增强,语句合并、整库同步等
  • 适配 FlinkSQL 多种执行模式:Local、Standalone、Yarn/Kubernetes Session、Yarn Per-Job、Yarn/Kubernetes Application
  • 增强 Flink 生态拓展:Connector、FlinkCDC、Table Store 等
  • 支持 FlinkCDC 整库实时入仓入湖、多库输出、自动建表、模式演变
  • 支持 Flink Java / Scala / Python UDF 开发与自动提交
  • 支持 SQL 作业开发:ClickHouse、Doris、Hive、Mysql、Oracle、Phoenix、PostgreSql、Presto、SqlServer、StarRocks 等
  • 支持实时在线调试预览 Table、 ChangeLog、统计图和 UDF
  • 支持 Flink Catalog、Dinky内置Catalog增强,数据源元数据在线查询及管理
  • 支持自动托管的 SavePoint/CheckPoint 恢复及触发机制:最近一次、最早一次、指定一次等
  • 支持实时任务运维:作业信息、集群信息、作业快照、异常信息、历史版本、报警记录等
  • 支持作为多版本 FlinkSQL Server 以及 OpenApi 的能力
  • 支持实时作业报警及报警组:钉钉、微信企业号、飞书、邮箱等
  • 支持多种资源管理:集群实例、集群配置、数据源、报警组、报警实例、文档、系统配置等
  • 支持企业级管理功能:多租户、用户、角色、命名空间等
  • 更多隐藏功能等待小伙伴们探索

3.官方文档及项目地址

https://dinky.org.cn/docs/next/get_started/overview
https://github.com/DataLinkDC/dinky

4.安装部署

4.1安装mysql数据库

首先需要安装一个mysql数据,可以参考如下文章:

https://blog.csdn.net/qq_34905631/article/details/134951201?spm=1001.2014.3001.5501
https://mp.weixin.qq.com/s/5PC_VXtNc8689ag8b8cYLA

4.2 数据库初始化

本文安装的数据库是mysql8.0.28,所以这里执行如下mysql的脚本:

mysql 复制代码
#登录mysql
mysql -uroot -p
#创建数据库
mysql>
CREATE DATABASE dinky;
#创建用户并允许远程登录
mysql>
create user 'dinky'@'%' IDENTIFIED WITH mysql_native_password by 'dinky';
#授权
mysql>
grant ALL PRIVILEGES ON dinky.* to 'dinky'@'%';
mysql>
flush privileges;

mysql5.x需要执行如下脚本:

mysql 复制代码
#登录mysql
mysql -uroot -p
#创建数据库
mysql>
create database dinky;
#授权
mysql>
grant all privileges on dinky.* to 'dinky'@'%' identified by 'dinky' with grant option;
mysql>
flush privileges;

本文使用Docker-Desktop桌面版安装的docker,有兴趣的可以参看我写的相关文章,在windows上安装docker就省略了,需要进入容器里面执行上面的脚本,相关脚本官方文档上都有详细的说明。

接下来就需要执行sql脚本,本文安装的dink的版本是1.0.3单机版,使用docker方式部署

https://github.com/DataLinkDC/dinky/blob/1.0.3/script/sql/dinky-mysql.sql

4.3挂载及启动命令

挂载路径如下:

Windows10启动脚本:

shell 复制代码
docker run --restart=always -d -p 8888:8888 --name dinky -e DB_ACTIVE=mysql -e MYSQL_ADDR=192.168.40.49:3306 -e MYSQL_DATABASE=dinky -e MYSQL_USERNAME=dinky -e MYSQL_PASSWORD=dinky -v "D:\dinky\lib":/opt/dinky/customJar/  dinkydocker/dinky-standalone-server:1.0.3-flink1.17

Linux启动脚本:

shell 复制代码
docker run --restart=always -d -p 8888:8888 --name dinky -e DB_ACTIVE=mysql -e MYSQL_ADDR=192.168.40.49:3306 -e MYSQL_DATABASE=dinky -e MYSQL_USERNAME=dinky -e MYSQL_PASSWORD=dinky -v /opt/lib:/opt/dinky/customJar/  dinkydocker/dinky-standalone-server:1.0.3-flink1.17

需要注意的是MYSQL_ADDR需要填写docker部署mysql的wifi网络的ip,不要填写本机127.0.0.1,填写本机127.0.0.1启动回报数据库连接被拒绝的异常,需要数据库网络通畅且前一步的脚步执行正确(创建数据库,用户、执行建表sql脚本及授权都整对),还有要注意一点就是,相关flink版本的镜像需要去国外的docker仓库上搜索dinkydocker,下载指定的tag的镜像即可,还有需要注意一点需要科学上网才可以将镜像下载下来。

https://hub.docker.com/

5.登录体验

初始账户名密码如下:

初始账户
用户名: admin
密码 :dinky123!@#

6.总结

Dinky的部署方式还有很多:二进制可执行包部署,源码编译部署,docker-compose部署,k8s部署等,支持多种flink模式提交任务,使用flink支持整库同步、增量和实时CDC数据同步,还集成DolphinScheduler(小海豚调度平台),支持主流的关系型数据库、OLAP数据库和数据湖产品,还有运维监控功能,可视化管理flink任务,Dink 让Flink作业纵享丝滑,由于我本机没有flink的环境(flink的环境搭建起来比较麻烦,后续有实践在搞 一个完整的作业环境分享),单纯的部署了一个单机版的体验了下,然后看了下官方的文档也比较详细,各种环境搞起来还是有点难搞的,之前也分享了StreamPark、SeaTunnel,新的开源的东西,让我们有更多的选择,根据自己的需求来选择适合的开源平台解决业务的痛点问题是比较耐思的,希望我的分享对你有所启发和帮助,请一键三连,么么么哒!

相关推荐
qtj-00135 分钟前
普通人在刚开始做副业时要注意哪些细节?
大数据·微信·新媒体运营·创业创新
知识分享小能手1 小时前
mysql学习教程,从入门到精通,SQL 修改表(ALTER TABLE 语句)(29)
大数据·开发语言·数据库·sql·学习·mysql·数据分析
a6953188_1 小时前
如何评估一个副业项目的可行性?
大数据·微信·创业创新
州周1 小时前
Flink一点整理
大数据·flink
柚乐果果2 小时前
数据分析实战简例
java·大数据·python
Data 3172 小时前
Hive数仓操作(九)
大数据·数据仓库·hive·hadoop
丶21363 小时前
【大数据】Elasticsearch 实战应用总结
大数据·elasticsearch·搜索引擎
闲人编程3 小时前
elasticsearch实战应用
大数据·python·elasticsearch·实战应用
Data 3176 小时前
Hive数仓操作(三)
大数据·数据库·数据仓库·hive·hadoop
斯凯利.瑞恩6 小时前
大数据分析入门概述
大数据·linux·数据库·sql·hdfs·bi