Застрял с Kinesis ошеломить окно - PullRequest
0 голосов
/ 17 апреля 2019

У меня установлено приложение аналитики кинезиса, которое получает данные из потока кинезиса, имеющего следующую схему.

--------------------------
Column          ColumnType
--------------------------
Level           varchar(10)
RootID          varchar(32)
ProcessID       varchar(16)
EntityName      varchar(64)
Message         varchar(512)
Threshold       varchar(32)
TriggerTime     timestamp

Моя цель - создать решение для аналитики кинезиса в реальном времени, которое разделяет записи по уровню "OVERFLOW "и группирует их на основе RootID.Все записи, принадлежащие RootID, в идеале должны достигать кинезиса в течение 5 минут.Поэтому я подумываю о том, чтобы настроить окно для этого, и до сих пор я придумал этот SQL.

CREATE OR REPLACE STREAM "OVERFLOW_SQL_STREAM" (
    "Level" varchar (10),
    "RootID" varchar (32),
    "ProcessID" varchar(16),
    "EntityName" varchar(64),
    "Message" varchar(512),
    "Threshold" varchar(32),
    "TriggerTime" timestamp
);
CREATE OR REPLACE PUMP "STREAM_PUMP" AS
    INSERT INTO "OVERFLOW_SQL_STREAM"
        SELECT STREAM 
            "Level" varchar (10),
            "RootID" varchar (32),
            "ProcessID" varchar(16),
            "EntityName" varchar(64),
            "Message" varchar(512),
            "Threshold" varchar(32),
            "TriggerTime" timestamp
        FROM "SOURCE_SQL_STREAM_001"
        WHERE "Level" like "OVERFLOW"
        WINDOWED BY STAGGER (
            PARTITION BY "RootID",FLOOR("TriggerTime" TO MINUTE) RANGE INTERVAL '5' MINUTE);

Я получил сообщение об ошибке в SQL, в котором говорится, что в предложении «PARTITION BY нетколонка "Уровень" ".Я не понимаю, почему я должен добавить этот столбец в раздел, так как я хочу, чтобы мои записи были разделены только столбцом RootID, а не каким-либо другим.Добавление этого столбца приводит к ошибке, говорящей, что я должен добавить следующий столбец и так далее.Я не мог понять ошибку.Пожалуйста, помогите мне! Спасибо!

...