メインコンテンツまでスキップ

限界と拒否トークン

登録が拒否された場合、何が拒否されたのかの名前が共に送られてきます。 そのトークンがそのままログとAPIレスポンスに表示されるため、このページから該当する一行を見つけることができます。

すべての拒否は名前を提示します — そのままにして進行することはありません

スキップされた構成は、文を**«動作し、出力し、誤っている»**状態にします — 行数が少なかったり、列が静かに欠落していたりしますが、どこも赤く表示されません。 登録を拒否することが、オペレーターが確認できる唯一の失敗形態です。

トークンの読み方 — 接頭辞が«誰が»を提示します​

接頭辞誰が拒否したか対応策
aster:エンジン自身がコンパイル中に拒否通常は文側の問題です — 列の名前・タイプを確認してください
それ以外のトークンプランナーが「このエンジンではダウングレードできない」その構成を除いて文を書き直してください

言語レベルで受理されないもの​

トークン意味
function:<name>言語が認識できない関数 (percentile · to_bigdecimal など)
view:<key>言語が認識できないビュー (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-elseELSE なき CASE — 残る場合の答えがありません
function:stddev:non-numeric-argument · function:median:non-numeric-argument数値ではない列への統計関数
select:distinct:with-windowDISTINCT にすでにウィンドウが付随しています
view:chain:second-windowウィンドウを二重に設定しました
view:on-pattern-sourceパターンが«出した行»上のウィンドウ
view:std:firstevent文のライフサイクルで一行だけ出すビュー
pattern:and · pattern:untilそのパターン演算子をダウングレードできません
match-recognize:input:windowMATCH_RECOGNIZE の入力へのウィンドウ
match-recognize:after-match-skip:past-last-rowSKIP PAST LAST ROW
match-recognize:pattern:alternation · …:permute交代 · 順列
having:aggregate-not-selectedSELECT が計算しない集計による HAVING

Flink は運用に使用しないため、これらのトークンは照合時のみ表示されます。

トークン意味
from:joinジョイン
select:distinct · order by · limit:<n>その句
where:not単項 NOT
insert into:<stream>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

「受理して無視する」句は拒否よりも悪質です​

本文書が繰り返し監視している失敗形態です。

拒否された文は登録されず、オペレーターが気づきます。 受理されて無視された句は、文が動作し、行を出力し、その行がもっともらしく見えます。

過去にこの類で4件が捕捉されました — OUTPUT LAST EVERY n(名前だけ受け取り実装せず) · ORDER BY·LIMIT(受理して静かに破棄) · pattern:without every(文が要求していない行が出力される) · to_string(製品にない関数を「使用できる」と回答).

🔴 最後のが最も悪質です。 拒否は「別の綴りを探せ」ということになりますが、誤った SUPPORTED は**「移行できる」という約束**になります。

その他の限界​

項目状態
遅延イベント許容遅延の概念がありません。 遅く届いたイベントは開いたバケットに合算されます
初分バケット抑制しません — 登録直後の初バケットは断片となります
DST転換幅がバケットサイズの倍数でない場合は拒否します
stddev · median が頻繁に拒否される理由コーパスの value 列が文字列であるためです — 文の問題ではなくスキーマの問題です
to_* の失敗値変換に失敗するかNULLの場合は、現在は −1 となります
結果伝達サブスクライバーが0の場合、行は消失し警告のみが残ります
他バックエンドの列が«計測不能»である欄✓ として読み取らないでください。計測されなかったことと、可能であることは異なります

関連記事​