LabHub
学习 学习路径 课程

Apache Flink — 스트림을 엔진으로 돌린다 · 스트림 조인 · 测验

퀴즈: 스트림 조인 세 가지

在 LabHub 中继续学习

6道题. 完成作答后会显示正确答案和解析。

  1. 주문 흐름에 상품 표를 시간 조건 없는 JOIN 으로 붙였다. 몇 달 뒤 상태가 계속 자라는 이유로 가장 정확한 것은?

    1. 상품 표가 갱신될 때마다 새 버전을 따로 쌓기 때문이다
    2. 워터마크가 멈춰 창이 닫히지 않기 때문이다
    3. 일반 조인은 양쪽 입력을 모두 상태에 두고 기본으로는 지우지 않기 때문이다
    4. 싱크가 느려 결과가 상태에 밀려 쌓이기 때문이다
  2. `s.ship_time BETWEEN o.order_time AND o.order_time + INTERVAL '2' HOUR` 로 구간 조인했다. 주문 7200초 뒤에 나간 배송과 7201초 뒤에 나간 배송은?

    1. 7200초는 붙고 7201초는 붙지 않는다
    2. 둘 다 붙지 않는다 — 끝 경계는 제외된다
    3. 둘 다 붙는다 — 워터마크가 1초를 봐준다
    4. 7201초만 붙는다 — 시작 경계가 제외된다
  3. append-only 환율 원천을 temporal join 의 오른쪽에 쓰려고 한다. 무엇이 필요한가?

    1. 환율 표에 PRIMARY KEY ... NOT ENFORCED 를 선언하면 충분하다
    2. 처리 시간 속성 PROCTIME() 열을 더하면 된다
    3. 환율 표를 배치 모드로 읽어 한 번에 적재해야 한다
    4. 통화별 최신 행만 남기는 ROW_NUMBER 중복 제거 뷰로 기본 키와 이벤트 시간을 갖게 한다
  4. 이벤트 시간 temporal join 을 돌린 뒤 오른쪽(환율)에 새 버전이 왔다. 이미 낸 주문 결과는?

    1. -U 와 +U 로 새 환율 값이 다시 나온다
    2. 바뀌지 않는다 — 주문은 자기 시각에 유효했던 버전과 한 번 붙는다
    3. TTL 이 지난 뒤에만 다시 계산된다
    4. 워터마크가 뒤로 돌아가 해당 주문부터 다시 처리된다
  5. 세 조인의 COMPILE PLAN JSON 을 비교했다. TTL 이 적힌 leftState·rightState 항목이 있는 것은?

    1. 일반 조인(stream-exec-join)뿐이다
    2. 구간 조인(stream-exec-interval-join)뿐이다
    3. 세 조인 모두 같은 두 항목을 가진다
    4. temporal join(stream-exec-temporal-join)뿐이다
  6. 통화 USD 의 매출을 두 방식으로 환산했다. temporal join 결과와 일반 조인(같은 버전 뷰) 결과의 최종 합계가 다른 이유는?

    1. 일반 조인은 첫 환율보다 이른 주문을 빼기 때문이다
    2. temporal join 이 소수점 넷째 자리에서 반올림하기 때문이다
    3. 일반 조인은 환율이 바뀔 때마다 지난 주문까지 새 환율로 다시 계산해 마지막 환율로 끝나기 때문이다
    4. 두 쿼리가 서로 다른 워터마크 지연을 쓰기 때문이다