Tackling Real Time Streaming Data With SQL Using RisingWave
Feb 4, 2024
auto_awesome
The podcast discusses the RisingWave database engine for stream processing on S3, its architecture, challenges faced, and potential integration with a data lakehouse. It explores the use of Kafka for buffering and converting data formats, enhancing Postgres with real-time processing, and the differences in change data capture handling. The episode also covers workflow, onboarding, integration, and unexpected use cases of RisingWave in the manufacturing industry.
RisingWave is a distributed SQL stream database built on top of S3, aiming to make stream processing more accessible and cost-efficient.
RisingWave focuses on scaling up before scaling out and automating the user experience to make it easy for users to experiment with the database.
RisingWave aims to provide a unified solution for real-time and batch data processing, with integrations with upstream and downstream systems.
Deep dives
The Rising Wave Database: A Novel Cloud-Native Stream Processing Engine
Rising Wave Labs has built a distributed SQL stream database that is built on top of S3. The main goal of Rising Wave is to make stream processing more accessible and cost-efficient. They aim to achieve this by providing a familiar SQL programming model and taking advantage of the cloud-native architecture. The database is designed to handle real-time analytics over Kafka data and can also serve as a booster for existing databases like Postgres. The architecture of Rising Wave involves the decoupling of computing and storage, with S3 serving as the primary storage layer. They are also working on integrating with the iceberg ecosystem to provide efficient query processing.
Challenges and Solutions in Scaling and Managing Distributed Stream Processing
Scaling and managing distributed stream processing systems come with its challenges. Rising Wave tackles some of these challenges by focusing on scaling up before scaling out. They have also put efforts into automating the user experience, making it easy for users to experiment with Rising Wave in their local machines. In terms of the overall workflow, Rising Wave provides a range of integrations with upstream and downstream systems, making it easier for teams to incorporate it into their existing data stacks. They have also built their own Change Data Capture (CDC) processing for Postgres and MySQL, with a focus on preserving transactional semantics. Rising Wave is continuously working to make batch processing a part of their system, as well as improving integration with the data lake ecosystem.
Lessons Learned and Future Plans for Rising Wave
One of the key lessons learned while working on Rising Wave is to focus not just on the technology itself, but also on understanding the user journey and where Rising Wave fits into their data stack. Users often want a system that can be easily integrated into their existing setup, without the need for additional complexity. As for future plans, Rising Wave is excited about adding batch processing capabilities to enhance their product. They are also looking to better align with the data lake ecosystem by integrating with data formats like iceberg. Educating users about stream processing and its benefits is another area they are committed to working on.
Use Cases and Impact of Rising Wave
Rising Wave has been applied across various industries and has found unexpected use cases. For example, one of the largest TV mainboard manufacturers adopted Rising Wave to monitor their production lines in real-time. This demonstrated that Rising Wave is not limited to tech companies and can bring value to the manufacturing industry. The ability to use Rising Wave as a booster for databases like Postgres has also been well-received. Overall, Rising Wave aims to democratize stream processing and provide a unified solution for real-time and batch data processing.
The Vision and Gap in Data Management Technology
The vision for Rising Wave is to make stream processing technology more accessible. However, there is a gap in the tooling and technology available for data management. The focus should be on wrapping the technology in easy-to-use products that can be installed and used on developers' local machines. This gap in user-friendly tooling presents an opportunity for improvement in the data management space.
Stream processing systems have long been built with a code-first design, adding SQL as a layer on top of the existing framework. RisingWave is a database engine that was created specifically for stream processing, with S3 as the storage layer. In this episode Yingjun Wu explains how it is architected to power analytical workflows on continuous data flows, and the challenges of making it responsive and scalable.
Announcements
Hello and welcome to the Data Engineering Podcast, the show about modern data management
Data lakes are notoriously complex. For data engineers who battle to build and scale high quality data workflows on the data lake, Starburst powers petabyte-scale SQL analytics fast, at a fraction of the cost of traditional methods, so that you can meet all your data needs ranging from AI to data applications to complete analytics. Trusted by teams of all sizes, including Comcast and Doordash, Starburst is a data lake analytics platform that delivers the adaptability and flexibility a lakehouse ecosystem promises. And Starburst does all of this on an open architecture with first-class support for Apache Iceberg, Delta Lake and Hudi, so you always maintain ownership of your data. Want to see Starburst in action? Go to dataengineeringpodcast.com/starburst and get $500 in credits to try Starburst Galaxy today, the easiest and fastest way to get started using Trino.
Dagster offers a new approach to building and running data platforms and data pipelines. It is an open-source, cloud-native orchestrator for the whole development lifecycle, with integrated lineage and observability, a declarative programming model, and best-in-class testability. Your team can get up and running in minutes thanks to Dagster Cloud, an enterprise-class hosted solution that offers serverless and hybrid deployments, enhanced security, and on-demand ephemeral test deployments. Go to dataengineeringpodcast.com/dagster today to get started. Your first 30 days are free!
Your host is Tobias Macey and today I'm interviewing Yingjun Wu about the RisingWave database and the intricacies of building a stream processing engine on S3
Interview
Introduction
How did you get involved in the area of data management?
Can you describe what RisingWave is and the story behind it?
There are numerous stream processing engines, near-real-time database engines, streaming SQL systems, etc. What is the specific niche that RisingWave addresses?
What are some of the platforms/architectures that teams are replacing with RisingWave?
What are some of the unique capabilities/use cases that RisingWave provides over other offerings in the current ecosystem?
Can you describe how RisingWave is architected and implemented?
How have the design and goals/scope changed since you first started working on it?
What are the core design philosophies that you rely on to prioritize the ongoing development of the project?
What are the most complex engineering challenges that you have had to address in the creation of RisingWave?
Can you describe a typical workflow for teams that are building on top of RisingWave?
What are the user/developer experience elements that you have prioritized most highly?
What are the situations where RisingWave can/should be a system of record vs. a point-in-time view of data in transit, with a data warehouse/lakehouse as the longitudinal storage and query engine?
What are the most interesting, innovative, or unexpected ways that you have seen RisingWave used?
What are the most interesting, unexpected, or challenging lessons that you have learned while working on RisingWave?
When is RisingWave the wrong choice?
What do you have planned for the future of RisingWave?
From your perspective, what is the biggest gap in the tooling or technology for data management today?
Closing Announcements
Thank you for listening! Don't forget to check out our other shows. Podcast.__init__ covers the Python language, its community, and the innovative ways it is being used. The Machine Learning Podcast helps you go from idea to production with machine learning.
Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes.
If you've learned something or tried out a project from the show then tell us about it! Email hosts@dataengineeringpodcast.com) with your story.