对于新项目,我们建议您使用新的 Kinesis Data Analytics 工作室,而不是 SQL 应用程序的 Kinesis Data Analytics。Kinesis Data Analytics Studio 将易用性与高级分析功能相结合,使您能够在几分钟内构建复杂的流处理应用程序。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
针对静态数据使用架构发现功能
架构发现功能可以根据流中的数据或存储在 Amazon S3 存储桶中的静态文件中的数据生成架构。假设您想要为 Kinesis Data Analytics 应用程序生成架构以供参考或在直播数据不可用时使用。您可以对包含流式数据或参考数据预期格式的数据样本的静态文件使用架构发现功能。Kinesis Data Analytics 可以对存储在 Amazon S3 存储桶中的 JSON 或 CSV 文件中的示例数据运行架构发现。要针对数据文件使用架构发现功能,需使用控制台或指定了 DiscoverInputSchema 参数的 S3Configuration
API。
使用控制台运行架构发现
要使用控制台对静态文件运行发现功能,请执行以下操作:
向 S3 存储桶添加引用数据对象。
在 Kinesis Data Analytics 控制台的应用程序主页中选择 “Connect 参考数据”。
提供存储桶、路径和 IAM 角色数据,用于访问包含参考数据的 Amazon S3 对象。
选择 Discover schema (发现架构)。
有关如何在控制台中添加引用数据和发现架构的更多信息,请参阅示例:向 Kinesis Data Analytics 应用程序添加参考数据。
使用 API 运行架构发现
要使用 API 针对静态文件运行发现,您需要为 API 提供具有以下信息的 S3Configuration
结构:
-
BucketARN
:包含该文件的 Amazon S3 存储桶的 Amazon 资源名称(ARN)。有关 Amazon S3 存储桶 ARN 的格式,请参阅 Amazon 资源名称(ARN)和Amazon Service Simple Storage Service (Amazon S3)。 -
RoleARN
:包含AmazonS3ReadOnlyAccess
策略的 IAM 角色的 ARN。有关如何将策略添加到角色的信息,请参阅修改角色。 -
FileKey
:对象的文件名称。
使用DiscoverInputSchema
API 从 Amazon S3 对象生成架构
-
确保您设置了 Amazon CLI。有关更多信息,请参阅“入门”部分中的步骤 2:设置 Amazon Command Line Interface (Amazon CLI)。
-
使用以下内容创建名为
data.csv
的文件:year,month,state,producer_type,energy_source,units,consumption 2001,1,AK,TotalElectricPowerIndustry,Coal,ShortTons,47615 2001,1,AK,ElectricGeneratorsElectricUtilities,Coal,ShortTons,16535 2001,1,AK,CombinedHeatandPowerElectricPower,Coal,ShortTons,22890 2001,1,AL,TotalElectricPowerIndustry,Coal,ShortTons,3020601 2001,1,AL,ElectricGeneratorsElectricUtilities,Coal,ShortTons,2987681
-
通过 https://console.aws.amazon.com/s3/
登录到 Amazon S3 控制台。 -
创建 Amazon S3 存储桶并上载您创建的
data.csv
文件。请记下所创建存储桶的 ARN。有关创建 Amazon S3 存储桶并上载文件的信息,请参阅 Ama zon Simple Storage Service 入门。 -
通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。创建具有 AmazonS3ReadOnlyAccess
策略的角色。记下新角色的 ARN。有关创建 Amazon Service(Amazon)创建向 Amazon Service 委派权限的角色。有关如何将策略添加到角色的信息,请参阅修改角色。 -
在中运行以下
DiscoverInputSchema
命令Amazon CLI,将 ARN 替换为您的 Amazon S3 存储桶和 IAM 角色:$aws kinesisanalytics discover-input-schema --s3-configuration '{ "RoleARN": "arn:aws:iam::123456789012:role/service-role/your-IAM-role", "BucketARN": "arn:aws:s3:::your-bucket-name", "FileKey": "data.csv" }'
-
该响应应该类似于下列内容:
{ "InputSchema": { "RecordEncoding": "UTF-8", "RecordColumns": [ { "SqlType": "INTEGER", "Name": "COL_year" }, { "SqlType": "INTEGER", "Name": "COL_month" }, { "SqlType": "VARCHAR(4)", "Name": "state" }, { "SqlType": "VARCHAR(64)", "Name": "producer_type" }, { "SqlType": "VARCHAR(4)", "Name": "energy_source" }, { "SqlType": "VARCHAR(16)", "Name": "units" }, { "SqlType": "INTEGER", "Name": "consumption" } ], "RecordFormat": { "RecordFormatType": "CSV", "MappingParameters": { "CSVMappingParameters": { "RecordRowDelimiter": "\r\n", "RecordColumnDelimiter": "," } } } }, "RawInputRecords": [ "year,month,state,producer_type,energy_source,units,consumption\r\n2001,1,AK,TotalElectricPowerIndustry,Coal,ShortTons,47615\r\n2001,1,AK,ElectricGeneratorsElectricUtilities,Coal,ShortTons,16535\r\n2001,1,AK,CombinedHeatandPowerElectricPower,Coal,ShortTons,22890\r\n2001,1,AL,TotalElectricPowerIndustry,Coal,ShortTons,3020601\r\n2001,1,AL,ElectricGeneratorsElectricUtilities,Coal,ShortTons,2987681" ], "ParsedInputRecords": [ [ null, null, "state", "producer_type", "energy_source", "units", null ], [ "2001", "1", "AK", "TotalElectricPowerIndustry", "Coal", "ShortTons", "47615" ], [ "2001", "1", "AK", "ElectricGeneratorsElectricUtilities", "Coal", "ShortTons", "16535" ], [ "2001", "1", "AK", "CombinedHeatandPowerElectricPower", "Coal", "ShortTons", "22890" ], [ "2001", "1", "AL", "TotalElectricPowerIndustry", "Coal", "ShortTons", "3020601" ], [ "2001", "1", "AL", "ElectricGeneratorsElectricUtilities", "Coal", "ShortTons", "2987681" ] ] }