Important
You are viewing documentation for an older version of Confluent Platform. For the latest, click here.
Upgrading KSQL¶
Upgrade one KSQL server at a time (i.e. rolling restart). The remaining KSQL servers should have sufficient spare capacity to take over temporarily for unavailable, restarting servers.
Upgrading from KSQL 0.x (Developer Preview) to KSQL 4.1¶
KSQL 4.1 is not backward-compatible with the previous KSQL 0.x developer preview releases.
In particular, you must manually migrate queries running in the older preview releases of KSQL to the 4.1 version by
issuing statements like CREATE STREAM
and CREATE TABLE
again.
Notable changes in 4.1:
KSQL CLI:
- The
ksql-cli
command was renamed toksql
. - The CLI no longer supports what was formerly called “standalone” or “local” mode, where
ksql-cli
would run both the CLI and also a KSQL server process inside the same JVM. In 4.1,ksql
will only run the CLI. For local development and testing, you can now runconfluent start
(which will also launch a KSQL server), followed byksql
to start the CLI. This setup is used for the Confluent Platform quickstart. Alternatively, you can start the KSQL server directly as described in Starting the KSQL Server, followed byksql
to start the CLI.
- The
KSQL server:
- The default
listeners
address was changed tohttp://localhost:8088
(KSQL 0.x usedhttp://localhost:8080
). - Assigning KSQL servers to a specific KSQL cluster has been simplified and is now done with the
ksql.service.id
setting. See Configuring KSQL Server for details.
- The default
Executing
.sql
files: To run pre-defined KSQL queries stored in a.sql
file, see Non-interactive (Headless) KSQL Usage.Configuration: Advanced KSQL users can configure the Kafka Streams and Kafka producer/consumer client settings used by KSQL. This is achieved by using prefixes for the respective configuration settings. See KSQL Configuration Parameter Reference as well as Configuring KSQL Server and Configuring KSQL CLI for details.
Upgrading from KSQL 5.0.0 and below to KSQL 5.1¶
KSQL server:
- The KSQL engine metrics are now prefixed with the
ksql.service.id
. If you have been using any metric monitoring tool you need to update your metric names. For instance, assumingksql.service.id
is set todefault
,messages-produced-per-sec
will be changed to_confluent-ksql-default_messages-consumed-per-sec
.
- The KSQL engine metrics are now prefixed with the
Configuration:
- When upgrading your headless (non-interactive) mode application, you must either update your queries to use the new SUBSTRING indexing semantics, or set
ksql.functions.substring.legacy.args
totrue
. If possible, we recommend that you update your queries accordingly, instead of enabling this configuration setting. Refer to the SUBSTRING documentation in the function guide for details on how to do so. Note that this is NOT required for interactive mode KSQL.
- When upgrading your headless (non-interactive) mode application, you must either update your queries to use the new SUBSTRING indexing semantics, or set