Zum Hauptinhalt springen

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.

Alle Ablehnungen nennen ihren Namen — es wird nicht ignoriert und fortgesetzt

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äfixWer hat abgelehntMaßnahme
aster:Die Engine selbst bei der KompilierungMeist ein Problem im Satz — prüfen Sie Spaltennamen und Typen
Andere TokenDer 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​

TokenBedeutung
function:<name>Von der Sprache unbekannte Funktion (percentile · to_bigdecimal usw.)
view:<key>Von der Sprache unbekannte View (std:size usw.)
pattern:not:unboundedAbwesenheitsmuster ohne Zeitraum. Geben Sie einen Zeitraum an, wie in not X for 30 min
pattern:guard:timer:at · pattern:observer:timer:scheduleKonfiguration timer:, die nicht in der Liste steht
window:tumbling:zone-without-calendar-alignmentZeitzone angegeben, aber keine Kalenderausrichtung

Ablehnungen durch das Standard-Backend (Aster CEP)​

TokenBedeutung
expr:case-without-elseCASE ohne ELSE — es gibt keine Antwort für den verbleibenden Fall
function:stddev:non-numeric-argument · function:median:non-numeric-argumentStatistische Funktion auf einer Nicht-Numerischen-Spalte
select:distinct:with-windowAn DISTINCT ist bereits ein Fenster gebunden
view:chain:second-windowFenster wurde doppelt zugewiesen
view:on-pattern-sourceFenster über einer «ausgegebenen Zeile» des Musters
view:std:firsteventView, die nur eine Zeile im Lebenszyklus des Satzes ausgibt
pattern:and · pattern:untilDieser Musteroperator kann nicht heruntergestuft werden
match-recognize:input:windowFenster im Input von MATCH_RECOGNIZE
match-recognize:after-match-skip:past-last-rowSKIP PAST LAST ROW
match-recognize:pattern:alternation · …:permutePermutation · Kombination
having:aggregate-not-selectedHAVING mit einer Aggregation, die SELECT nicht berechnet

Da Flink nicht im Betrieb verwendet wird, erscheinen diese Token nur beim Abgleich.

TokenBedeutung
from:joinJoin
select:distinct · order by · limit:<n>Diese Klausel
where:notUnärer NOT
insert into:<stream>INSERT INTO
pattern:notAbwesenheitsmuster — Standard-Zeilenmuster haben keine Negation
window:sliding:not-supported · window:tumbling:first-event-alignmentDiese Fensterform
function:first · function:median · function:castDiese Funktion
projection:operator:<op> · projection:case with an operandArithmetik 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​

PunktStatus
Verspätete EreignisseEs gibt kein Konzept für zulässige Verspätung. Späte Ereignisse werden auf offene Buckets aufsummiert
Erster Teil-BucketWird nicht unterdrückt — der erste Bucket unmittelbar nach der Registrierung ist ein Fragment
DSTWird abgelehnt, wenn die Umstellungsbreite kein Vielfaches der Bucket-Größe ist
Grund für häufige Ablehnungen von stddev · medianDie 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
ErgebnistransferWenn die Anzahl der Abonnenten 0 ist, verschwindet die Zeile und es bleibt nur eine Warnung
Felder anderer Backends, die als «nicht gemessen» markiert sindLesen Sie dies nicht als ✓. Nicht gemessen ist nicht dasselbe wie möglich

Verwandte Dokumente​