步骤 1. 准备数据 - Amazon Kinesis Data Analytics for SQL 应用程序开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

步骤 1. 准备数据

在为此示例创建 Amazon Kinesis Data Analytics 应用程序之前,您需要创建一个 Kinesis 数据流以作为应用程序的流式传输源。另外,您还需运行 Python 代码来将模拟血压数据写入流中。

步骤1.1: 创建 Kinesis 数据流

在本节中,您创建了 Kinesis 名称数据流 ExampleInputStream。您可以使用 AWS 管理控制台 或 AWS CLI.

  • 要使用 控制台

    1. 登录 AWS 管理控制台并通过以下网址打开 Kinesis 控制台:https://console.amazonaws.cn/kinesis

    2. 在导航窗格中,选择 Data Streams (数据流)。然后选择创建 Kinesis 流

    3. 对于名称,键入 ExampleInputStream。对于碎片数量,请键入 1.

  • 或者,要使用 AWS CLI 创建数据流,请运行以下命令:

    $ aws kinesis create-stream --stream-name ExampleInputStream --shard-count 1

步骤1.2: 将示例记录写入输入流

在此步骤中,您运行 Python 代码以不断生成示例记录并将其写入您创建的数据流中。

  1. 安装 Python 和 pip。

    有关安装 Python 的信息,请参阅 Python

    您可以使用 pip 安装依赖项。有关安装 pip 的信息,请参阅 pip 文档中的安装

  2. 运行以下 Python 代码。可以将区域改为您要用于此示例的区域。代码中的 put-record 命令将 JSON 记录写入到流。

    import json import boto3 import random kinesis = boto3.client('kinesis') # Generate normal blood pressure with a 0.995 probability def getNormalBloodPressure(): data = {} data['Systolic'] = random.randint(90, 120) data['Diastolic'] = random.randint(60, 80) data['BloodPressureLevel'] = 'NORMAL' return data # Generate high blood pressure with probability 0.005 def getHighBloodPressure(): data = {} data['Systolic'] = random.randint(130, 200) data['Diastolic'] = random.randint(90, 150) data['BloodPressureLevel'] = 'HIGH' return data # Generate low blood pressure with probability 0.005 def getLowBloodPressure(): data = {} data['Systolic'] = random.randint(50, 80) data['Diastolic'] = random.randint(30, 50) data['BloodPressureLevel'] = 'LOW' return data while True: rnd = random.random() if (rnd < 0.005): data = json.dumps(getLowBloodPressure()) print(data) kinesis.put_record( StreamName="BloodPressureExampleInputStream", Data=data, PartitionKey="partitionkey") elif (rnd > 0.995): data = json.dumps(getHighBloodPressure()) print(data) kinesis.put_record( StreamName="BloodPressureExampleInputStream", Data=data, PartitionKey="partitionkey") else: data = json.dumps(getNormalBloodPressure()) print(data) kinesis.put_record( StreamName="BloodPressureExampleInputStream", Data=data, PartitionKey="partitionkey")

下一步

步骤 2. 创建分析应用程序