INSERT INTO statement in ksqlDB for Confluent Platform¶
Synopsis¶
INSERT INTO stream_name
WITH ( property_name = expression [, ...] )
SELECT select_expr [, ...]
FROM from_stream
[ LEFT | FULL | INNER ]
JOIN [join_table | join_stream]
[WITHIN [<size> <timeunit> | (<before_size> <timeunit>, <after_size> <timeunit>)] [GRACE PERIOD <grace_size> <timeunit>]]
ON join_criteria
[ WHERE condition ]
[ PARTITION BY new_key_expr [, ...] ]
EMIT CHANGES;
Description¶
Stream the result of the SELECT query into an existing stream and its underlying topic.
The schema and partitioning column(s) produced by the query must match the stream’s schema and key, respectively. If the schema and partitioning column(s) are incompatible with the stream, then the statement will return an error.
The stream_name
and from_stream
parameters must both refer to a
Stream. Tables are not supported.
If the PARTITION BY clause is present, it is applied to the source after any JOIN or WHERE clauses, and before the SELECT clause, in much the same way as GROUP BY.
Records written into the stream are not timestamp-ordered with respect to other queries. Therefore, the topic partitions of the output stream may contain out-of-order records even if the source stream for the query is ordered by timestamp.
Insert properties¶
Use the WITH
clause to specify details about your table. The
WITH
clause supports the following properties.
QUERY_ID¶
Optional query ID to use for INSERT INTO queries. This query ID will be
displayed by SHOW QUERIES
, and will also be used to terminate the
query. If empty, the default ‘INSERTQUERY_’ prefix plus a number will
be used. Queries IDs are case-insensitive. Queries IDs will be displayed
in uppercase with SHOW QUERIES