ClickHouse JSON 구문 분석 예외 : 입력을 구문 분석 할 수 없음 : ','이전에 예상 됨

GecKo

Kafka에서 ClickHouse에 JSON 데이터를 추가하려고합니다. 다음은 단순화 된 JSON입니다.

{
  ...
   "sendAddress":{
      "sendCommChannelTypeId":4,
      "sendCommChannelTypeCode":"SMS",
      "sendAddress":"789345345945"},
   ...
}

ClickHouse에서 테이블을 생성하고 Kafka Engine을 사용하여 다른 테이블을 생성하고 MATERIALIZED VIEW를 생성하여이 두 테이블을 연결하고 CH를 Kafka와 연결하는 단계는 다음과 같습니다.

첫 번째 테이블 만들기

CREATE TABLE tab 
(
    ...

    sendAddress Tuple (sendCommChannelTypeId Int32, sendCommChannelTypeCode String, sendAddress String),
     ...

)Engine = MergeTree()
PARTITION BY applicationId
ORDER BY (applicationId);

Kafka Engine 설정으로 두 번째 테이블 만들기 :

CREATE TABLE tab_kfk
(
    ...
    sendAddress Tuple (sendCommChannelTypeId Int32, sendCommChannelTypeCode String, sendAddress String),
    ...
)ENGINE = Kafka
SETTINGS kafka_broker_list = 'localhost:9092',
       kafka_topic_list = 'topk2',
       kafka_group_name = 'group1',
       kafka_format = 'JSONEachRow',
       kafka_row_delimiter = '\n';

구체화 된 뷰 생성

CREATE MATERIALIZED VIEW tab_mv TO tab AS
SELECT ... sendAddress, ...
FROM tab_kfk;

그런 다음 첫 번째 테이블-탭에서 모든 또는 특정 항목을 선택하려고 시도하고 아무것도 얻지 못합니다. 로그는 다음과 같습니다.예외

확인. 다음과 같이 sendAddress의 중괄호 앞에 '[]'를 추가하면됩니다.

"authkey":"some_value",
   "sendAddress":[{
      "sendCommChannelTypeId":4,
      "sendCommChannelTypeCode":"SMS",
      "sendAddress":"789345345945"
   }]

그리고 여전히 실수가 있지만 약간 다릅니다. 이 문제를 해결하려면 어떻게해야합니까, 감사합니다!

블라디미르

이 문제를 해결하는 방법에는 세 가지가 있습니다.

  1. Kafka 주제에 삽입하기 전에 중첩 된 개체를 사용하지 않고 메시지를 병합하지 마십시오. 예를 들면 다음과 같습니다.
{
    ..
    "authkey":"key",
    "sendAddress_CommChannelTypeId":4,
    "sendAddress_CommChannelTypeCode":"SMS",
    "sendAddress":"789345345945",
    ..
}
  1. 사용 중첩 된 데이터 구조 json으로 메시지 스키마 및 테이블의 스키마를 변경해야합니다 :
{
    ..
    "authkey":"key",
    "sendAddress.sendCommChannelTypeId":[4],
    "sendAddress.sendCommChannelTypeCode":["SMS"],
    "sendAddress.sendAddress":["789345345945"],
    ..
}
CREATE TABLE tab_kfk
(
    applicationId Int32,
    ..
    sendAddress Nested(
        sendCommChannelTypeId Int32,
        sendCommChannelTypeCode String,
        sendAddress String),
    ..
)
ENGINE = Kafka
SETTINGS kafka_broker_list = 'localhost:9092',
       kafka_topic_list = 'topk2',
       kafka_group_name = 'group1',
       kafka_format = 'JSONEachRow',
       kafka_row_delimiter = '\n',
       input_format_import_nested_json = 1 /* <--- */

input_format_import_nested_json 설정을 고려하십시오 .

  1. 입력 JSON 메시지를 문자열로 해석하고 수동으로 구문 분석합니다 ( github 문제 # 16969 참조 ).
CREATE TABLE tab_kfk
(
    message String
)
ENGINE = Kafka
SETTINGS 
    ..
    kafka_format = 'JSONAsString', /* <--- */
    ..

CREATE MATERIALIZED VIEW tab_mv TO tab 
AS
SELECT 
    ..
    JSONExtractString(message, 'authkey') AS authkey,
    JSONExtract(message, 'sendAddress', 'Tuple(Int32,String,String)') AS sendAddress,
    ..
FROM tab_kfk;

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

JSON 예외 구문 분석-직렬화 해제 할 수 없음

분류에서Dev

구성을 구문 분석 할 수 없음 : /hibernate.cfg.xml 예외

분류에서Dev

Java 구문 분석 할 수없는 날짜 예외

분류에서Dev

SimpleDateFormatter 구문 분석 할 수없는 날짜 예외

분류에서Dev

Json 데이터를 사용하는 Java에서 구문 분석 할 수없는 날짜 예외

분류에서Dev

예측할 수없는 유형 이름의 Json 객체 구문 분석

분류에서Dev

"스레드"main "의 예외 org.hibernate.HibernateException : 구성을 구문 분석 할 수 없음 : hibernate.cfg.xml"

분류에서Dev

WebView에서 JSON 데이터를 구문 분석 할 수 없음

분류에서Dev

Android XML 파일 구문 분석 파일을 찾을 수 없음 예외

분류에서Dev

DateTimeFormatter parseBest ()는 '인덱스 8에서 구문 분석 할 수 없음'예외를 제공합니다.

분류에서Dev

SwiftyJSON이 JSON 배열을 구문 분석 할 수 없습니다.

분류에서Dev

ROBLOX Lua에서 JSON을 구문 분석 할 수 없습니다.

분류에서Dev

ROBLOX Lua에서 JSON을 구문 분석 할 수 없습니다.

분류에서Dev

SwiftyJSON-Json을 구문 분석 할 수 없음

분류에서Dev

JSON 데이터를 POJO로 구문 분석 할 수 없음

분류에서Dev

UIAlertView의 cancelButtonTitle에서 Xcode 구문 분석 문제- " ']'예상 됨"

분류에서Dev

Play Scala에서 Enum에서 Json으로 맵을 구문 분석 할 수 없음

분류에서Dev

문자열을 정수로 구문 분석 할 때 숫자 형식 예외

분류에서Dev

JS 예외 스택 : JSON 구문 분석

분류에서Dev

JSON 문자열을 구문 분석 할 때 예기치 않은 토큰을 찾을 수 없습니다.

분류에서Dev

10 진수 구문 분석시 예외

분류에서Dev

날짜 형식화 시도 후 구문 분석 할 수없는 날짜 예외

분류에서Dev

구문 분석 할 수없는 날짜 : "Sat Oct 12 09:05:00 IST 2013"예외

분류에서Dev

구문 분석 할 수없는 날짜 예외 : "2015-02-06T16 : 05 : 20"

분류에서Dev

JMESPATH에서 json 출력을 구문 분석 할 수 없습니다.

분류에서Dev

DocumentBuilder 구문 분석 예외

분류에서Dev

ZonedDateTime 구문 분석 예외

분류에서Dev

DBPedia에서 데이터를 구문 분석 할 때 OpenRdf 예외

분류에서Dev

SaveAsync ()에서 예외 구문 분석

Related 관련 기사

  1. 1

    JSON 예외 구문 분석-직렬화 해제 할 수 없음

  2. 2

    구성을 구문 분석 할 수 없음 : /hibernate.cfg.xml 예외

  3. 3

    Java 구문 분석 할 수없는 날짜 예외

  4. 4

    SimpleDateFormatter 구문 분석 할 수없는 날짜 예외

  5. 5

    Json 데이터를 사용하는 Java에서 구문 분석 할 수없는 날짜 예외

  6. 6

    예측할 수없는 유형 이름의 Json 객체 구문 분석

  7. 7

    "스레드"main "의 예외 org.hibernate.HibernateException : 구성을 구문 분석 할 수 없음 : hibernate.cfg.xml"

  8. 8

    WebView에서 JSON 데이터를 구문 분석 할 수 없음

  9. 9

    Android XML 파일 구문 분석 파일을 찾을 수 없음 예외

  10. 10

    DateTimeFormatter parseBest ()는 '인덱스 8에서 구문 분석 할 수 없음'예외를 제공합니다.

  11. 11

    SwiftyJSON이 JSON 배열을 구문 분석 할 수 없습니다.

  12. 12

    ROBLOX Lua에서 JSON을 구문 분석 할 수 없습니다.

  13. 13

    ROBLOX Lua에서 JSON을 구문 분석 할 수 없습니다.

  14. 14

    SwiftyJSON-Json을 구문 분석 할 수 없음

  15. 15

    JSON 데이터를 POJO로 구문 분석 할 수 없음

  16. 16

    UIAlertView의 cancelButtonTitle에서 Xcode 구문 분석 문제- " ']'예상 됨"

  17. 17

    Play Scala에서 Enum에서 Json으로 맵을 구문 분석 할 수 없음

  18. 18

    문자열을 정수로 구문 분석 할 때 숫자 형식 예외

  19. 19

    JS 예외 스택 : JSON 구문 분석

  20. 20

    JSON 문자열을 구문 분석 할 때 예기치 않은 토큰을 찾을 수 없습니다.

  21. 21

    10 진수 구문 분석시 예외

  22. 22

    날짜 형식화 시도 후 구문 분석 할 수없는 날짜 예외

  23. 23

    구문 분석 할 수없는 날짜 : "Sat Oct 12 09:05:00 IST 2013"예외

  24. 24

    구문 분석 할 수없는 날짜 예외 : "2015-02-06T16 : 05 : 20"

  25. 25

    JMESPATH에서 json 출력을 구문 분석 할 수 없습니다.

  26. 26

    DocumentBuilder 구문 분석 예외

  27. 27

    ZonedDateTime 구문 분석 예외

  28. 28

    DBPedia에서 데이터를 구문 분석 할 때 OpenRdf 예외

  29. 29

    SaveAsync ()에서 예외 구문 분석

뜨겁다태그

보관