>

테이블과 스트림을 결합하고 있습니다. 결합 결과는 부분적으로 만 성공합니다. 일부 값은 정확하게 채워지고 다른 값은 널입니다. 값이 테이블과 스트림 모두에 존재하고 조인에 사용 된 열이 둘 다의 핵심인지 확인했습니다.

conductor를 사용하여 jdbc를 사용하여 MSSQL의 테이블에서 읽는 주제를로드하고 있습니다.

KSQL을 사용하여 해당 주제에서 스트림과 테이블을 만들고 데이터는 모두 JSON 형식입니다.

테이블에서 누락 된 데이터의 타임 스탬프가 스트림의 타임 스탬프보다 오래되었습니다.

create stream casecode_contract_stream as select ct.projectid, ct.casecode, cs.isTrue from contract_stream cs left join casecode_table ct on cs.projectid = ct.projectid;    
select * from casecode_contract_stream limit 1;
1532034321292 | 706083 | null | null | true
ksql> select * from casecode_contract_stream where casecode is not null limit 1;
1532034321292 | 705147 | 705147 | data1 | true
select * from casecode_table where projectid = 705147;
1532033878462 | 705147 | 705147 | data1 
select * from casecode_table where projectid = 706083;
1532033878463 | 706083 | 706083 | data2 
select * from contract_stream where projectid = 705147;
1532034321292 | 705147 | 705147 | true
select * from contract_stream where projectid = 706083;
1532034321292 | 706083 | 706083 | true

어떤 제안?

  • 답변 # 1

    결과는 (비 결정적) 처리 순서에 따라 다릅니다. 알려진 문제이며 처리 순서를보다 결정 론적으로 만들기 위해 진행 중입니다.

    레코드 측의 레코드는 레코드가 테이블 측에 추가되기 전에 처리 될 수 있습니다. 이 경우 왼쪽 조인을 지정하면 스트림 레코드가 NULL로 조인됩니다.

  • 이전 python - 파이썬 _ 세는 법
  • 다음 javascript - 문자열 보간이 비어 있거나 vuejs에 있지 않은지 확인하십시오