LabHub
배우기 러닝패스 코스

Apache Flink — 스트림을 엔진으로 돌린다 · 패턴 인식 (MATCH_RECOGNIZE) · 퀴즈

퀴즈: MATCH_RECOGNIZE

LabHub 에서 이어서 보기

6문항. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. 한 사용자에게 실패 5번 뒤 성공 1번이 연달아 왔다. `PATTERN (F{3,} S)` 를 `AFTER MATCH SKIP TO NEXT ROW` 로 돌리면 매치는 몇 개인가?

    1. 1개 — 가장 긴 실패 구간 하나
    2. 2개 — 실패 5번과 4번짜리
    3. 3개 — 실패 5·4·3번짜리
    4. 5개 — 실패마다 하나
  2. 패턴 `S T+ B` 에서 T 는 `amount < 20`, B 는 `amount >= 10` 이다. 로그인 뒤 결제가 5, 12, 15, 300 순서로 왔을 때 탐욕 T+ 의 매치에서 B 에 걸리는 행은?

    1. 12 — B 조건을 처음 만족하는 행
    2. 300 — T 가 5·12·15 를 먹은 뒤의 행
    3. 15 — T 조건을 만족하는 마지막 행
    4. 없다 — 조건이 겹쳐 오류가 난다
  3. `WITHIN INTERVAL '30' SECOND` 를 붙였다. 첫 실패가 21:00:00, 성공이 21:00:30 인 후보는 이 파드의 엔진에서 어떻게 되었나?

    1. 매치로 나온다 — 30초 이하면 통과한다
    2. 매치로 나오되 fails 가 하나 줄어든다
    3. 잡이 오류로 멈춘다 — 경계값은 허용되지 않는다
    4. 버려진다 — 간격이 정확히 30초인 후보도 떨어졌다
  4. 도착 순서가 최대 8초 흐트러진 파일을 워터마크 지연 0초로 읽어 MATCH_RECOGNIZE 를 돌렸다. 정렬된 파일에 비해 결과는?

    1. 매치가 줄어든다 — 앞서 온 행보다 이른 행이 늦은 행으로 버려진다
    2. 같다 — 이벤트 시간으로 정렬한 뒤 찾기 때문이다
    3. 매치가 늘어난다 — 순서가 바뀌어 새 연속 구간이 생긴다
    4. 잡이 실패한다 — ORDER BY 열이 정렬돼 있지 않다
  5. `MATCH_RECOGNIZE` 에서 `PARTITION BY` 를 빼면 어떻게 되는가?

    1. 문법 오류다 — PARTITION BY 는 반드시 있어야 한다
    2. 전역 순서를 지키려고 병렬도 1 인 연산자로 바뀐다
    3. 키가 자동으로 첫 열로 정해진다
    4. 행마다 따로 패턴을 찾아 매치가 나오지 않는다
  6. MATCH_RECOGNIZE 잡의 상태가 계속 커진다. 문서가 권하는 손잡이는?

    1. table.exec.state.ttl 을 짧게 준다
    2. AFTER MATCH SKIP TO NEXT ROW 로 바꾼다
    3. PATTERN 뒤에 WITHIN 으로 매치 시간 상한을 준다
    4. ONE ROW PER MATCH 를 ALL ROWS PER MATCH 로 바꾼다