Skip to content
/ streamx Public
forked from apache/streampark

一个神奇的框架,让Flink开发更简单

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
license-header
Notifications You must be signed in to change notification settings

gyp03/streamx

This branch is 2142 commits ahead of, 1992 commits behind apache/streampark:dev.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

cb0ac8d · Apr 22, 2021
Apr 3, 2021
Apr 19, 2021
Apr 22, 2021
Apr 20, 2021
Apr 19, 2021
Feb 24, 2021
Oct 16, 2020
Dec 26, 2020
Apr 16, 2021
Dec 26, 2020
Mar 24, 2021
Apr 11, 2021

Repository files navigation


StreamX logo

🏳️‍🌈 StreamX 🏳️‍🌈

Let flink|spark easy!!!

StreamX

let flink|spark easy

一个神奇的框架,让Flink开发更简单

🚀 什么是StreamX

    大数据技术如今发展的如火如荼,已经呈现百花齐放欣欣向荣的景象,实时处理流域 Apache SparkApache Flink 更是一个伟大的进步,尤其是Apache Flink被普遍认为是下一代大数据流计算引擎, 我们在使用 Flink 时发现从编程模型, 启动配置到运维管理都有很多可以抽象共用的地方, 我们将一些好的经验固化下来并结合业内的最佳实践, 通过不断努力终于诞生了今天的框架 —— StreamX, 项目的初衷是 —— 让 Flink 开发更简单, 使用StreamX开发,可以极大降低学习成本和开发门槛, 让开发者只用关心最核心的业务,StreamX 规范了项目的配置,鼓励函数式编程,定义了最佳的编程方式,提供了一系列开箱即用的Connectors,标准化了配置、开发、测试、部署、监控、运维的整个过程, 提供scalajava两套api, 其最终目的是打造一个一站式大数据平台,流批一体,湖仓一体的解决方案

🎉 Features

  • 开发脚手架
  • 一系列开箱即用的connectors
  • 支持项目编译功能(maven 编译)
  • 在线参数配置
  • 支持Applicaion 模式, Yarn-Per-Job模式启动
  • 快捷的日常操作(任务启动停止savepoint,从savepoint恢复)
  • 支持火焰图
  • 支持notebook(在线任务开发)
  • 项目配置和依赖版本化管理
  • 支持任务备份、回滚(配置回滚)
  • 在线管理依赖(maven pom)和自定义jar
  • 自定义udf、连接器等支持
  • Flink SQL WebIDE
  • 支持catalog、hive
  • 从任务开发阶段到部署管理全链路支持
  • ...

🏳‍🌈 组成部分

Streamx有三部分组成,分别是streamx-core,streamx-pumpstreamx-console

1️⃣ streamx-core

streamx-core 定位是一个开发时框架,关注编码开发,规范了配置文件,按照约定优于配置的方式进行开发,提供了一个开发时 RunTime Content和一系列开箱即用的Connector,扩展了DataStream相关的方法,融合了DataStreamFlink sql api,简化繁琐的操作,聚焦业务本身,提高开发效率和开发体验

2️⃣ streamx-pump

pump 是抽水机,水泵的意思,streamx-pump的定位是一个数据抽取的组件,类似于flinkx,基于streamx-core中提供的各种connector开发,目的是打造一个方便快捷,开箱即用的大数据实时数据抽取和迁移组件,并且集成到streamx-console中,解决实时数据源获取问题,目前在规划中

3️⃣ streamx-console

streamx-console 是一个综合实时数据平台,低代码(Low Code)平台,可以较好的管理Flink任务,集成了项目编译、发布、参数配置、启动、savepoint,火焰图(flame graph),Flink SQL, 监控等诸多功能于一体,大大简化了Flink任务的日常操作和维护,融合了诸多最佳实践。旧时王谢堂前燕,飞入寻常百姓家,让大公司有能力研发使用的项目,现在人人可以使用, 其最终目标是打造成一个实时数仓,流批一体的一站式大数据解决方案,该平台使用但不仅限以下技术:

感谢以上优秀的开源项目和很多未提到的优秀开源项目,给予最大的respect,特别感谢Apache Zeppelin,IntelliJ IDEA, 感谢fire-spark项目,早期给予的灵感和帮助, 感谢我老婆在项目开发时给予的支持,悉心照顾我的生活和日常,给予我足够的时间开发这个项目

👻 为什么不是...❓

Apache Zeppelin

Apache Zeppelin是一个非常优秀的开源项目👏 对Flink做了很好的支持,Zeppelin创新型的notebook功能,让开发者非常方便的On-line编程,快捷的提交任务,语言层面同时支持java,scala,python,国内阿里的章剑峰大佬也在积极推动该项目,向剑峰大佬致以崇高的敬意🙏🙏🙏, 但该项目目前貌似没有解决项目的管理和运维方面的痛点,针对比较复杂的项目和大量的作业管理就有些力不从心了,一般来讲不论是DataStream作业还是Flink SQL作业,大概都会经历作业的开发阶段,测试阶段,打包阶段,上传服务器阶段,启动任务阶段等这些步骤,这是一个链路很长的步骤,且整个过程耗时比较长,体验不好, 即使修改了一个符号,项目改完上线都得走上面的流程,我们期望这些步骤能够动动鼠标一键式解决,还希望至少能有一个任务列表的功能,能够方便的管理任务,可以清楚的看到哪些任务正在运行,哪些停止了,任务的资源消耗情况,可以在任务列表页面一键启动停止任务,并且自动管理savePoint,这些问题也是开发者实际开发中会遇到了问题, streamx-console很好的解决了这些痛点,定位是一个一站式实时数据平台,并且开发了更多令人激动的功能(诸如Flink SQL WebIDE,依赖隔离,任务回滚,火焰图等)

FlinkX

FlinkX 是基于flink的分布式数据同步工具,实现了多种异构数据源之间高效的数据迁移,定位比较明确,专门用来做数据抽取和迁移,可以作为一个服务组件来使用,StreamX关注开发阶段和任务后期的管理,定位有所不同,streamx-pump模块也在规则中, 致力于解决数据源抽取和迁移,最终会集成到streamx-console

🍼 Feedback

你可以快速的提一个ISSUES ,在提之前,请检查问题后再尝试使用以下联系方式!也许你的问题已经被别人问到了,或者已经被回答了。谢谢!

您可以通过以下方法向我提供反馈或问题:

💰 Donation

Are you enjoying this project ? 👋

StreamX 采用 Apache LICENSE 2.0 许可的开源项目,使用完全免费, 旧时王谢堂前燕,飞入寻常百姓家,让大公司有能力研发使用的项目,现在人人都可以使用,流批一体,湖仓一体,数据湖是大数据领域的趋势, StreamX现在离这个目标还有一段距离,还需持续投入,相应的资金支持能更好的持续项目的维护和开发。你可以通过下列的方法来赞助 StreamX 的开发, 欢迎捐助,一起来帮我们做的更好! ☀️ 👊

Wechat 微信支付 Alipay 支付宝支付
Buy Me A Coffee Buy Me A Coffee

所有赞助人将在赞助人名单中显示。

🏅 我的赞助

虚席以待,快快来赞助我们吧,你的名字将出现在这里

💬 加入社区

Streamx已正式开源,现已经进入高速发展模式,如果您觉得还不错请在右上角点一下star,帮忙转发,谢谢 🙏🙏🙏 大家的支持是开源最大动力, 你可以扫下面的二维码加入官方微信群,更多相关信息请访问官网

Stargazers over time

扫我加群

About

一个神奇的框架,让Flink开发更简单

Resources

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
license-header

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 37.0%
  • Scala 28.9%
  • Vue 16.6%
  • JavaScript 5.3%
  • Shell 4.2%
  • Perl 4.0%
  • Other 4.0%