使用 Kinesis Data Streams 创建 Studio 笔记本 - Managed Service for Apache Flink
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon Managed Service for Apache Flink 之前称为 Amazon Kinesis Data Analytics for Apache Flink。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Kinesis Data Streams 创建 Studio 笔记本

本教程描述如何创建使用 Kinesis 数据流作为源的 Studio 笔记本。

设置

在创建 Studio 笔记本之前,请创建 Kinesis 数据流 (ExampleInputStream) 。您的应用程序使用此流作为应用程序源。

可以使用 Amazon Kinesis 控制台或以下 Amazon CLI 命令创建这些流。有关控制台说明,请参阅 Amazon Kinesis Data Streams 开发人员指南中的创建和更新数据流。为流命名ExampleInputStream并将打开的分片数设置为1

要使用 Amazon CLI创建流 (ExampleInputStream),请使用以下 Amazon Kinesis create-streamAmazon CLI 命令。

$ aws kinesis create-stream \ --stream-name ExampleInputStream \ --shard-count 1 \ --region us-east-1 \ --profile adminuser

创建一个 Amazon Glue 表

您的 Studio 笔记本使用Amazon Glue数据库来存储有关您的 Kinesis 数据流数据来源的元数据。

注意

您可以先手动创建数据库,也可以让 Managed Service for Apache Flink 在创建笔记本时为您创建数据库。同样,您可以按照本节所述手动创建表,也可以在 Apache Zeppelin 的笔记本中使用 Managed Service for Apache Flink 创建表连接器代码,通过 DDL 语句创建表。然后,您可以签入Amazon Glue以确保正确创建了此表。

创建表
  1. 登录 Amazon Web Services Management Console,然后打开 Amazon Glue 控制台,网址为:https://console.aws.amazon.com/glue/

  2. 如果您还没有Amazon Glue数据库,请从左侧导航栏中选择 “数据库”。选择 添加数据库。在“添加数据库” 窗口中,输入 default数据库名称”。选择 创建

  3. 在左侧导航栏中,选择 。在 “” 页中,选择 “添加表”,“手动添加表”。

  4. 设置表的属性页面中,输入stock表格名称。请务必选择之前创建的数据库。选择 下一步

  5. 添加数据存储页面中,选择 Kinesis。对于直播名称,请输入ExampleInputStream。对于 Kinesis 来源网址,请选择 Enter。https://kinesis.us-east-1.amazonaws.com如果您复制并粘贴 Kinesis 源网址,请务必删除所有前导或尾随空格。选择 下一步

  6. 分类页面中,选择 JSON。选择 下一步

  7. 定义架构页面中,选择 Add Column 以添加列。添加具有以下属性的列:

    列名称 数据类型
    自动收报机 字符串
    price double

    选择 下一步

  8. 在下一页上,验证您的设置,然后选择完成

  9. 从表列表中选择新创建的表。

  10. 选择 “编辑表”,然后添加包含键managed-flink.proctime和值的属性proctime

  11. 选择应用

使用 Kinesis Data Streams 创建 Studio 笔记本

现在,您已经创建了应用程序使用的资源,接下来就可以创建自己的 Studio 笔记本了。

要创建应用程序,您可以使用Amazon Web Services Management Console或Amazon CLI。

使用Amazon Web Services Management Console创建 Studio 笔记本

  1. 打开 Managed Service for Apache Flink 控制台,网址为 https://console.aws.amazon.com/managed-flink/home?region=us-east-1#/applications/dashboard

  2. Managed Service for Apache Flink 应用程序页面中,选择 Studio 选项卡。选择创建 Studio 笔记本

    注意

    您也可以从 Amazon MSK 或 Kinesis Data Streams 控制台创建 Studio 笔记本,方法是选择输入的 Amazon MSK 集群或 Kinesis 数据流,然后选择 “实时处理数据”。

  3. 创建笔记本实例页面上,提供以下信息:

    • 输入笔记本MyNotebook的名称。

    • 为 Glue 数据库Amazon选择默认值

    选择创建 Studio 笔记本

  4. MyNotebook页面中,选择 “运行”。等待“状态”显示为“正在运行”。笔记本电脑运行时会产生费用。

使用Amazon CLI创建 Studio 笔记本

要使用创建 Studio 笔记本Amazon CLI,请执行以下操作:

  1. 验证账户 ID。创建应用程序时,您需要用到此值。

  2. 创建角色arn:aws:iam::AccountID:role/ZeppelinRole并通过控制台向自动创建的角色添加以下权限。

    "kinesis:GetShardIterator",

    "kinesis:GetRecords",

    "kinesis:ListShards"

  3. 创建以下内容的名为 create.json 的文件。确保将占位符值替换为您自己的信息。

    { "ApplicationName": "MyNotebook", "RuntimeEnvironment": "ZEPPELIN-FLINK-3_0", "ApplicationMode": "INTERACTIVE", "ServiceExecutionRole": "arn:aws:iam::AccountID:role/ZeppelinRole", "ApplicationConfiguration": { "ApplicationSnapshotConfiguration": { "SnapshotsEnabled": false }, "ZeppelinApplicationConfiguration": { "CatalogConfiguration": { "GlueDataCatalogConfiguration": { "DatabaseARN": "arn:aws:glue:us-east-1:AccountID:database/default" } } } } }
  4. 要创建应用程序,请运行以下命令:

    aws kinesisanalyticsv2 create-application --cli-input-json file://create.json
  5. 命令完成后,您会看到显示新 Studio 笔记本详细信息的输出。下面是输出的一个示例。

    { "ApplicationDetail": { "ApplicationARN": "arn:aws:kinesisanalyticsus-east-1:012345678901:application/MyNotebook", "ApplicationName": "MyNotebook", "RuntimeEnvironment": "ZEPPELIN-FLINK-3_0", "ApplicationMode": "INTERACTIVE", "ServiceExecutionRole": "arn:aws:iam::012345678901:role/ZeppelinRole", ...
  6. 要开始应用程序,请运行以下命令。请将占位符值替换为账户 ID。

    aws kinesisanalyticsv2 start-application --application-arn arn:aws:kinesisanalyticsus-east-1:012345678901:application/MyNotebook\

将数据发送到您的 Kinesis 数据流

要将测试数据发送到您的 Kinesis 数据流,请执行以下操作:

  1. 打开 Kinesis Data Generator (KDG)

  2. 选择使用创建 Cognito 用户。 CloudFormation

  3. Amazon CloudFormation控制台随即打开 Kinesis 数据生成器模板。选择 下一步

  4. 指定堆栈详细信息页面上,输入 Cognito 用户的用户名和密码。选择 下一步

  5. 配置堆栈选项 页面上,请选择 下一步

  6. 在 Revie w Kinesis-Data-Generator-Cognito-User 页面中,选择 “我确认可能会创建 IAM 资源”。Amazon CloudFormation 复选框。选择创建堆栈

  7. 等待 Amazon CloudFormation 堆栈完成创建。堆栈完成后,在控制台中打开 Kinesis-Data-Generator-Cognito-User 堆栈,然后选择输出Amazon CloudFormation选项卡。打开列出的KinesisDataGeneratorUrl输出值的 URL。

  8. Amazon Kinesis 数据生成器页面中,使用您在步骤 4 中创建的凭证登录。

  9. 在下一页,提供以下值:

    区域 us-east-1
    流/Kinesis Data Firehose 流 ExampleInputStream
    每秒记录数 1

    对于 “记录模板”,粘贴以下代码:

    { "ticker": "{{random.arrayElement( ["AMZN","MSFT","GOOG"] )}}", "price": {{random.number( { "min":10, "max":150 } )}} }
  10. 选择 “发送数据”。

  11. 生成器会将数据发送到 Kinesis 数据流。

    在完成下一部分的同时,让发电机继续运行。

测试您的 Studio 笔记本

在本节中,您将使用 Studio 笔记本来查询 Kinesis 数据流中的数据。

  1. 打开 Managed Service for Apache Flink 控制台,网址为 https://console.aws.amazon.com/managed-flink/home?region=us-east-1#/applications/dashboard

  2. Managed Service for Apache Flink 应用程序页面上,选择 Studio 笔记本选项卡。选择MyNotebook

  3. MyNotebook页面中,选择 “在 Apache 齐柏林飞艇中打开”。

    Apache Zeppelin 接口会在新选项卡中打开。

  4. 在《欢迎来到齐柏林飞艇》中! 页面上,选择齐柏林飞艇笔记

  5. Zeppelin Note 页面中,在新笔记中输入以下查询:

    %flink.ssql(type=update) select * from stock

    选择运行图标。

    片刻之后,注释将显示来自 Kinesis 数据流的数据。

要打开应用程序的 Apache Flink 控制面板以查看操作方面,请选择 FLINK JOB。有关 Flink 控制面板的更多信息,请参阅《Managed Service for Apache Flink 开发者指南》中的 Apache Flink 控制面板。

有关 Flink Streaming SQL 查询的更多示例,请参阅 Apache Fl ink 文档中的查询