DiscoverInputSchema - 适用于 SQL 应用程序的 Amazon Kinesis Data Analytics 开发人员指南
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

对于新项目,建议您使用新的适用于 Apache Flink Studio 的托管服务,而不是使用适用于 SQL 应用程序的 Kinesis Data Analytics。Managed Service for Apache Flink Studio 不仅操作简单,还具有高级分析功能,使您能够在几分钟内构建复杂的流处理应用程序。

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

DiscoverInputSchema

注意

本文档适用于 Amazon Kinesis Data Analytics API 版本 1,该版本仅支持 SQL 应用程序。版本 2 的 API 支持 SQL 和 Java 应用程序。有关版本 2 的更多信息,请参阅 Amazon Kinesis Data Analytics API V2 文档

通过评估指定流式传输源 (Amazon Kinesis 流或 Amazon Kinesis Firehose 传输流) 或 S3 对象上的示例记录,推断架构。在响应中,该操作返回推断的架构以及该操作用于推断架构的示例记录。

在为应用程序配置流式传输来源时,您可以使用此推断的架构。有关概念信息,请参阅配置应用程序输入。注意:使用 Amazon Kinesis Analytics 控制台创建应用程序时,控制台使用此操作来推断架构并将其显示在控制台用户界面中。

此操作需要执行 kinesisanalytics:DiscoverInputSchema 操作的权限。

请求语法

{ "InputProcessingConfiguration": { "InputLambdaProcessor": { "ResourceARN": "string", "RoleARN": "string" } }, "InputStartingPositionConfiguration": { "InputStartingPosition": "string" }, "ResourceARN": "string", "RoleARN": "string", "S3Configuration": { "BucketARN": "string", "FileKey": "string", "RoleARN": "string" } }

请求参数

请求接受采用 JSON 格式的以下数据。

InputProcessingConfiguration

InputProcessingConfiguration 用于在发现记录架构之前对记录进行预处理。

类型:InputProcessingConfiguration 对象

必需:否

InputStartingPositionConfiguration

您希望 Amazon Kinesis Analytics 根据指定流式传输源发现目的开始读取记录的时刻。

类型:InputStartingPositionConfiguration 对象

必需:否

ResourceARN

流式传输来源的 Amazon 资源名称(ARN)。

类型:字符串

长度限制:最小长度为 0。最大长度为 2048。

模式:arn:.*

必需:否

RoleARN

可由 Amazon Kinesis Analytics 代入以代表您访问流的 IAM 角色的 ARN。

类型:字符串

长度限制:最小长度为 0。最大长度为 2048。

模式:arn:.*

必需:否

S3Configuration

指定此参数可从 Amazon S3 对象中的数据发现架构。

类型:S3Configuration 对象

必需:否

响应语法

{ "InputSchema": { "RecordColumns": [ { "Mapping": "string", "Name": "string", "SqlType": "string" } ], "RecordEncoding": "string", "RecordFormat": { "MappingParameters": { "CSVMappingParameters": { "RecordColumnDelimiter": "string", "RecordRowDelimiter": "string" }, "JSONMappingParameters": { "RecordRowPath": "string" } }, "RecordFormatType": "string" } }, "ParsedInputRecords": [ [ "string" ] ], "ProcessedInputRecords": [ "string" ], "RawInputRecords": [ "string" ] }

响应元素

如果此操作成功,则该服务将会发送回 HTTP 200 响应。

服务以 JSON 格式返回以下数据。

InputSchema

从流式传输来源推断出的架构。它识别流式传输来源中数据的格式,以及每个数据元素如何映射到在应用程序内部流中创建的相应列。

类型:SourceSchema 对象

ParsedInputRecords

一个元素数组,其中每个元素对应于流记录中的一行(流记录可以有多行)。

类型:字符串数组的数组。

ProcessedInputRecords

InputProcessingConfiguration 参数中指定的处理器修改的流数据。

类型:字符串数组

RawInputRecords

为推断架构而采样的原始流数据。

类型:字符串数组

错误

InvalidArgumentException

指定的输入参数值无效。

HTTP 状态代码:400

ResourceProvisionedThroughputExceededException

由于 Amazon Kinesis Streams ProvisionedThroughputExceededException,Discovery 未能从流式传输源获得记录。有关更多信息,请参阅《Amazon Kinesis Streams API 参考》中的 GetRecords

HTTP 状态代码:400

ServiceUnavailableException

该服务不可用。退后一步,重试该操作。

HTTP 状态代码:500

UnableToDetectSchemaException

数据格式无效。Amazon Kinesis Analytics 无法检测给定流式传输源的架构。

HTTP 状态代码:400

UnsupportedOperationException

请求被拒绝,因为不支持指定的参数或指定的资源对此操作无效。

HTTP 状态代码:400

另请参阅

有关在特定语言的 Amazon SDK 中使用此 API 的更多信息,请参阅以下内容: