Skip to content

Releases: pravega/flink-connectors

Pravega Flink Connectors 0.13.0

08 Oct 13:40
Compare
Choose a tag to compare

This release supports Flink 1.14, 1.15 and 1.16, and it is tested and validated with Pravega 0.13.0 release. The release artifacts of the supported Flink versions are available on Maven Central.
For more detail, please read the documentation on Pravega official website: http://pravega.io/docs/latest/connectors/flink-connector

Highlight features

  • (#702) Support Flink 1.16

The connector fixes the compatibility issues and updates its API to adapt Flink 1.16

Enhancements

  • (#709) Leverage DeliveryGuarantee in new sink API
  • (#705) Implement sink metrics in the new sink API

Bugfixes

  • (#719) Explicitly cancel outstanding checkpoints when checkpoints get stuck

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

Pravega Flink Connectors 0.12.0

29 Sep 08:52
Compare
Choose a tag to compare

This release supports Flink 1.13, 1.14 and 1.15, and it is tested and validated with Pravega 0.12.0 release. The release artifacts of the supported Flink versions are available on Maven Central.
For more detail, please read the documentation on Pravega official website: http://pravega.io/docs/latest/connectors/flink-connector

Highlight features

  • (#651) Support Flink 1.15

The connector fixes the compatibility issues and updates its API to adapt Flink 1.15

Test improvements

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

Pravega Flink Connectors 0.11.0

16 May 10:04
Compare
Choose a tag to compare

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

Highlight features

  • (#560) Support Flink 1.14

The connector fixes the compatibility issues and updates its API to adapt Flink 1.14

  • (#460) Experimental: FLIP-143 new Sink

In the latest Flink 1.14 connector, we have implemented the new FLIP-143 Sink API to catch up with the Flink community latest updates. The features for the new API PravegaSink are the aligned with the legacy Sink API FlinkPravegaWriter including:

  • Parallel writes
  • Ordering guarantee based on routing key
  • Data Durability
  • Support transactional write

Note: This is only an experimental API, so there may still be changes in future versions. (e.g. Changing to FLIP-191 v2 Sink is on the plan(#653))

  • (#390 #673) Experimental: FLIP-27 new Source

In the latest Flink 1.14 connector, we have implemented the new FLIP-27 Source API to catch up with the Flink community latest updates. The features for the new API PravegaSource are aligned with the legacy Source API FlinkPravegaReader including:

  • Parallel reads
  • Consistency
  • Ordering guarantee based on routing key
  • Seamless checkpointing integration with Pravega checkpoint

Note: This is only an experimental API, so there may still be changes in future versions.

Notable bugfixes

  • (#635) Fix null pointer when closing pravega batch client factory
  • (#639 #642 #647) Refinements for document

Notifications

  • (#675) Update schema registry to 0.4.0

Along with this fix, withDeserializationSchemaFromRegistry API is now dropped and now the actual produced type should be provided when deserialization schema is initialized.

  • (#617) Increase default transaction lease

This fix increased the default transaction lease for transactional sink from 2 to 10 minutes.

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

Pravega Flink Connectors 0.10.1

26 Oct 09:32
Compare
Choose a tag to compare

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

Pravega Flink Connectors 0.9.1

01 Jul 05:51
Compare
Choose a tag to compare

0.9.1 release is a bug-fix release since the 0.9.0 release

Notable bugfixes:

  • (#506) Improve the transactional writer
  • (#493) Make reader group optional in table API

This release supports Flink 1.9, 1.10 and 1.11, and it is tested and validated with Pravega 0.9.1 release

Flink 1.11 with Scala 2.12 connector source code and artifacts are listed in the assets. The release artifacts of all the supported Flink and Scala versions are available on Maven Central.

Here is the complete list of commits: changelog-flink.txt

Pravega Flink Connectors 0.9.0

09 Mar 10:17
Compare
Choose a tag to compare

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

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

Highlight features

  • (#392) FLIP-95/FLIP-122 new Flink Table API in Flink 1.11

In the latest Flink 1.11 connector, new Table API described in FLIP-95 is supported, a simpler CREATE TABLE SQL DDL can be used to create the table-stream connection instead of the descriptor style for legacy Table API. e.g.

CREATE TABLE test (
    user_id STRING,
    item_id BIGINT)
with (
    'connector' = 'pravega'
    'controller-uri' = 'tcp://localhost:9090',
    'scope' = 'scope',
    'scan.execution.type' = 'streaming',
    'scan.reader-group.name' = 'group1',
    'scan.streams' = 'stream',
    'sink.stream' = 'stream',
    'sink.routing-key.field.name' = 'user_id',
    'format' = 'json'
)

Introduction with more details can be found in the official document.

  • (#422) Add schema registry support for streaming and batch reader

The connector can integrate with Pravega schema registry, and users can use below method to use the schema registry deserializer to read events from streams

// e.g. For avro generic record in streaming source,
FlinkPravegaReader.<GenericRecord>builder()
     ....
     .withDeserializationSchemaFromRegistry(streamName, GenericRecord.class)
     .build()
  • (#426) Upgrade to Java 11

The compatibility for Java 8 is still kept, so it is still fine to use the artifact under Java 8 environment. The main difference is when developing this project and running the unit tests, Java 11 is required.

Notable bugfixes

  • (#377) Refactor Pravega Sink to extend TwoPhaseCommitSinkFunction
  • (#433) Make event router optional
  • (#455) Increase the default transaction lease renewal time to 120 seconds

Notifications

  • (#438) Legacy table API is deprecated, please upgrade to Flink 1.11 connector and use the new Table API.
  • (#439) Deprecated PravegaSerialization is removed, please use the serialization/deserialization schema instead.

Flink 1.11 with Scala 2.12 connector source code and artifacts are listed in the assets.
Here is the complete list of commits: changelog-flink.log

Pravega Flink Connectors 0.8.1

15 Jan 11:17
Compare
Choose a tag to compare

Release 0.8.1 of Flink Pravega Connectors

0.8.1 is a bug-fix release since the 0.8.0 release

Notable bugfixes:

  • (#416) Zombie GRPC threads in Flink job cancel

This release supports Flink 1.8, 1.9 and 1.10, and it is tested and validated with Pravega 0.8.1 release

For more detail, please read the documentation on Pravega official website: http://pravega.io/docs/latest/connectors/flink-connector

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

Pravega Flink Connectors 0.8.0

30 Sep 09:14
30cef1b
Compare
Choose a tag to compare

Release 0.8.0 of Flink Pravega Connectors

Highlight features:

  • (#391) Supports Scala 2.11
  • (#329) Supports Flink 1.10

Notable bugfixes:

  • (#409) Fix Dynamic-loading credentials for Pravega client in Table API
  • (#399) Better error handling for RuntimeException in streaming source
  • (#405) Resource cleanup to avoid thread leak for Pravega Client Factory

Notifications:

  • (#347) Desciptor API is moved into table.descriptors package
  • (#215) Deprecated Json format table API is removed, please use the descriptor API instead.

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

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

Pravega Flink Connectors 0.7.1

01 Jun 08:14
f5c4a0e
Compare
Choose a tag to compare

Release 0.7.1 of Flink Pravega Connectors

Highlight features:

Notable bugfixes:

  • (#364) Makes writer.enable-watermark optional in Table API

Notifications:

  • (#347) Desciptor API is moved into table.descriptors package
  • (#215) Deprecated Json format table API is removed, please use the descriptor API instead.

This release supports Flink 1.8, 1.9 and 1.10, and it is tested and validated with Pravega 0.7.1 release

For more detail, please read the documentation on Pravega official website: http://pravega.io/docs/latest/connectors/flink-connector

Here is the complete list of commits: changelog-flink.txt

Pravega Flink Connectors 0.7.0

20 Mar 04:31
6d72be0
Compare
Choose a tag to compare

Release 0.7.0 of Flink Pravega Connectors

Highlight features of this release:

  • Supports Flink major versions 1.7, 1.8 and 1.9
  • (#180) Supports deserialization with metadata from Pravega

Notable bugfixes:

  • (#319) Fixes TruncatedDataException handling
  • (#331) Fixes infrequent recover failure from savepoints
  • (#343) Treats watermark in an inclusive manner

Notifications:

  • (#179) PravegaSerialization is deprecated and will be removed in future releases

This release is tested and validated with Pravega 0.7.0 release

Here is the complete list of commits
flink-connector-0.7.0-release-notes.txt