Get Started Free
Wade Waldron

Wade Waldron

Principal Software Practice Lead

Apache Flink® Table API: Processing Data Streams in Java

Apache Flink is a powerful stream-processing engine designed for modern software needs. However, the DataStream API can be daunting for new users. Meanwhile, the SQL API provides a high-level relational model that is easier to use but is restricted to predefined queries. This can be limiting for those used to building complex applications in Java or Python. This is where the Flink Table API comes in. It provides a middle ground between the DataStream API and the SQL API giving the power to programmatically create queries while offering an easy-to-use syntax similar to SQL.

An interesting aspect of the Table API is that while it is often presented as a layer between SQL and the DataStream API, Confluent Cloud actually builds on top of SQL. Queries written with the Table API are translated into SQL queries before being executed by Confluent Cloud. However, even though it produces SQL because the code can be written in languages such as Java or Python, it allows more complex query generation. We don’t have to limit ourselves to predefined queries but can programmatically define them. This provides flexibility that you won’t get using the SQL API alone.

This course will introduce students to the Apache Flink Table API through hands-on exercises. Students will use Java to build Flink queries that can be executed using the Flink SQL engine. Students will inspect the SQL code generated from the Table API to understand the process operating behind the scenes. This will be done with a production-grade Confluent Cloud Data Streaming platform.

Intended audience

  • Software Developers with experience in Java and SQL.
    • While this is not a course on SQL, having prior knowledge of SQL will be beneficial to understanding the concepts contained within.

Prerequisites

  • Required knowledge:
    • Java
    • Enough SQL knowledge to understand basic relational database concepts such as select statements, inserts, joins, etc.
  • Required setup:
    • Local Development:
      • A machine capable of running Bash commands.
      • A Java 21 development environment.
      • Access to Confluent Cloud
    • Gitpod Development:
      • A browser compatible with Gitpod (not blocked by a firewall).
      • Access to Confluent Cloud

Staff

Wade Waldron (Course Author)

Wade Waldron

Wade has been a Software Developer since 2005. He has worked on video games, backend microservices, ETL Pipelines, IoT systems, and more. He is an advocate for Test-Driven Development, Domain-Driven Design, Microservice Architecture, and Event-Driven Systems. Today, Wade works as a Staff Software Practice Lead at Confluent, showing people how to build modern data streaming applications.

LinkedIn

Do you have questions or comments? Join us in the #confluent-developer community Slack channel to engage in discussions with the creators of this content.

Use the promo codes FLINKTABLEAPIJAVA & CONFLUENTDEV1 to get $25 of free Confluent Cloud usage and skip credit card entry.

Overview

Why did you click on this video?

The odds are it's because you are interested in Apache Flink.

But why?

What problems are you trying to solve that Flink might be a good fit for?

Maybe the existing system you are working with is too slow, and you need something real-time.

Or, perhaps you have hit limitations with your existing platform and need to move to something more scalable.

Are you frustrated dealing with flakey batch jobs and want something more reliable?

That can't be it because batch jobs never fail...

Hold on...

I'm being told my batch job just failed...

I'll be right back.

Sorry about that...Now, where was I?

Maybe you already use Flink, but you'd rather have a managed platform to ease the pain of hosting your own.

Regardless of why you clicked on this video, I'm glad you did.

I've put together a series of videos and hands-on exercises that will show how to use Flink to interact with Kafka topics as though they were relational database tables.

But, if you are anything like me, you'll be dreading the idea of writing a bunch of SQL code.

The good news is we'll be using the Flink Table API in Java, which means no SQL knowledge is required.

And no, that doesn’t mean this is a NoSQL database.

Because it’s not a database.

Don’t worry, it will make more sense as we go through the course.

Oh, and did I mention it's completely free?

I'll even throw in some Confluent Cloud credits so you can get started with a new cluster without paying a dime.

So, follow along with me on Confluent Developer and I'll show you how to create a series of jobs to consume data streams in real-time.

If you aren't already on Confluent Developer, check the link in the video description to find the course.

And I'll see you in the next video.

Be the first to get updates and new content

We will only share developer content and updates, including notifications when new content is added. We will never send you sales emails. 🙂 By subscribing, you understand we will process your personal information in accordance with our Privacy Statement.