如何从带有十进制类型列的主题在ksql中创建流

时间:2019-09-07 08:54:22

标签: apache-kafka ksql

我想从kafka主题创建一个流,该流监视mysql表。 mysql表具有十进制(16,4)类型的列,当我使用此命令创建流时: create stream test with (KAFKA_TOPIC='dbServer.Kafka.DailyUdr',VALUE_FORMAT='AVRO'); 流已创建并运行,但十进制(16,4)类型的列不会出现在结果流中。


    source topic value schema:
    {
      "type": "record",
      "name": "Envelope",
      "namespace": "dbServer.Kafka.DailyUdr",
      "fields": [
        {
          "name": "before",
          "type": [
            "null",
            {
              "type": "record",
              "name": "Value",
              "fields": [
                {
                  "name": "UserId",
                  "type": "int"
                },
                {
                  "name": "NationalCode",
                  "type": "string"
                },
                {
                  "name": "TotalInputOcted",
                  "type": "int"
                },
                {
                  "name": "TotalOutputOcted",
                  "type": "int"
                },
                {
                  "name": "Date",
                  "type": "string"
                },
                {
                  "name": "Service",
                  "type": "string"
                },
                {
                  "name": "decimalCol",
                  "type": [
                    "null",
                    {
                      "type": "bytes",
                      "scale": 4,
                      "precision": 16,
                      "connect.version": 1,
                      "connect.parameters": {
                        "scale": "4",
                        "connect.decimal.precision": "16"
                      },
                      "connect.name": "org.apache.kafka.connect.data.Decimal",
                      "logicalType": "decimal"
                    }
                  ],
                  "default": null
                }
              ],
              "connect.name": "dbServer.Kafka.DailyUdr.Value"
            }
          ],
          "default": null
        },
        {
          "name": "after",
          "type": [
            "null",
            "Value"
          ],
          "default": null
        },
        {
          "name": "source",
          "type": {
            "type": "record",
            "name": "Source",
            "namespace": "io.debezium.connector.mysql",
            "fields": [
              {
                "name": "version",
                "type": [
                  "null",
                  "string"
                ],
                "default": null
              },
              {
                "name": "connector",
                "type": [
                  "null",
                  "string"
                ],
                "default": null
              },
              {
                "name": "name",
                "type": "string"
              },
              {
                "name": "server_id",
                "type": "long"
              },
              {
                "name": "ts_sec",
                "type": "long"
              },
              {
                "name": "gtid",
                "type": [
                  "null",
                  "string"
                ],
                "default": null
              },
              {
                "name": "file",
                "type": "string"
              },
              {
                "name": "pos",
                "type": "long"
              },
              {
                "name": "row",
                "type": "int"
              },
              {
                "name": "snapshot",
                "type": [
                  {
                    "type": "boolean",
                    "connect.default": false
                  },
                  "null"
                ],
                "default": false
              },
              {
                "name": "thread",
                "type": [
                  "null",
                  "long"
                ],
                "default": null
              },
              {
                "name": "db",
                "type": [
                  "null",
                  "string"
                ],
                "default": null
              },
              {
                "name": "table",
                "type": [
                  "null",
                  "string"
                ],
                "default": null
              },
              {
                "name": "query",
                "type": [
                  "null",
                  "string"
                ],
                "default": null
              }
            ],
            "connect.name": "io.debezium.connector.mysql.Source"
          }
        },
        {
          "name": "op",
          "type": "string"
        },
        {
          "name": "ts_ms",
          "type": [
            "null",
            "long"
          ],
          "default": null
        }
      ],
      "connect.name": "dbServer.Kafka.DailyUdr.Envelope"
    }

我的问题出在decimalCol列中

1 个答案:

答案 0 :(得分:0)

KSQL尚不支持DECIMAL数据类型。

如果您认为有用的话,可以跟踪an issue here并进行投票。