Строки не добавляются в аналитику 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.