한계와 거부 토큰
등록이 거부되면 무엇이 거부됐는지 이름이 같이 옵니다. 그 토큰이 그대로 로그와 API 응답에 나오므로, 한 줄을 이 페이지에서 찾을 수 있습니다.
모든 거부는 이름을 댑니다 — 넘겨서 계속 가지 않습니다
건너뛴 구성은 문장을 «돌고, 내보내고, 틀린» 상태로 만듭니다 — 행이 더 적거나, 컬럼이 조용히 없거나 — 아무것도 빨갛지 않은 채로. 등록을 거부하는 것이 운영자가 볼 수 있는 유일한 실패 모양입니다.
토큰을 읽는 법 — 접두사가 «누가» 를 말합니다
| 접두사 | 누가 거절했나 | 할 일 |
|---|---|---|
aster: | 엔진 자신이 컴파일하다 거절 | 대개 문장 쪽 문제입니다 — 컬럼 이름·타입을 봅니다 |
| 그 밖의 토큰 | 플래너가 「이 엔진으로 못 낮춘다」 | 그 구성을 빼고 문장을 다시 씁니다 |
언어가 아예 안 받는 것
| 토큰 | 뜻 |
|---|---|
function:<이름> | 언어가 모르는 함수 (percentile · to_bigdecimal 등) |
view:<키> | 언어가 모르는 뷰 (std:size 등) |
pattern:not:unbounded | 기간 없는 부재 패턴. not X for 30 min 처럼 기간을 적으십시오 |
pattern:guard:timer:at · pattern:observer:timer:schedule | 목록에 없는 timer: 구성 |
window:tumbling:zone-without-calendar-alignment | 시간대를 적었는데 달력 정렬이 아닙니다 |
기본 백엔드(Aster CEP)가 거절하는 것
| 토큰 | 뜻 |
|---|---|
expr:case-without-else | ELSE 없는 CASE — 남는 경우의 답이 없습니다 |
function:stddev:non-numeric-argument · function:median:non-numeric-argument | 수치가 아닌 열에 통계 함수 |
select:distinct:with-window | DISTINCT 에 이미 창이 붙었습니다 |
view:chain:second-window | 창을 두 번 걸었습니다 |
view:on-pattern-source | 패턴이 «낸 행» 위의 창 |
view:std:firstevent | 문장의 생애에 한 행만 내는 뷰 |
pattern:and · pattern:until | 그 패턴 연산자를 못 낮춥니다 |
match-recognize:input:window | MATCH_RECOGNIZE 의 입력에 창 |
match-recognize:after-match-skip:past-last-row | SKIP PAST LAST ROW |
match-recognize:pattern:alternation · …:permute | 교대 · 순열 |
having:aggregate-not-selected | SELECT 가 계산하지 않는 집계로 HAVING |
Flink 가 거절하는 것 (오라클 전용)
Flink 은 운영에 쓰지 않으므로 이 토큰들은 대조할 때만 보입니다.
| 토큰 | 뜻 |
|---|---|
from:join | 조인 |
select:distinct · order by · limit:<n> | 그 절 |
where:not | 단항 NOT |
insert into:<스트림> | INSERT INTO |
pattern:not | 부재 패턴 — 표준 행 패턴에 부정이 없습니다 |
window:sliding:not-supported · window:tumbling:first-event-alignment | 그 창 모양 |
function:first · function:median · function:cast | 그 함수 |
projection:operator:<op> · projection:case with an operand | 투영 안의 산술 · CASE |
「받아들이고 무시하는」 절은 거부보다 나쁩니다
이 문서가 반복해서 감시하는 실패 모양입니다.
거부된 문장은 등록이 안 되고 운영자가 봅니다. 받아들여지고 무시된 절은 문장이 돌고, 행을 내보내고, 그 행이 그럴듯합니다.
과거에 그 부류로 넷이 잡혔습니다 — OUTPUT LAST EVERY n(이름만 받고 구현 안 함) · ORDER BY·LIMIT(받아들이고 조용히 버림) · pattern:without every(문장이 요청하지 않은 행이 나옴) · to_string(제품에 없는 함수를 「쓸 수 있다」고 답함).
🔴 마지막 것이 가장 나쁩니다. 거절은 「다른 철자를 찾아라」이지만, 잘못된 SUPPORTED 는 「옮길 수 있다」는 약속입니다.
그 밖의 한계
| 항목 | 상태 |
|---|---|
| 지각 이벤트 | 허용 지각 개념이 없습니다. 늦게 온 이벤트는 열린 버킷에 합산됩니다 |
| 첫 부분 버킷 | 억제하지 않습니다 — 등록 직후의 첫 버킷은 조각입니다 |
| DST | 전환폭이 버킷 크기의 배수가 아니면 거절합니다 |
stddev · median 이 흔히 거절되는 이유 | 코퍼스의 value 열이 문자열이기 때문입니다 — 문장 문제가 아니라 스키마 문제입니다 |
to_* 의 실패 값 | 변환에 실패하거나 널이면 오늘 −1 입니다 |
| 결과 전달 | 구독자가 0이면 행은 사라지고 경고만 남습니다 |
| 다른 백엔드의 열이 «못 쟀다» 인 칸 | ✓ 로 읽지 마십시오. 재지 않은 것과 되는 것은 다릅니다 |