针对静态数据使用架构发现功能 - Amazon Kinesis Data Analytics 开发人员指南
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

针对静态数据使用架构发现功能

架构发现功能可根据流中的数据或存储于 Amazon S3 存储桶中的静态文件数据生成架构。假设您要为 Kinesis Data Analytics Analytics 应用程序生成架构以进行引用,或者实时流数据不可用。您可以对包含示例数据 (采用流或引用数据的预期格式) 的静态文件使用架构发现功能。Kinesis Data Analytics 可针对 Amazon S3 存储桶中所存的 JSON 或 CSV 文件中的示例数据运行架构发现。要针对数据文件使用架构发现功能,需使用控制台或指定了 DiscoverInputSchema 参数的 S3Configuration API。

使用控制台运行架构发现

要使用控制台对静态文件运行发现功能,请执行以下操作:

  1. 向 S3 存储桶添加引用数据对象。

  2. 选择Connect 参考数据应用程序的 Kinesis Data Analytics 控制台的主页面中。

  3. 提供存储桶、路径和 IAM 角色数据以访问包含引用数据的 Amazon S3 对象。

  4. 选择 Discover schema (发现架构)

有关如何在控制台中添加引用数据和发现架构的更多信息,请参阅例如:为 Kinesis Data Analytics 应用程序添加引用数据

使用 API 运行架构发现

要使用 API 针对静态文件运行发现,您需要为 API 提供具有以下信息的 S3Configuration 结构:

要使用 Amazon S3 对象根据 Amazon S3 对象生成架构,请使用DiscoverInputSchemaAPI

  1. 确保您设置了 Amazon CLI。有关更多信息,请参阅“入门”部分中的第 2 步:设置 Amazon Command Line Interface (Amazon CLI)

  2. 使用以下内容创建名为 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
  3. 通过以下网址登录 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  4. 创建 Amazon S3 存储桶,并将data.csv文件。请记下所创建存储桶的 ARN。有关创建 Amazon S3 存储桶和上传文件的信息,请参阅Amazon Simple Storage Service 入门

  5. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/。创建具有 AmazonS3ReadOnlyAccess 策略的角色。记下新角色的 ARN。有关创建角色的信息,请参阅创建向 Amazon 服务委派权限的角色。有关如何将策略添加到角色的信息,请参阅修改角色

  6. 运行以下命令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" }'
  7. 该响应应该类似于下列内容:

    { "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" ] ] }