/streamx

Make stream processing easier! Flink & Spark development scaffold, The original intention of StreamX is to make the development of Flink easier. StreamX focuses on the management of development phases and tasks. Our ultimate goal is to build a one-stop big data solution integrating stream processing, batch processing, data warehouse and data laker.

Primary LanguageJavaApache License 2.0Apache-2.0


Make stream processing easier!!!

Official Website | Change Log | Document

English | δΈ­ζ–‡

StreamX

Make stream processing easier

A magical framework that make stream processing easier!

πŸš€ Introduction

The original intention of StreamX is to make stream processing easier. StreamX focuses on the management of development phases and tasks. Our ultimate goal is to build a one-stop big data solution integrating stream processing, batch processing, data warehouse and data laker.

StreamX video

πŸŽ‰ Features

  • Scaffolding
  • Out-of-the-box connectors
  • Support maven compilation
  • Configuration
  • Multi version flink support(1.12.x,1.13.x,1.14.x)
  • All Flink deployment mode support(Remote/K8s-Native-Application/K8s-Native-Session/YARN-Application/YARN-Per-Job/YARN-Session)
  • start, stop, savepoint, resume from savepoint
  • Various companies and organizations use StreamX for production and commercial products.
  • Flame graph
  • Notebook
  • Project configuration and dependency version management
  • Task backup and rollback
  • Manage dependencies
  • UDF
  • Flink SQL WebIDE
  • Catalog、Hive
  • Full support from task development to deployment
  • ...

πŸ³β€πŸŒˆ Components

Streamx consists of three parts,streamx-core,streamx-pump and streamx-console

1️⃣ streamx-core

streamx-core is a framework that focuses on coding, standardizes configuration, and develops in a way that is better than configuration by convention. Also it provides a development-time RunTime Content and a series of Connector out of the box. At the same time, it extends DataStream some methods, and integrates DataStream and Flink sql api to simplify tedious operations, focus on the business itself, and improve development efficiency and development experience.

2️⃣ streamx-pump

streamx-pump is a planned data extraction component, similar to flinkx. Based on the various connector provided in streamx-core, the purpose is to create a convenient, fast, out-of-the-box real-time data extraction and migration component for big data, and it will be integrated into the streamx-console.

3️⃣ streamx-console

streamx-console is a stream processing and Low Code platform, capable of managing Flink tasks, integrating project compilation, deploy, configuration, startup, savepoint, flame graph, Flink SQL, monitoring and many other features. Simplify the daily operation and maintenance of the Flink task.

Our ultimate goal is to build a one-stop big data solution integrating stream processing, batch processing, data warehouse and data laker.

Thanks to the above excellent open source projects and many outstanding open source projects that are not mentioned, for giving the greatest respect,Thanks to Apache Flink for creating a great project! Thanks to the Apache Zeppelin project for the early inspiration.

πŸš€ Quick Start

git clone https://github.com/streamxhub/streamx.git
cd streamx
./mvnw clean install -DskipTests -Denv=prod

click Document for more information

πŸ‘» Why not...❓

Apache Zeppelin

Apache Zeppelin is a Web-based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Java, Scala and more.

At the same time we also need a one-stop tool that can cover development, test, package, deploy, and start. streamx-console solves these pain points very well, positioning is a one-stop stream processing platform, and has developed more exciting features (such as Flink SQL WebIDE, dependency isolation, task rollback , flame diagram etc.)

FlinkX

FlinkX is a distributed offline and real-time data synchronization framework based on flink widely used in DTStack, which realizes efficient data migration between multiple heterogeneous data sources.

StreamX focuses on the management of development phases and tasks. The streamx-pump module is also under planning, dedicated to solving data source migration, and will eventually be integrated into the streamx-console.

🀝 Contributing

PRs Welcome

You can submit any ideas as pull requests or as GitHub issues.

If you're new to posting issues, we ask that you read How To Ask Questions The Smart Way (This guide does not provide actual support services for this project!), How to Report Bugs Effectively prior to posting. Well written bug reports help us help you!

Thanks to JetBrains for supporting us free open source licenses.

JetBrains

πŸ’° Donation

Are you enjoying this project ? πŸ‘‹

If you like this framework, and appreciate the work done for it to exist, you can still support the developers by donating β˜€οΈ πŸ‘Š

WeChat Pay Alipay
Buy Me A Coffee Buy Me A Coffee

πŸ† My sponsors (Coffee Suppliers)

πŸ’œ Monthly Supplier

Welcome individuals and enterprises to sponsor, your support will help us better develop the project

πŸ₯‡ Gold Supplier

πŸ₯ˆ Platinum Supplier

πŸ₯ˆ Silver Supplier

πŸ… Backers

Thank you to all our backers!

πŸ’¬ Join us

StreamX enters the high-speed development stage, we need your contribution.

Stargazers over time

Join the Group