Skip to content

Application ​

The Application resource lets you manage AWS KinesisAnalytics Applications for processing and analyzing streaming data in real time.

Minimal Example ​

Create a basic KinesisAnalytics application with required properties and a common optional property.

ts
import AWS from "alchemy/aws/control";

const kinesisAnalyticsApp = await AWS.KinesisAnalytics.Application("basicKinesisApp", {
  ApplicationName: "RealTimeDataAnalytics",
  Inputs: [
    {
      NamePrefix: "InputStream",
      KinesisStreamsInput: {
        ResourceARN: "arn:aws:kinesis:us-west-2:123456789012:stream/MyKinesisStream",
        RoleARN: "arn:aws:iam::123456789012:role/KinesisAnalyticsRole"
      },
      InputSchema: {
        RecordFormat: {
          RecordFormatType: "JSON",
          MappingParameters: {
            JSONMappingParameters: {
              RecordRowPath: "$"
            }
          }
        },
        RecordColumns: [
          { Name: "timestamp", SqlType: "TIMESTAMP", Mapping: "$.timestamp" },
          { Name: "temperature", SqlType: "DOUBLE", Mapping: "$.temperature" }
        ]
      }
    }
  ]
});

Advanced Configuration ​

Configure an application with additional properties like application description and application code.

ts
const advancedKinesisAnalyticsApp = await AWS.KinesisAnalytics.Application("advancedKinesisApp", {
  ApplicationName: "AdvancedDataAnalytics",
  ApplicationDescription: "This application processes real-time temperature data from sensors.",
  ApplicationCode: `
    CREATE OR REPLACE STREAM "OutputStream" AS
    SELECT * FROM "InputStream" WHERE temperature > 30;
  `,
  Inputs: [
    {
      NamePrefix: "InputStream",
      KinesisStreamsInput: {
        ResourceARN: "arn:aws:kinesis:us-west-2:123456789012:stream/MyKinesisStream",
        RoleARN: "arn:aws:iam::123456789012:role/KinesisAnalyticsRole"
      },
      InputSchema: {
        RecordFormat: {
          RecordFormatType: "JSON",
          MappingParameters: {
            JSONMappingParameters: {
              RecordRowPath: "$"
            }
          }
        },
        RecordColumns: [
          { Name: "timestamp", SqlType: "TIMESTAMP", Mapping: "$.timestamp" },
          { Name: "temperature", SqlType: "DOUBLE", Mapping: "$.temperature" }
        ]
      }
    }
  ]
});

Real-Time Data Processing ​

Create an application that processes streaming data and outputs the filtered results to another stream.

ts
const realTimeDataApp = await AWS.KinesisAnalytics.Application("realTimeProcessingApp", {
  ApplicationName: "RealTimeTemperatureFilter",
  ApplicationDescription: "Filters out temperature readings above a threshold.",
  ApplicationCode: `
    CREATE OR REPLACE STREAM "FilteredOutput" AS
    SELECT timestamp, temperature FROM "InputStream" WHERE temperature > 30;
  `,
  Inputs: [
    {
      NamePrefix: "InputStream",
      KinesisStreamsInput: {
        ResourceARN: "arn:aws:kinesis:us-west-2:123456789012:stream/MyKinesisStream",
        RoleARN: "arn:aws:iam::123456789012:role/KinesisAnalyticsRole"
      },
      InputSchema: {
        RecordFormat: {
          RecordFormatType: "JSON",
          MappingParameters: {
            JSONMappingParameters: {
              RecordRowPath: "$"
            }
          }
        },
        RecordColumns: [
          { Name: "timestamp", SqlType: "TIMESTAMP", Mapping: "$.timestamp" },
          { Name: "temperature", SqlType: "DOUBLE", Mapping: "$.temperature" }
        ]
      }
    }
  ]
});