After careful consideration, we have decided to discontinue Amazon Kinesis Data Analytics for SQL applications in two steps:
1. From October 15, 2025, you will not be able to create new Kinesis Data Analytics for SQL applications.
2. We will delete your applications starting January 27, 2026. You will not be able to start or operate your Amazon Kinesis Data Analytics for SQL applications. Support will no longer be available for Amazon Kinesis Data Analytics for SQL from that time. For more information, see Amazon Kinesis Data Analytics for SQL Applications discontinuation.
Example: Extracting a Portion of a String (SUBSTRING Function)
This example uses the SUBSTRING
function to transform a string in
Amazon Kinesis Data Analytics. The SUBSTRING
function extracts a portion of a source string
starting at a specific position. For more information, see SUBSTRING in the
Amazon Managed Service for Apache Flink SQL Reference.
In this example, you write the following records to an Amazon Kinesis data stream.
{ "REFERRER" : "http://www.amazon.com" } { "REFERRER" : "http://www.amazon.com"} { "REFERRER" : "http://www.amazon.com"} ...
You then create an Kinesis Data Analytics application on the console, using the Kinesis
data stream as the streaming source. The discovery process reads sample records on the
streaming source and infers an in-application schema with one column
(REFERRER
), as shown.
Then, you use the application code with the SUBSTRING
function to parse
the URL string to retrieve the company name. Then you insert the resulting data into
another in-application stream, as shown following:
Step 1: Create a Kinesis Data Stream
Create an Amazon Kinesis data stream and populate the log records as follows:
Sign in to the AWS Management Console and open the Kinesis console at https://console.aws.amazon.com/kinesis
. -
Choose Data Streams in the navigation pane.
-
Choose Create Kinesis stream, and create a stream with one shard. For more information, see Create a Stream in the Amazon Kinesis Data Streams Developer Guide.
-
Run the following Python code to populate sample log records. This simple code continuously writes the same log record to the stream.
import json import boto3 STREAM_NAME = "ExampleInputStream" def get_data(): return {"REFERRER": "http://www.amazon.com"} def generate(stream_name, kinesis_client): while True: data = get_data() print(data) kinesis_client.put_record( StreamName=stream_name, Data=json.dumps(data), PartitionKey="partitionkey" ) if __name__ == "__main__": generate(STREAM_NAME, boto3.client("kinesis"))
Step 2: Create the Kinesis Data Analytics Application
Next, create an Kinesis Data Analytics application as follows:
Open the Managed Service for Apache Flink console at https://console.aws.amazon.com/kinesisanalytics
. -
Choose Create application, type an application name, and choose Create application.
-
On the application details page, choose Connect streaming data.
-
On the Connect to source page, do the following:
-
Choose the stream that you created in the preceding section.
-
Choose the option to create an IAM role.
-
Choose Discover schema. Wait for the console to show the inferred schema and samples records used to infer the schema for the in-application stream created. The inferred schema has only one column.
-
Choose Save and continue.
-
-
On the application details page, choose Go to SQL editor. To start the application, choose Yes, start application in the dialog box that appears.
-
In the SQL editor, write the application code, and verify the results as follows:
-
Copy the following application code and paste it into the editor.
-- CREATE OR REPLACE STREAM for cleaned up referrer CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" ( "ingest_time" TIMESTAMP, "referrer" VARCHAR(32)); CREATE OR REPLACE PUMP "myPUMP" AS INSERT INTO "DESTINATION_SQL_STREAM" SELECT STREAM "APPROXIMATE_ARRIVAL_TIME", SUBSTRING("referrer", 12, (POSITION('.com' IN "referrer") - POSITION('www.' IN "referrer") - 4)) FROM "SOURCE_SQL_STREAM_001";
-
Choose Save and run SQL. On the Real-time analytics tab, you can see all the in-application streams that the application created and verify the data.
-