Grenzen und Ablehnungs-Token
Wenn eine Registrierung abgelehnt wird, wird der Name dessen mitgeliefert, was abgelehnt wurde. Da dieser Token eins zu eins in den Logs und API-Antworten erscheint, finden Sie die entsprechende Zeile auf dieser Seite.
Eine übersprungene Konfiguration würde dazu führen, dass der Satz in einem Zustand ist, in dem er «läuft, ausgibt, aber falsch ist» — es fehlen Zeilen oder Spalten verschwinden stillschweigend — ohne dass etwas rot markiert wird. Die Ablehnung der Registrierung ist die einzige Fehlerform, die ein Betreiber sehen kann.
Token lesen — Das Präfix gibt an, «wer» abgelehnt hat
| Präfix | Wer hat abgelehnt | Maßnahme |
|---|---|---|
aster: | Die Engine selbst bei der Kompilierung | Meist ein Problem im Satz — prüfen Sie Spaltennamen und Typen |
| Andere Token | Der Planner («Kann nicht auf diese Engine heruntergestuft werden») | Entfernen Sie diese Konfiguration und schreiben Sie den Satz neu |
Dinge, die die Sprache gar nicht akzeptiert
| Token | Bedeutung |
|---|---|
function:<name> | Von der Sprache unbekannte Funktion (percentile · to_bigdecimal usw.) |
view:<key> | Von der Sprache unbekannte View (std:size usw.) |
pattern:not:unbounded | Abwesenheitsmuster ohne Zeitraum. Geben Sie einen Zeitraum an, wie in not X for 30 min |
pattern:guard:timer:at · pattern:observer:timer:schedule | Konfiguration timer:, die nicht in der Liste steht |
window:tumbling:zone-without-calendar-alignment | Zeitzone angegeben, aber keine Kalenderausrichtung |
Ablehnungen durch das Standard-Backend (Aster CEP)
| Token | Bedeutung |
|---|---|
expr:case-without-else | CASE ohne ELSE — es gibt keine Antwort für den verbleibenden Fall |
function:stddev:non-numeric-argument · function:median:non-numeric-argument | Statistische Funktion auf einer Nicht-Numerischen-Spalte |
select:distinct:with-window | An DISTINCT ist bereits ein Fenster gebunden |
view:chain:second-window | Fenster wurde doppelt zugewiesen |
view:on-pattern-source | Fenster über einer «ausgegebenen Zeile» des Musters |
view:std:firstevent | View, die nur eine Zeile im Lebenszyklus des Satzes ausgibt |
pattern:and · pattern:until | Dieser Musteroperator kann nicht heruntergestuft werden |
match-recognize:input:window | Fenster im Input von MATCH_RECOGNIZE |
match-recognize:after-match-skip:past-last-row | SKIP PAST LAST ROW |
match-recognize:pattern:alternation · …:permute | Permutation · Kombination |
having:aggregate-not-selected | HAVING mit einer Aggregation, die SELECT nicht berechnet |
Ablehnungen durch Flink (nur für Oracle)
Da Flink nicht im Betrieb verwendet wird, erscheinen diese Token nur beim Abgleich.
| Token | Bedeutung |
|---|---|
from:join | Join |
select:distinct · order by · limit:<n> | Diese Klausel |
where:not | Unärer NOT |
insert into:<stream> | INSERT INTO |
pattern:not | Abwesenheitsmuster — Standard-Zeilenmuster haben keine Negation |
window:sliding:not-supported · window:tumbling:first-event-alignment | Diese Fensterform |
function:first · function:median · function:cast | Diese Funktion |
projection:operator:<op> · projection:case with an operand | Arithmetik in der Projektion · CASE |
Klauseln, die «akzeptiert und ignoriert» werden, sind schlimmer als Ablehnungen
Dies ist die Fehlerform, die in diesem Dokument wiederholt überwacht wird.
Ein abgelehnter Satz wird nicht registriert und vom Betreiber gesehen. Eine akzeptierte und ignorierte Klausel führt dazu, dass der Satz läuft, Zeilen ausgibt und diese Zeilen plausibel erscheinen.
In der Vergangenheit wurden vier Fälle dieser Art erfasst — OUTPUT LAST EVERY n (nur Name akzeptiert, nicht implementiert) · ORDER BY·LIMIT (akzeptiert und stillschweigend verworfen) · pattern:without every (Zeilen erscheinen, die der Satz nicht angefordert hat) · to_string (antwortet, dass eine im Produkt nicht vorhandene Funktion «verwendbar» sei).
🔴 Letzteres ist am schlimmsten. Eine Ablehnung bedeutet «Suche eine andere Schreibweise», aber ein falsches SUPPORTED ist ein Versprechen, dass es «übertragbar» sei.
Sonstige Grenzen
| Punkt | Status |
|---|---|
| Verspätete Ereignisse | Es gibt kein Konzept für zulässige Verspätung. Späte Ereignisse werden auf offene Buckets aufsummiert |
| Erster Teil-Bucket | Wird nicht unterdrückt — der erste Bucket unmittelbar nach der Registrierung ist ein Fragment |
| DST | Wird abgelehnt, wenn die Umstellungsbreite kein Vielfaches der Bucket-Größe ist |
Grund für häufige Ablehnungen von stddev · median | Die Spalte value des Korpus ist ein String — es ist ein Schema-Problem, kein Satz-Problem |
Fehlerwert von to_* | Bei Fehlern in der Umwandlung oder bei Null ist der Wert heute −1 |
| Ergebnistransfer | Wenn die Anzahl der Abonnenten 0 ist, verschwindet die Zeile und es bleibt nur eine Warnung |
| Felder anderer Backends, die als «nicht gemessen» markiert sind | Lesen Sie dies nicht als ✓. Nicht gemessen ist nicht dasselbe wie möglich |