Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 如何读取用于创建流的嵌套avro字段?_Apache Kafka_Avro_Confluent Platform_Ksqldb - Fatal编程技术网

Apache kafka 如何读取用于创建流的嵌套avro字段?

Apache kafka 如何读取用于创建流的嵌套avro字段?,apache-kafka,avro,confluent-platform,ksqldb,Apache Kafka,Avro,Confluent Platform,Ksqldb,我在卡夫卡主题中有以下AVRO信息 { "table": { "string": "Schema.xDEAL" }, "op_type": { "string": "Insert" }, "op_ts": { "string": "2018-03-16 09:03:25.000462" }, "current_ts": { "string": "2018-03-16 10:03:37.778000" }, "pos": { "string": "00000

我在卡夫卡主题中有以下AVRO信息

{
"table": {
    "string": "Schema.xDEAL"
},
"op_type": {
    "string": "Insert"
},
"op_ts": {
    "string": "2018-03-16 09:03:25.000462"
},
"current_ts": {
    "string": "2018-03-16 10:03:37.778000"
},
"pos": {
    "string": "00000000000000010722"
},
"before": null,
"after": {
    "row": {
        "DEA_PID_DEAL": {
            "string": "AAAAAAAA"
        },
        "DEA_NME_DEAL": {
            "string": "MY OGG DEAL"
        },
        "DEA_NME_ALIAS_NAME": {
            "string": "MY OGG DEAL"
        },
        "DEA_NUM_DEAL_CNTL": {
            "string": "4swb6zs4"
        }           
    }
}
}

当我运行以下查询时。它使用空值创建流

   CREATE STREAM tls_deal (DEA_PID_DEAL VARCHAR, DEA_NME_DEAL varchar, DEA_NME_ALIAS_NAME VARCHAR, DEA_NUM_DEAL_CNTL VARCHAR) WITH (kafka_topic='deal-ogg-topic',value_format='AVRO', key = 'DEA_PID_DEAL');
但是,当我将AVRO消息更改为following时,它就起作用了

 {
"table": {
    "string": "Schema.xDEAL"
},
"op_type": {
    "string": "Insert"
},
"op_ts": {
    "string": "2018-03-16 09:03:25.000462"
},
"current_ts": {
    "string": "2018-03-16 10:03:37.778000"
},
"pos": {
    "string": "00000000000000010722"
},
"DEA_PID_DEAL": {
    "string": "AAAAAAAA"
},
"DEA_NME_DEAL": {
    "string": "MY OGG DEAL"
},
"DEA_NME_ALIAS_NAME": {
    "string": "MY OGG DEAL"
},
"DEA_NUM_DEAL_CNTL": {
    "string": "4swb6zs4"
}           
}

现在,如果我运行上面的查询,数据将被填充

我的问题是,如果我需要从嵌套字段填充流,我该如何处理

我无法在KSQL文档页面中找到解决方案


提前谢谢。我感谢你的帮助

KSQL目前(2018年3月22日/v0.5)不支持嵌套Avro。您可以使用单个消息转换来展平来自Kafka Connect的数据。例如,Debezium随
UnwrapFromEnvelope
一起发货

KSQL目前(2018年3月22日/v0.5)不支持嵌套Avro。您可以使用单个消息转换来展平来自Kafka Connect的数据。例如,Debezium随
UnwrapFromEnvelope
一起发货

正如Robin所说,目前不支持这一点(2018年3月22日/v0.5)。但是,它是一个跟踪的功能请求。您可能希望在KSQL回购协议中投票或跟踪此Github问题:


正如Robin所说,这目前不受支持(2018年3月22日/v0.5)。但是,它是一个跟踪的功能请求。您可能希望在KSQL回购协议中投票或跟踪此Github问题:


您知道它什么时候发布吗?谢谢您的回复。这真的很有帮助。我很感激。我不能给出任何细节,但它在名单上排在首位。谢谢你的确认。它有助于规划。:)你知道什么时候发布吗?谢谢你的回复。这真的很有帮助。我很感激。我不能给出任何细节,但它在名单上排在首位。谢谢你的确认。它有助于规划。:)谢谢你的回复,罗宾,这真的很有帮助。我很感激,谢谢你的回复,这真的很有帮助。我很感激。出于好奇,这个消息是从哪里来的?根据您的源数据库,Debezium可能是另一种选择;正如Robin所说,我们提供了一个SMT,可以让您提取CDC消息的“后”状态。是的,您是对的,但我们使用的是OGG。出于好奇,这条消息来自哪里?根据您的源数据库,Debezium可能是另一种选择;正如Robin所说,我们提供了一个SMT,可以让您提取CDC消息的“之后”状态。是的,您是对的,但我们使用的是OGG。