TDengine 3.3.8.8 Stream-Erstellung schlägt fehl – ​​Syntaxfehler (Produktion, Containerisiertes Linux)Linux

Linux verstehen
Anonymous
 TDengine 3.3.8.8 Stream-Erstellung schlägt fehl – ​​Syntaxfehler (Produktion, Containerisiertes Linux)

Post by Anonymous »

Problembeschreibung
In meiner Produktionsumgebung (containerisierte Linux-Bereitstellung) stoße ich auf einen Syntaxfehler, wenn ich versuche, eine Stream-Berechnung in TDengine 3.3.8.8 zu erstellen. Der Fehler tritt auf, nachdem zwei Supertabellen erfolgreich erstellt wurden, und dadurch wird mein Echtzeit-Datenaggregationsworkflow blockiert, der auf Stream Computing basiert.
Umgebungsdetails
  • Bereitstellungsumgebung: Produktion
  • TDengine-Version: 3.3.8.8
  • Betriebssystem: Linux (generische Distribution)
  • Bereitstellung Methode: Containerisiert
Reproduktionsschritte
  • Zuerst erstelle ich erfolgreich die erste Supertabelle (keine Fehler):

    Code: Select all

    CREATE TABLE IF NOT EXISTS equ_state (ts TIMESTAMP, status INT) TAGS (code BINARY(25));
    
  • Dann erstelle ich erfolgreich die zweite Supertabelle (keine Fehler):

    Code: Select all

    CREATE TABLE IF NOT EXISTS equ_ss (ts TIMESTAMP, run DOUBLE) TAGS (code BINARY(25));
    
  • Beim Ausführen der folgenden CREATE STREAM-Anweisung zum Erstellen der Stream-Berechnung schlägt diese sofort mit einem Syntaxfehler fehl:

    Code: Select all

    CREATE STREAM IF NOT EXISTS equ_ss_stream
    INTERVAL(1d)
    FROM equ_state PARTITION BY code
    into equ_ss
    OUTPUT_SUBTABLE(concat('', code))
    as
    select
    _wstart,
    round(sum(case when status = 1 then 1 else 0 end)/60,2)  run
    from %%tbname;
    
Fehlerinformationen
Der TDengine-Fehler weist explizit auf einen Syntaxfehler in der Nähe des hervorgehobenen Abschnitts der Stream-Erstellungs-SQL hin. Die Kernfehlermeldung lautet:

Code: Select all

round(sum(case when status = 1 then 1 else 0 end)/60,2)  run
from %%tbname, desc: syntax error near "from equ_state partition by code
into equ_ss
output_subtable(concat(‘’, code))
Was ich bisher versucht habe
  • Validierte die Supertabellenerstellungs-SQL (beide Tabellen sind vorhanden und können über SHOW TABLES abgefragt werden).
  • Ich habe die offiziellen TDengine 3.3.8.8-Dokumente auf die Streamerstellungssyntax überprüft (mit Schwerpunkt auf PARTITION BY, INTO und OUTPUT_SUBTABLE-Klauseln).
  • Zusätzliche Leerzeichen im Stream-SQL entfernt, um Leerzeichen-bezogene Syntaxprobleme zu beseitigen (keine Verbesserung).
  • Eine minimale Stream-Erstellung getestet (ohne PARTITION BY/

    Code: Select all

    OUTPUT_SUBTABLE
    ), was funktioniert und bestätigt, dass die grundlegende Stream-Funktionalität intakt ist.
Meine Fragen
  • Welcher spezifische Syntaxfehler verursacht den Fehler in meiner TDengine 3.3.8.8-Stream-Erstellungsanweisung?
  • Gibt es strenge Reihenfolge-/Formatanforderungen für PARTITION BY, INTO und OUTPUT_SUBTABLE-Klauseln in TDengine-Stream-SQL?
  • Ist concat('', code) eine gültige Möglichkeit, auf das Code-Tag in OUTPUT_SUBTABLE für TDengine 3.3.8.8 zu verweisen, oder gibt es eine korrekte Alternative?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post