Строки не добавляются в аналитику AWS Kinesis Поток SQL в приложении из потока данных Kinesis

Я записываю данные в поток Kinesis при вызове dynamoDBTrigger, Этот поток настраивается как входной поток для приложения аналитики Kinesis. У меня есть лямбда-препроцессор, настроенный на потоке kinesis, который записывает данные, записанные в потоке. Однако в окне приложения аналитики на вкладке источника появляется сообщение Нет строк в исходном потоке. Строки не создаются в потоке sql в приложении.

Я использую Node и разворачиваю сервис с помощью serverless.yml файл. Вот конфигурации -

RecordKinesisAnalyticsApp: Type: AWS::KinesisAnalytics::Application Properties: ApplicationName: RecordKinesisAnalyticsApp ApplicationDescription: RecordKinesisAnalyticsApp ApplicationCode: ${file(./serverless/metadataQueries.yml):AnalyticsQuery_1} Inputs: - NamePrefix: "RecordPrefix" InputSchema: RecordColumns: - Name: "USER_ID" SqlType: "VARCHAR(20)" Mapping: "$._userId" - Name: "ANXIETY" SqlType: "INTEGER" Mapping: "$.anxiety" RecordEncoding: "UTF-8" RecordFormat: RecordFormatType: "JSON" KinesisStreamsInput: ResourceARN: Fn::GetAtt: - RecordKinesisInputStream - Arn RoleARN: arn:aws:iam::xxxxxxxxxxx:role/service-role/kinesis-analytics-KinesisDemo-us-east-1 Это запрос аналитики -

CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM " (USER_ID VARCHAR(20), ANXIETY INTEGER); CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM" SELECT STREAM USER_ID, ANXIETY FROM "RecordPrefix_001" WHERE ANXIETY >= 0; введите описание изображения здесь

введите описание изображения здесь

1 ответ

Думаю, это из-за ваших цитат. Консоль AWS (по умолчанию, даже если вы ее не видите) и вы в своем коде использовали"USER_ID","ANXIETY"и так далее. Таким образом, ваш код SQL также должен использовать кавычки:

      CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM ("USER_ID" VARCHAR(20), "ANXIETY" INTEGER);

CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM"
    SELECT STREAM "USER_ID", "ANXIETY"
    FROM "RecordPrefix_001" 
    WHERE "ANXIETY" >= 0;

Из документов :

Kinesis Data Analytics добавляет кавычки вокруг идентификаторов (имя потока и имена столбцов) при создании входного потока в приложении. При запросе этого потока и столбцов вы должны указывать их в кавычках, используя один и тот же регистр (точно совпадая с прописными и строчными буквами). Дополнительные сведения об идентификаторах см. в разделе «Идентификаторы» в Справочнике по SQL для Amazon Kinesis Data Analytics.

Другие вопросы по тегам