本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
针对静态数据使用架构发现功能
架构发现功能可根据流中的数据或存储于 Amazon S3 存储桶中的静态文件数据生成架构。假设您要为 Kinesis Data Analytics 应用程序生成架构以进行引用,或者实时流数据不可用。您可以对包含示例数据 (采用流或引用数据的预期格式) 的静态文件使用架构发现功能。Kinesis Data Analytics 可针对 Amazon S3 存储桶中所存的 JSON 或 CSV 文件中的示例数据运行架构发现。要针对数据文件使用架构发现功能,需使用控制台或指定了 DiscoverInputSchema 参数的 S3Configuration API。
使用控制台运行架构发现
要使用控制台对静态文件运行发现功能,请执行以下操作:
向 S3 存储桶添加引用数据对象。
选择Connect 参考数据在 Kinesis Data Analytics 控制台的应用程序主页面中。
提供存储桶、路径和 IAM 角色数据以访问包含引用数据的 Amazon S3 对象。
选择 Discover schema (发现架构)。
有关如何在控制台中添加引用数据和发现架构的更多信息,请参阅例如:将引用数据添加到 Kinesis data Analytics 应用程序。
使用 API 运行架构发现
要使用 API 针对静态文件运行发现,您需要为 API 提供具有以下信息的 S3Configuration 结构:
-
BucketARN:包含该文件的 Amazon S3 存储桶的 Amazon 资源名称 (ARN)。有关 Amazon S3 存储桶 ARN 的格式,请参阅Amazon 资源名称 (ARN) 和 Amazon Service 命名空间:Amazon Simple Storage Service (Amazon S3). -
RoleARNIAM 角色的 ARNAmazonS3ReadOnlyAccess政策。有关如何将策略添加到角色的信息,请参阅修改角色。 -
FileKey:对象的文件名称。
要使用 Amazon S3 对象生成架构DiscoverInputSchemaAPI
-
确保您设置了 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 -
通过以下网址登录 Amazon S3 控制台https://console.aws.amazon.com/s3/
. -
创建 Amazon S3 存储桶并上载
data.csv你创建的文件。请记下所创建存储桶的 ARN。有关创建 Amazon S3 存储桶和上传文件的信息,请参阅。开始使用 Amazon Simple Storage Service. -
通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。创建具有 AmazonS3ReadOnlyAccess策略的角色。记下新角色的 ARN。有关创建角色的信息,请参阅创建向 Amazon Service 委派权限的角色. 有关如何将策略添加到角色的信息,请参阅修改角色。 -
运行以下命令
DiscoverInputSchema中的命令Amazon CLI,替换您的 Amazon S3 存储桶和 IAM 角色的 ARN:$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" ] ] }