Upgrade ksqlDB for Confluent Platform¶
Upgrading to ksqlDB 7.7 from ksqlDB 7.6¶
For a complete list of changes, see the ksqlDB pull requests.
Upgrading to ksqlDB 7.6 from ksqlDB 7.5¶
For a complete list of changes, see the ksqlDB pull requests.
Upgrading to ksqlDB 7.5 from ksqlDB 7.4¶
For a complete list of changes, see the ksqlDB changelog.
Upgrading to ksqlDB 7.4 from ksqlDB 7.3¶
- For ksqlDB RBAC, the CREATE STREAM and CREATE TABLE statements now
require the
ResourceOwner
role for source topics, instead ofDeveloperRead
. - All DDL statements that require permissions on a source topic must have the
ResourceOwner
role. For more information, see Grant a user access to resources.
Upgrading to ksqlDB 7.3 from ksqlDB 7.2¶
For a complete list of changes, see the ksqlDB changelog.
Upgrading to ksqlDB 7.2 from ksqlDB 7.1¶
Version 7.2 fixes an issue that occurred during upgrades from version 6.1 in which the upgrade may fail if DROP statements exist in the command topic for objects that are referenced by other objects.
For a complete list of changes, see the ksqlDB changelog.
Breaking Changes¶
- When creating connectors through ksqlDB, ksqlDB no longer sets the
key.converter
config toStringConverter
automatically because ksqlDB has supported key types other than strings for a number of releases.
Upgrading to ksqlDB 7.1 from ksqlDB 7.0¶
For a complete list of changes, see the ksqlDB changelog.
Important
If you are using Protobuf-wrapped primitive type structs in ksqlDB,
for example google.protobuf.StringValue
and similar types, do not
upgrade to Confluent Platform 7.1.0 or 7.1.1. A fix is provided in 7.1.2.
Upgrading to ksqlDB 7.0 from ksqlDB 6.2¶
For a complete list of changes, see the ksqlDB changelog.
Upgrading to ksqlDB 6.2 from ksqlDB 6.1¶
For a complete list of changes, see the ksqlDB changelog.
Note
Queries written for ksqlDB 6.1 continue to run without changes under ksqlDB 6.2. New queries issued on 6.2 may have different behavior, even if the text of the query statement is the same.
Breaking Changes¶
- Queries with GROUP BY clauses that contain multiple grouping expressions now result in multiple key columns, one for each grouping expression, rather than a single key column that is the string-concatenation of the grouping expressions. Note that this new behavior (and breaking change) apply only to new queries; existing queries will continue to run uninterrupted with the previous behavior, even across ksqlDB server upgrades.
- Stream-table key-to-key joins on mismatched formats now repartition the table (right hand side) instead of the stream. Old enqueued commands are not affected, so this change should remain invisible to the end-user.
- Upgrading to version 6.2 and later versions may fail if a DROP statement exists in the command topic for an object that is referenced by other objects. This issue was introduced in PR 6143.
Upgrading to ksqlDB 6.1 from ksqlDB 6.0¶
For a complete list of changes, see the ksqlDB changelog.
Note
Queries written for ksqlDB 6.0 continue to run without changes under ksqlDB 6.1. New queries issued on 6.1 may have different behavior, even if the text of the query statement is the same.
Breaking Changes¶
ksqlDB now creates windowed tables with cleanup policy
compact,delete
, rather thancompact
. Also, topics that back streams are always created with cleanup policydelete
, rather than the broker default (by default,delete
).ksqlDB no longer emits unnecessary tombstones when a
HAVING
clause filters out a row from the source that is not in the output table. For example, given:-- source stream: CREATE STREAM FOO (ID INT KEY, VAL INT) WITH (...); -- aggregate into a table: CREATE TABLE BAR AS SELECT ID, SUM(VAL) AS SUM FROM FOO GROUP BY ID HAVING SUM(VAL) > 0; -- insert some values into the stream: INSERT INTO FOO VALUES(1, -5); INSERT INTO FOO VALUES(1, 6); INSERT INTO FOO VALUES(1, -2); INSERT INTO FOO VALUES(1, -1);
Where previously the contents of the sink topic
BAR
would have contained records:Key Value Notes 1
null
Spurious tombstone: the table does not contain a row with key 1
, so no tombstone is required.1
{sum=1}
Row added as HAVING criteria now met 1
null
Row deleted as HAVING criteria now not met 1
null
Spurious tombstone: the table does not contain a row with key 1
, so no tombstone is required.The topic will now contain:
Key Value 1
{sum=1}
1
null
Downgrade considerations¶
If you try to downgrade ksqlDB to an earlier version, you may see the following internal RocksDB error:
Caused by: org.rocksdb.RocksDBException: Unknown Footer version. Maybe
this file was created with newer version of RocksDB?
This error indicates that a change in RocksDB version can prevent rolling back ksqlDB to earlier versions.
As a solution, ensure that the RocksDB version is consistent across your environment. Also, you may need to update the existing data to ensure compatibility with the current RocksDB version. This may involve steps like exporting the data before the version change and importing it after the change. Also, you may be able to delete the state store so ksqlDB recreates the state store from the changelog topic.