AWS re:Invent 2018: Java developers can now take advantage of Amazon Kinesis Data Analytics
Are you keeping an eye on all the happenings in Las Vegas at AWS re:Invent? Here’s another great one for all Java developers out there: you can now use your own Java code to create powerful real-time applications that process streaming data, courtesy of Amazon Kinesis Data Analytics.
The announcements during AWS re:Invent are plentiful. We had Firecracker – a new virtualization technology that enables customers to deploy lightweight micro Virtual Machines or microVMs and now we’re bringing Amazon Kinesis Data Analytics to your attention. If you’re a Java developer, you might find it useful.
So take a break from refreshing the AWS re:Invent Twitter and see how to use your own Java code to create powerful real-time applications that process streaming data.
Java support in Amazon Kinesis Data Analytics
Amazon Kinesis makes it easy to collect, process, and analyze real-time, streaming data so you can get timely insights and react quickly to new information. Amazon Kinesis Data Analytics, on the other hand, promises to help you process data in real-time using standard SQL.
You can build queries and sophisticated streaming applications in three steps:
- setup your streaming data sources,
- write your queries or streaming applications, and
- setup your destination for processed data.
Amazon Kinesis Data Analytics will take care of running your queries and applications continuously on data while it’s in transit and sending the results to your destinations.
SQL is a good choice if you want to query large volumes of streaming data but you don’t want to learn new frameworks or languages. However, if you want to build more sophisticated data processing applications using general-purpose programming languages, it simply won’t do. Therefore, AWS is introducing support for Java in Amazon Kinesis Data Analytics.
What does this mean exactly? In short, you can now use your own Java code to create powerful real-time applications that process streaming data.
“To use this new functionality, developers build applications using open source libraries which include built-in operators for common data processing functions that allow applications to organize, transform, aggregate, and analyze data at any scale,” according to the blog post announcing the Java support.
You can run these open source libraries anywhere:
- Apache Flink, an open source framework and engine for processing data streams.
- AWS SDK for Java, providing Java APIs for many AWS services.
Furthermore, you can use these Java libraries within the IDE you prefer. You can use the following services with just one line of code:
- Streaming Data Sources: Amazon Kinesis Data Streams
- Streaming Destinations: Amazon S3, Amazon DynamoDB, Amazon Kinesis Data Streams, Amazon Kinesis Data Firehose
In addition to the pre-built AWS integrations, the Java libraries include more connectors to tools like Cassandra, ElasticSearch, RabbitMQ, Redis, and more, as well as the ability to build custom integrations.
Check out the blog post to learn how to build a Kinesis Data Streams Java application.
Let’s talk pricing
If you’re already familiar with the pricing for Amazon Kinesis Data Analytics for SQL, it’s similar …but there are some differences!
You should keep in mind that for Java applications, you are charged a single additional Amazon Kinesis Processing Unit (KPU) per application, used for application orchestration. You will also be charged for running application storage (per GB-month) and durable application backups (optional and provide a point-in-time recovery point for applications, charged per GB-month).
Unfortunately, Amazon Kinesis Data Analytics for Java is only available in US East (N. Virginia), US East (Ohio), US West (Oregon) and EU West (Ireland) at the moment.