SELECT (Pull Query)¶
1 2 3 4
Pulls the current value from the materialized table and terminates. The result of this statement isn't persisted in a Kafka topic and is printed out only in the console.
Pull queries enable you to fetch the current state of a materialized view. Because materialized views are incrementally updated as new events arrive, pull queries run with predictably low latency. They're a great match for request/response flows. For asynchronous application flows, see Push Queries.
Execute a pull query by sending an HTTP request to the ksqlDB REST API, and the API responds with a single response.
The WHERE clause must contain a value for each primary-key column to retrieve and may
optionally include bounds on
WINDOWEND if the materialized table is windowed.
For more information, see
Time and Windows in ksqlDB.
1 2 3
pageviews_by_region table was created as an aggregation of multiple columns,
then each key column must be present in the WHERE clause. The following example shows how to
query the table if
regionId where both key columns:
1 2 3
When writing logical expressions using
WINDOWEND, you can use ISO-8601
formatted datestrings to represent date times. For example, the previous
query is equivalent to the following:
1 2 3
You can specify time zones within the datestring. For example,
2017-11-17T04:53:45-0330 is in the Newfoundland time zone. If no time zone is
specified within the datestring, then timestamps are interpreted in the UTC
If no bounds are placed on
WINDOWEND, rows are returned for all windows
in the windowed table.
Also, you can issue a pull query against a derived table that was created by using the CREATE TABLE AS SELECT statement.
TOP_TEN_RANKS, by using a CREATE TABLE AS SELECT statement:
CREATE TABLE TOP_TEN_RANKS
AS SELECT ID, RANK
WHERE RANK <= 10;
You can fetch the current state of your materialized view, which is
TOP_TEN_RANKS derived table, by using a pull query:
ID = 5 in the derived table:
Currently, tables derived using Table-Table joins aren't queryable directly. To derive a queryable table, you can do:
CREATE TABLE QUERYABLE_JOIN_TABLE AS SELECT * FROM JOIN_TABLE; and then issue pull queries against