Кафка, чтобы предвестить необработанную тему json - PullRequest
1 голос
/ 18 февраля 2020

Я помещаю JSON файл в топику Кафки c, соединяя топи c в presto и структурируя данные JSON в таблицу с запросами.

Проблема I ' Я обращаю внимание на то, что в таблице нет никаких записей, хотя топи c заполнена некоторыми данными. Это то, что отображается,

presto:default> select * from test;
 kafka_key | host | method | endpoint | protocol | status | response_time | uuid
-----------+------+--------+----------+----------+--------+---------------+-----
(0 rows)

Перед включением файла сопоставления в нем отображались файлы JSON, и я мог бы запросить поле _message. Это в файле описания?

JSON выглядит так

{"host":"17.33.69.92","method":"GET","endpoint":"\/health\/info?access=afbadb4ff1435c0ed1b2976439a90cc4","protocol":"HTTP\/1.1","status":200,"response_time":3,"uuid":"892a1847-0f98-4327-8f56-3135915e96aa","time":"2020-02-11 00:00:01"}

, а файл default.test. json в etc / kafka выглядит следующим образом:

{
    "tableName":"test",
    "schemaName":"default",
    "topicName":"default.test",
    "key":{
        "dataFormat":"raw",
        "fields":[
            {
                "name": "kafka_key",
                "dataFormat": "LONG",
                "type": "BIGINT",
                "hidden": "false"
            }
        ]
    },
    "message":{
        "dataFormat": "json",
        "fields": [
            {
                "name": "host",
                "mapping": "host",
                "type": "VARCHAR"
            },
            {
                "name": "method",
                "mapping": "method",
                "type": "CHAR"
            },
            {
                "name": "endpoint",
                "mapping": "endpoint",
                "type": "VARCHAR"
            },
            {
                "name": "protocol",
                "mapping": "protocol",
                "type": "VARCHAR"
            },
            {
                "name": "status",
                "mapping": "status",
                "type": "INTEGER"
            },
            {
                "name": "response_time",
                "mapping": "response_time",
                "type": "INTEGER"
            },
            {
                "name": "uuid",
                "mapping": "uuid",
                "type": "VARCHAR"
            },
            {
                "name": "time",
                "mapping": "time",
                "type": "TIMESTAMP"
            }
        ]
    }
}

Я следовал этому учебнику в качестве справочного материала.

Спасибо.

Edit1: таблица и данные присутствуют. enter image description here

...