Skip to content

Pravega Flink Connectors 0.10.1

Compare
Choose a tag to compare
@crazyzhou crazyzhou released this 26 Oct 09:32
· 46 commits to master since this release

This release contains exciting new features and significant enhancements over the previous major release line (0.9.x). This page provides an overview of major ones.

This release supports Flink 1.11, 1.12 and 1.13, and it is tested and validated with Pravega 0.10.1 release
For more detail, please read the documentation on Pravega official website: http://pravega.io/docs/latest/connectors/flink-connector

Highlight features

  • (#435 #540) Support Flink 1.12 and 1.13

The connector fixes the compatibility issues and updates its API to adapt Flink 1.12 and Flink 1.13.

  • (#424) Pravega Catalog support

In the latest Flink 1.12 and 1.13 connector, Catalog API, also known as FLIP-30, is implemented in the connector with the help of Pravega and its Schema Registry. Schema registry provides Pravega stream metadata such as schema and serialization that the connector can accommodate and then present in Flink as a typical database catalog. Once the schemas are registered and the Flink catalog is set, Pravega streams are automatically mapped into tables without the CREATE TABLE SQL DDL.
To create such a catalog, just have the schema registry set up and try with CREATE CATALOG DDL statement with the options listed here.

  • (#530) Table API Debezium support

Since Debezium 1.6.0 release, Pravega has been one of the supported sink for Debezium server, and Flink can act as a query engine to perform continuous queries with the ever-changing table. After the Flink 1.13 connector implements the multiple rows emission in deserialization, users can now use the official Flink debezium-json format to consume the CDC data in Pravega streams.

  • (#494) FLIP-107: Expose metadata for new Table source

With FLIP-107, Flink has added the support for metadata along with the event for both table source and sink. Pravega Flink connector integrates the API to export metadata from both the connector and format. Furthermore, the EventPointer in bytes is provided as metadata in the table source.

  • (#571) Add Python datastream API support

Python DataStream API connector is now integrated as an experimental feature. The basic idea is to use py4j to call the Java implementation. The suggested implementation for such a python wrapper is offered in the code base. Users can include the python files in the project and follow the guide to develop the pyflink application.

  • (#445) Adopt github actions for CI pipeline

We have transitioned our CI pipeline from Travis to Github Actions to have it more stable.

Notable bugfixes

  • (#441) Fail to reset reader group with no checkpoint recovery
  • (#517) Fix NPE issue for recovery job after enabling transactions
  • (#481) Row-based router cannot be specified on non-null field

Notifications

  • (#556) Drop support for Scala 2.11

Flink community is trying to drop support for Scala 2.11 for some reasons (Detail in: https://issues.apache.org/jira/browse/FLINK-20845) and we also receive some feedback that Scala 2.11 is less used. We have decided to no longer release the Scala 2.11 artifacts for the connector. For users still on Scala 2.11, it's now required to build the connector on your own to use.

  • (#493) Make reader group optional in table API

If the reader group name is set in Flink table API, the table cannot be reused as duplicate createReaderGroup calls would mess up. It is suggested not to use this scan.reader-group.name option and the connector can give a random one so the Flink table can be reused.

  • (#490) Use maven publish instead of maven plugin in gradle

The Gradle maven plugin is deprecated according to the offical website and is recommended to use the new maven-publish plugin. Developers need to pay attention to the packaging script changes accordingly.

Flink 1.13 connector source code and artifacts are listed in the assets.
Here is the complete list of commits: changelog-flink.txt