【问题标题】:How can I create a table in ksqldb.io without causing a syntax error?如何在 ksqldb.io 中创建表而不会导致语法错误?
【发布时间】:2020-12-28 22:17:23
【问题描述】:

flux ksql 的当前状态使得很难理解哪个功能在哪个版本中受支持/拒绝/强制/可选。没有明确版本引用的 Confluent 文档并没有让它变得更好,所以我被困在这里:

create table gtest (ID varchar PRIMARY KEY) with (kafka_topic = 'g', value_format='avro');

产生语法错误

line 1:32: mismatched input 'PRIMARY' expecting {',', ')'}
Statement: create table gtest (ID varchar PRIMARY KEY) with (kafka_topic = 'g', value_format='avro');
Caused by: line 1:32: mismatched input 'PRIMARY' expecting {',', ')'}
Caused by: org.antlr.v4.runtime.InputMismatchException

Topic可用,用schema创建,可以从oracle数据库导入数据,可以创建stream,没问题。但是与我找到的所有文档相反,不会创建此表。我在这里错过了什么?

我正在使用 Confluent 5.5.1,构建形式 tarball,从 confluentinc 的 docker 映像构建的 ksql 0.11.0。

架构:

{
  "subject": "g-key",
  "version": 1,
  "id": 1,
  "schema": "{\"type\":\"record\",\"name\":\"ConnectDefault\",\"namespace\":\"io.confluent.connect.avro\",\"fields\":[{\"name\":\"ID\",\"type\":\"string\"}]}"
}


{
  "subject": "g-value",
  "version": 1,
  "id": 6,
  "schema": "{\"type\":\"record\",\"name\":\"ConnectDefault\",\"namespace\":\"io.confluent.connect.avro\",\"fields\":[{\"name\":\"GT_ID\",\"type\":{\"type\":\"int\",\"connect.type\":\"int8\"}},{\"name\":\"BARCODE\",\"type\":[\"null\",\"string\"],\"default\":null},{\"name\":\"LP_ID\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"IN_G_ID\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"RS\",\"type\":\"string\"},{\"name\":\"NSP\",\"type\":\"string\"},{\"name\":\"EINT\",\"type\":\"string\"},{\"name\":\"EINDATE\",\"type\":{\"type\":\"long\",\"connect.version\":1,\"connect.name\":\"org.apache.kafka.connect.data.Timestamp\",\"logicalType\":\"timestamp-millis\"}},{\"name\":\"MKZ\",\"type\":\"string\"},{\"name\":\"AKM\",\"type\":\"int\"},{\"name\":\"AKT\",\"type\":\"int\"},{\"name\":\"LZTB\",\"type\":{\"type\":\"long\",\"connect.version\":1,\"connect.name\":\"org.apache.kafka.connect.data.Timestamp\",\"logicalType\":\"timestamp-millis\"}},{\"name\":\"TE\",\"type\":\"string\"},{\"name\":\"QU\",\"type\":\"string\"},{\"name\":\"ZWIZ\",\"type\":\"string\"},{\"name\":\"ENDL\",\"type\":\"string\"},{\"name\":\"FREIP\",\"type\":\"string\"},{\"name\":\"HRLZ\",\"type\":\"string\"},{\"name\":\"PERFZ\",\"type\":\"string\"},{\"name\":\"EINLO\",\"type\":[\"null\",{\"type\":\"long\",\"connect.version\":1,\"connect.name\":\"org.apache.kafka.connect.data.Timestamp\",\"logicalType\":\"timestamp-millis\"}],\"default\":null},{\"name\":\"UMKJN\",\"type\":\"string\"},{\"name\":\"KOLR\",\"type\":[\"null\",\"int\"],\"default\":null},{\"name\":\"LA_ID\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"VIEW_B\",\"type\":[\"null\",\"string\"],\"default\":null}]}"
}

欢迎任何提示!

【问题讨论】:

    标签: apache-kafka confluent-platform confluent-schema-registry ksqldb


    【解决方案1】:

    CP 的当前版本是 5.5.1,正如documentation 所说,它有 kqslDB v0.7.1 但是从 ksqlDB v0.10 开始可以使用 'PRIMARY KEY' 语法

    【讨论】:

    • 看起来 @mjahr 正在从源代码构建 .11
    • 我单独安装了 KSQLDB Server 作为 docker 镜像。 0.7 版本的包是我的第一次尝试,但它更偏离了当前的 ksqldb 文档。
    猜你喜欢
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 2021-10-23
    • 2022-10-02
    • 1970-01-01
    • 1970-01-01
    • 2019-08-23
    相关资源
    最近更新 更多