You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Timo Walther (Jira)" <ji...@apache.org> on 2020/11/25 13:31:00 UTC

[jira] [Created] (FLINK-20346) Explain ChangelogMode for sinks

Timo Walther created FLINK-20346:
------------------------------------

             Summary: Explain ChangelogMode for sinks
                 Key: FLINK-20346
                 URL: https://issues.apache.org/jira/browse/FLINK-20346
             Project: Flink
          Issue Type: Improvement
          Components: Table SQL / Planner
            Reporter: Timo Walther


When explaining an `INSERT INTO` statement, the output does not show a changelog mode. However, this might be useful for users to know which kind of updates end up in a connector such as Upsert Kafka.

For example:
{code}
String initialValues = "INSERT INTO upsert_kafka\n"
	+ "VALUES\n"
	+ " (1, 'name 1', TIMESTAMP '2020-03-08 13:12:11.123', 100, 41, 'payload 1'),\n"
	+ " (2, 'name 2', TIMESTAMP '2020-03-09 13:12:11.123', 101, 42, 'payload 2'),\n"
	+ " (3, 'name 3', TIMESTAMP '2020-03-10 13:12:11.123', 102, 43, 'payload 3'),\n"
	+ " (2, 'name 2', TIMESTAMP '2020-03-11 13:12:11.123', 101, 42, 'payload')";

System.out.println(tEnv.explainSql(initialValues, ExplainDetail.CHANGELOG_MODE));
{code}

Leads to `changelogMode=[NONE]`:
{code}
== Optimized Logical Plan ==
Sink(table=[default_catalog.default_database.upsert_kafka], fields=[k_user_id, name, k_event_id, user_id, payload, timestamp], changelogMode=[NONE])
+- Calc(select=[CAST(EXPR$0) AS k_user_id, CAST(EXPR$1) AS name, CAST(EXPR$3) AS k_event_id, CAST(EXPR$4) AS user_id, CAST(EXPR$5) AS payload, CAST(EXPR$2) AS timestamp], changelogMode=[I])
   +- Values(type=[RecordType(INTEGER EXPR$0, CHAR(6) EXPR$1, TIMESTAMP(3) EXPR$2, INTEGER EXPR$3, INTEGER EXPR$4, VARCHAR(9) EXPR$5)], tuples=[[{ 1, _UTF-16LE'name 1', 2020-03-08 13:12:11.123, 100, 41, _UTF-16LE'payload 1' }, { 2, _UTF-16LE'name 2', 2020-03-09 13:12:11.123, 101, 42, _UTF-16LE'payload 2' }, { 3, _UTF-16LE'name 3', 2020-03-10 13:12:11.123, 102, 43, _UTF-16LE'payload 3' }, { 2, _UTF-16LE'name 2', 2020-03-11 13:12:11.123, 101, 42, _UTF-16LE'payload' }]], changelogMode=[I])

{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)