【问题标题】:Is there any way by which we can see query running for stream/ table in kafka?有什么方法可以让我们看到在 kafka 中运行流/表的查询?
【发布时间】:2020-01-17 19:28:58
【问题描述】:
我想查看在 Kafka 中为我的流/表运行的查询。
Create stream foo as select * from bar where distuinguisher='xxx';
Message
----------------------------
Stream created and running
----------------------------
一旦有人创建了流/表,我就只能查询流/表。有什么方法可以让我看到流背后的逻辑或完整的查询。
【问题讨论】:
标签:
apache-kafka
ksqldb
confluent-platform
【解决方案1】:
DESCRIBE EXTENDED 将为您提供此信息。您还可以使用SHOW QUERIES 查看所有正在运行的查询。
例如:
ksql> DESCRIBE EXTENDED FOO;
Name : FOO
Type : STREAM
Key field :
Key format : STRING
Timestamp field : Not set - using <ROWTIME>
Value format : JSON
Kafka topic : FOO (partitions: 1, replication: 1)
Field | Type
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ROWTIME | BIGINT (system)
ROWKEY | VARCHAR(STRING) (system)
LOGGER | VARCHAR(STRING)
LEVEL | VARCHAR(STRING)
TIME | BIGINT
MESSAGE | STRUCT<TYPE INTEGER, DESERIALIZATIONERROR STRUCT<ERRORMESSAGE VARCHAR(STRING), RECORDB64 VARCHAR(STRING), CAUSE ARRAY<VARCHAR(STRING)>>, RECORDPROCESSINGERROR STRUCT<ERRORMESSAGE VARCHAR(STRING), RECORD VARCHAR(STRING), CAUSE ARRAY<VARCHAR(STRING)>>, PRODUCTIONERROR STRUCT<ERRORMESSAGE VARCHAR(STRING)>>
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Queries that write from this STREAM
-----------------------------------
CSAS_FOO_1 : CREATE STREAM FOO WITH (KAFKA_TOPIC='FOO', PARTITIONS=1, REPLICAS=1) AS SELECT *
FROM KSQL_PROCESSING_LOG KSQL_PROCESSING_LOG
EMIT CHANGES;
For query topology and execution plan please run: EXPLAIN <QueryId>
Local runtime statistics
------------------------
(Statistics of the local KSQL server interaction with the Kafka topic FOO)
ksql>
ksql> SHOW QUERIES;
Query ID | Kafka Topic | Query String
-------------------------------------------------------------------------------------------------------------
CSAS_FOO_1 | FOO | CREATE STREAM FOO WITH (KAFKA_TOPIC='FOO', PARTITIONS=1, REPLICAS=1) AS SELECT *
FROM KSQL_PROCESSING_LOG KSQL_PROCESSING_LOG
EMIT CHANGES;
-------------------------------------------------------------------------------------------------------------
For detailed information on a Query run: EXPLAIN <Query ID>;
ksql>