当前位置: 首页 > news >正文

docker搭建Dinky —— 筑梦之路

简介

Dinky 是一个 开箱即用 、易扩展 ,以 Apache Flink 为基础,连接 OLAP 和 数据湖 等众多框架的 一站式 实时计算平台,致力于 流批一体 和 湖仓一体 的探索与实践。

主要功能

其主要功能如下:

  • 沉浸式 FlinkSQL 数据开发:自动提示补全、语法高亮、语句美化、在线调试、语法校验、执行计划、MetaStore、血缘分析、版本对比等
  • 支持 FlinkSQL 多版本开发及多种执行模式:Local、Standalone、Yarn/Kubernetes Session、Yarn Per-Job、Yarn/Kubernetes Application
  • 支持 Apache Flink 生态:Connector、FlinkCDC、Table Store 等
  • 支持 FlinkSQL 语法增强:整库同步、执行环境、全局变量、语句合并、表值聚合函数、加载依赖、行级权限等
  • 支持 FlinkCDC 整库实时入仓入湖、多库输出、自动建表
  • 支持 SQL 作业开发:ClickHouse、Doris、Hive、Mysql、Oracle、Phoenix、PostgreSql、Presto、SqlServer、StarRocks 等
  • 支持实时在线调试预览 Table、ChangeLog、Charts 和 UDF
  • 支持 Flink Catalog、数据源元数据在线查询及管理
  • 支持实时任务运维:上线下线、作业信息、集群信息、作业快照、异常信息、数据地图、数据探查、历史版本、报警记录等
  • 支持作为多版本 FlinkSQL Server 以及 OpenApi 的能力
  • 支持实时作业报警及报警组:钉钉、微信企业号、飞书、邮箱等
  • 支持自动托管的 SavePoint/CheckPoint 恢复及触发机制:最近一次、最早一次、指定一次等
  • 支持多种资源管理:集群实例、集群配置、Jar、数据源、报警组、报警实例、文档、全局变量、系统配置等
  • 支持企业级管理:多租户、用户、角色、项目空间

Dinky 不依赖任何外部的 Hadoop 或者 Flink 环境,可以单独部署在 flink、 hadoop 和 K8S 集群之外,完全解耦,支持同时连接多个不同的集群实例进行运维。 

 

优化Flink体验


 1、沉浸式的 FlinkSQL IDE

  • Apache Flink 提供了 sql-client,但 sql-client 仅作为一个 beta 的功能,难以被应用到生产中
  • Dinky 提供了沉浸式的 FlinkSQL IDE 开发能力,提供了自动提示与补全、语法高亮、语句美化、语法校验和逻辑检查、调试预览结果、字段级血缘分析等专业的功能,使 FlinkSQL 的开发如同 SQL 开发一样舒适与简单

2、极易用的任务构建方式

  • Flink 在构建 FlinkSQL Jar 任务时通常需要考虑依赖及版本的维护、代码的编写、繁琐的编译打包过程等。

  •  Dinky 将 FlinkSQL 任务的构建进行了极简,开发人员只需要专注 FlinkSQL 的口径书写,并且可以实时进行检查与调试,在任务提交的过程则是快速的自动化托管,以实现一个 FlinkSQL 语句可以在所有的执行模式与外部集群上随意切换。

  •  对于 Dinky 来说,主要划分两类用户。一类是平台运维人员,该人员需要根据官网文档及自身的 Flink 知识储备来手动搭建稳定的 Dinky 运作环境,门槛较高;另一类是数据开发人员,该类人员只需熟悉 FlinkSQL 的语法与常见的应用场景,即可快速高效地进行 FlinkSQL 的开发与运维,达到易用的任务构建方式。这也是最符合企业生产团队的分工策略,平台和开发分离。

3、无侵入的部署模式

  • 一些开源项目或自建平台通常需要绑死 Flink 集群或者侵入 Flink 的源码,容易 Flink 功能受限或在搭建和后续扩展时出现问题。

  •  Dinky 则是完全无侵入,可部署与各个集群之外,同时连接和监控多个集群。轻易地对接各个版本的 Flink 集群与公司内仓库分支优化过的 Flink 集群,完全兼容 Flink 自身的 connector、udf、cdc 等。

4、增强式的功能体验

  • 一些开源项目及自建平台一般只专注于 Flink 任务的提交与运维。

  •  Dinky 则不同,为更舒适地使用 Flink 的相关功能进行的功能增强,如表值聚合函数、全局变量、CDC多源合并、执行环境、语句合并、共享会话等,并且还在不断地扩展新的功能增强,以使 Flink 更贴近企业的需求。

5、实时的监控报警

  • Dinky 提供实时的监控报警能力,实时守护已上线的流或批任务,在任务触发异常停止和成功完成时都会实时报警通知,并且记录了外部集群实时的任务信息,摆脱 History Server 的限制,弥补 deploy 的集群作业失败后信息难查询的不足,用户随时随地都可追溯历史作业的执行信息与异常。

6、一站式的开发运维

  • Dinky 提供了一站式的开发运维能力,从 FlinkSQL 开发调试到作业上线下线的运维监控,再到数据源的 OLAP 及普通查询能力等,使得数仓建设或数据治理过程中所有的工作均可以在 Dinky 上完成。

7、易扩展的代码实现

  • Dinky 非常注重代码的扩展能力,在源码中大量使用了 SPI 机制来支持用户低成本地自定义扩展新功能,比如数据源、报警方式、自定义语法等扩展。

  •  Dinky 的功能体验也十分注重扩展能力,在功能设计上尽可能地开放了最大的配置能力,如自定义提示与补全语法、自定义数据源的Flink 配置与生成规则、自定义全局变量、自定义Flink执行环境、自定义集群配置的各种配置项等等。

  •  Dinky 的外部对接也很注重扩展能力,基于 SpringBoot 的代码的高内聚和低耦合以及提供多种规范的 OpenAPI 使其可以很方便地扩展第三方生态、微服务或者平台。

8、小而美的产品形态

  • 常规的大数据平台或者开源项目一般是十分庞大的,维护成本较高。

  •  正如 Dinky 本名所释,小巧而精美,一直是开源项目建设的首要目标。小巧具体指易搭建、不绑定任何外部中间件或文件系统、代码简洁易维护;精美则指沉浸式的页面、经过打磨的各种功能等。

Next 


 1、多租户及命名空间

  • Dinky 目前需要一个多租户的能力来分离业务数据及资源队列,需要命名空间来增强和规范代码业务逻辑的实现与扩展。

2、全局血缘与影响分析

  • Dinky 目前需要将所有的字段级血缘进行存储,以构建全局的血缘和影响分析,方便用户更容易地追溯数据问题。

3、统一元数据管理

  • Dinky 目前需要统一的元数据中心来管理外部数据源元数据,使其可以自动同步数据库物理模型与平台逻辑模型之间的结构,增强平台一站式的开发能力。

4、Flink 元数据持久化

  • Dinky 目前需要持久化 Flink Catalog,使作业开发时不再需要编写 CREATE TABLE 等语句,转变为可视化的元数据管理功能。

5、多版本 Flink-Client Server

  • Dinky 目前的 Flink 多版本支持需要启动多个不同版本的实例来支持。未来需要实现客户端与服务端分离,单独实现多版本的 Server。

6、整库同步

  • 数据库的整库同步是一个常见的场景,Dinky 未来将提供一个简短的 FlinkSQL 实现整库同步任务构建的能力。

 docker一键启动

1. 准备mysql

使用mysql5.7或者mysql8.0及以上的版本

创建一个库名dinky,然后将dinky.sql导入

2. 创建容器

docker run -d --restart=always -p 8888:8888 -p 8081:8081  -e MYSQL_ADDR=192.168.100.30:3306 -e MYSQL_DATABASE=dinky -e MYSQL_USERNAME=dinky -e MYSQL_PASSWORD=NSpRXYeHBsBy6yH5 --name dinky registry.cn-hangzhou.aliyuncs.com/dinky/dinky-standalone-server:0.7.0-flink14

3.访问测试

访问http://ip:8888端口,用户名密码为admin 

相关文章:

docker搭建Dinky —— 筑梦之路

简介 Dinky 是一个 开箱即用 、易扩展 ,以 Apache Flink 为基础,连接 OLAP 和 数据湖 等众多框架的 一站式 实时计算平台,致力于 流批一体 和 湖仓一体 的探索与实践。 主要功能 其主要功能如下: 沉浸式 FlinkSQL 数据开发&#x…...

Python基础(十四、数据容器之集合Set)

文章目录 一、集合语法二、集合的基本操作添加元素删除元素随机删除元素,可获得删除的值清空取出2个集合的差集消除2个集合的差集合并2个集合集合元素个数查询元素是否存在 遍历集合集合的遍历 什么是数据容器? 数据容器是Python中用于存储和操作数据的对…...

OpenHarmony之HDF驱动框架

概述 HDF(Hardware Driver Foundation)驱动框架,为驱动开发者提供驱动框架能力,包括驱动加载、驱动服务管理、驱动消息机制和配置管理。并以组件化驱动模型作为核心设计思路,让驱动开发和部署更加规范,旨在…...

深入浅出理解TensorFlow的padding填充算法

一、参考资料 notes_on_padding_2 二、TensorFlow的padding算法 本文以TensorFlow v2.14.0版本为例,介绍TensorFlow的padding算法。 tf.nn.conv2d # https://github.com/tensorflow/tensorflow/blob/v2.14.0/tensorflow/python/ops/nn_ops.py#L2257-L2361paddi…...

TDD-LTE 附着流程和去附着流程

目录 1. 附着流程 1.1. 正常附着流程 2. 异常附着流程 2.1 RRC建立失败 2.2 核心网拒绝 2.3 eNodeB未收到初始化上下文建立请求 2.4 RRC重配置请求丢失 2. 去附着流程 2.1 非关机去附着流程 2.1.1 连接态非关机去附着 2.1.2 空闲态非关机去附着 2.2 关机去附着流程 …...

[Angular] 笔记 23:Renderer2 - ElementRef 的生产版本

chatgpt: Renderer2 简介 在 Angular 中,Renderer2 是一个服务,用于处理 DOM 操作的抽象层。它提供了一种安全的方式来操作 DOM,同时与平台无关,有助于维护应用程序的跨浏览器兼容性和安全性。 Renderer2 的作用是在 Angular 组…...

WEB:探索开源OFD.js技术应用

1、简述 OFD.js 是一个由开源社区维护的 JavaScript 库,专注于在浏览器中渲染和处理 OFD 文件。OFD 作为一种开放式的文档格式,被广泛应用于电子政务、电子合同等领域。OFD.js 的出现为开发者提供了一个强大的工具,使得在前端实现 OFD 文件的…...

平方根,又叫二次方根,表示为〔√ ̄〕

正在加载中... 平方根,又叫二次方根,表示为〔√ ̄〕,如: 平方根,又叫二次方根,表示为〔√ ̄〕,如:数学语言为:√ ̄164。语言描述为&…...

Springer Latex正文参考文献样式改为数字

用过爱斯唯尔的latex,正文参考文献都是数字,第一次用Springer Latex的参考文献竟然是authoryear,如下: 将这种样式变回序号样式: (1)使用这个documentclass(此为双栏) …...

六、typescript泛型使用

1.identity函数,这个函数会返回任何传入它的值,可以看作是echo命令 function identity(arg:number):number {return arg }或 使用any类型会导致这个函数可以接收任何类型的参数,这样会丢失一些信息,传入与返回类型应该是相同的 有…...

【快慢指针】26.删除有序数组中的重复项

题目 法1&#xff1a;快慢指针 基础解法&#xff0c;必须掌握&#xff01;&#xff01;&#xff01; class Solution {public int removeDuplicates(int[] nums) {if (nums.length < 2) {return nums.length;}int slow 0, fast 1;while (fast < nums.length) {if (n…...

爬虫工作量由小到大的思维转变---<第三十一章 Scrapy Redis 初启动/conn说明书)>

前言: 重点在读connection.py的源码,这个组件主要是用来连接的; 因为连接都无法做到,后面想更改点自定义就白扯了; 正文: 翻译版的connection.py源码: import sys import six from scrapy.utils.misc import load_object from . import defaults# 快捷方式映射 设置名称 -&…...

2023年山东省职业院校技能大赛高职组“软件测试”赛项-单元测试报告答案

任务四 单元测试 目录 任务四 单元测试 题目1: 题目2: 题目3:<...

Matlab论文插图绘制模板第133期—函数极坐标折线图

在之前的文章中&#xff0c;分享了Matlab函数折线图的绘制模板&#xff1a; 函数三维折线图&#xff1a; 函数网格曲面图&#xff1a; 函数曲面图&#xff1a; 函数等高线图&#xff1a; 函数等高线填充图&#xff1a; 进一步&#xff0c;再来分享一下函数极坐标折线图。 先来…...

如何用 GPT 去分析Excel数据

背景 需要尝试分析 Excel 的内容&#xff0c;每月都需要进行相关的分析&#xff0c;固定化流程&#xff0c;因此尝试制作固化的脚本&#xff0c;方便后续的分析。 执行步骤 帮我写一段 python 代码&#xff0c;我需要区分一个.xlsx的数据。格式示例如下&#xff1a; ”这块自…...

力扣labuladong一刷day51天单调栈应用

力扣labuladong一刷day51天单调栈应用 一、239. 滑动窗口最大值 题目链接&#xff1a;https://leetcode.cn/problems/sliding-window-maximum/ 思路&#xff1a;滑动窗口最大值&#xff0c;既要维护加入的时间顺序&#xff0c;又要 class Solution {public int[] maxSliding…...

单片机相关知识点

在STM32上运行FreeRTOS&#xff0c;十分简练的小文章FreeRTOS&#xff08;STM32CubeMX&#xff09;_cubemx freertos-CSDN博客...

009:vue结合el-table实现表格行拖拽排序(基于sortablejs)

文章目录 1. 实现效果2. 安装 sortablejs 插件3. 完整组件代码4. 注意点 1. 实现效果 2. 安装 sortablejs 插件 sortablejs 更多用法 cnpm i --save sortablejs3. 完整组件代码 <template><div class"home"><div class"body"><el-ta…...

C语言KR圣经笔记 5.3指针和数组 5.4地址运算

5.3 指针和数组 在 C 语言中&#xff0c;指针和数组有着非常强的关联&#xff0c;强到应当把两者同时拿出来讨论。任何可以通过数组下标来做到的操作&#xff0c;也都能用指针来做到。而指针的版本通常会更快&#xff0c;但至少对初学者来说会更难理解。 如下声明 int a[10]…...

设计模式:简单工厂模式、工厂方法模式、抽象工厂模式

简单工厂模式、工厂方法模式、抽象工厂模式 1. 为什么需要工厂模式&#xff1f;2. 简单工厂模式2.1. 定义2.2. 代码实现2.3. 优点2.4. 缺点2.5. 适用场景 3. 工厂方法模式3.1. 有了简单工厂模式为什么还需要有工厂方法模式&#xff1f;3.2. 定义3.3. 代码实现3.4. 主要优点3.5.…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能

1. 开发环境准备 ​​安装DevEco Studio 3.1​​&#xff1a; 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK ​​项目配置​​&#xff1a; // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码"&#xff1a;Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力&#xff0c;从金融交易到交通管控&#xff0c;这些关乎国计民生的关键领域…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知&#xff0c;帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量&#xff0c;能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度&#xff0c;还为机器人、医疗设备和制造业的智…...

门静脉高压——表现

一、门静脉高压表现 00:01 1. 门静脉构成 00:13 组成结构&#xff1a;由肠系膜上静脉和脾静脉汇合构成&#xff0c;是肝脏血液供应的主要来源。淤血后果&#xff1a;门静脉淤血会同时导致脾静脉和肠系膜上静脉淤血&#xff0c;引发后续系列症状。 2. 脾大和脾功能亢进 00:46 …...

医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor

1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...

python可视化:俄乌战争时间线关键节点与深层原因

俄乌战争时间线可视化分析&#xff1a;关键节点与深层原因 俄乌战争是21世纪欧洲最具影响力的地缘政治冲突之一&#xff0c;自2022年2月爆发以来已持续超过3年。 本文将通过Python可视化工具&#xff0c;系统分析这场战争的时间线、关键节点及其背后的深层原因&#xff0c;全面…...

[10-1]I2C通信协议 江协科技学习笔记(17个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17...