ConsumeKinesisStream Processor
描述
从指定的 AWS Kinesis 流读取数据,并为每个处理的记录(原始)输出一个 FlowFile,或者如果配置了记录读取器和记录写入器,则输出一批处理记录的 FlowFile。
标签
属性
| 名称 | 默认值 | 可选值 | 描述 |
|---|---|---|---|
| Amazon Kinesis Stream Name | | Kinesis 流的名称 | |
| Application Name | | Kinesis 流读取器应用程序名称。 | |
| Record Reader | | 控制器服务 API:RecordReaderFactorycn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8 | 用于读取接收消息的 Record Reader。可以通过表达式语言 '${kinesis.name}' 引用 Kinesis 流名称来访问 Schema。如果未指定 Record Reader/Writer,则每条 Kinesis 记录将创建一个 FlowFile。 |
| Record Writer | | 控制器服务 API:RecordSetWriterFactorycn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8 | 用于将记录序列化到输出 FlowFile 的 Record Writer。可以通过表达式语言 '${kinesis.name}' 引用 Kinesis 流名称来访问 Schema。如果未指定 Record Reader/Writer,则每条 Kinesis 记录将创建一个 FlowFile。 |
| Output Strategy | USE_VALUE |
| 用于将 Kinesis 记录输出到 FlowFile 记录的格式。 |
| FlowFile Handling On Schema Difference | CREATE_FLOW_FILE |
| 当 Kinesis Stream 中的记录在单个批次中更改其架构时使用的策略。 |
| Region | us-west-2 |
| 服务所在的 AWS 区域 |
| Custom Region | | 自定义区域,例如 AWS 兼容服务提供商的区域 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Endpoint Override URL | | 用于替代 AWS 默认端点的端点 URL,包括协议、主机、端口和路径。AWS 库根据 AWS 区域选择端点 URL,但此属性会覆盖所选端点 URL,允许与其他 S3 兼容端点一起使用。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| DynamoDB Override | | DynamoDB 覆盖以使用非 AWS 部署 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Initial Stream Position | LATEST |
| 读取 Kinesis 流的初始位置。 |
| 流位置时间戳 | | 开始读取 Kinesis 记录的流中时间戳位置。如果读取 Kinesis 流的初始位置。为AT_TIMESTAMP,则此项为必填。使用时间戳格式将值解析为日期。 | |
| 时间戳格式 | yyyy-MM-dd HH:mm:ss | 用于将流位置时间戳解析为日期并将 Kinesis 记录的近似到达时间戳转换为 FlowFile 属性的格式。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Failover Timeout | 30 secs | Kinesis 客户端库故障转移超时 | |
| Graceful Shutdown Timeout | 20 secs | Kinesis 客户端库正常关闭超时 | |
| Checkpoint Interval | 3 secs | Kinesis 检查点之间的间隔 | |
| Retry Count | 10 | 重试 Kinesis 操作的次数(进程记录、检查点、关闭) | |
| Retry Wait | 1 sec | Kinesis 操作重试之间的间隔(进程记录、检查点、关闭) | |
| Report Metrics to CloudWatch | false |
| 是否向 CloudWatch 报告 Kinesis 使用指标。 |
| Communications Timeout | 30 secs | ||
| AWS Credentials Provider Service | | 控制器服务 API:AwsCredentialsProviderServicecn.org.acal.lynxus-lynxus-aws-service-api-nar-2.11.8 | 用于获取AWS凭证提供者的Controller Service |
| Proxy Configuration Service | | 控制器服务 API:ProxyConfigurationServicecn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8 | 指定代理配置 Controller Service 来代理网络请求。 |
动态属性
| 名称 | 值 | 描述 |
|---|---|---|
| Kinesis Client Library (KCL) 配置属性名称 | 要在 KCL 配置属性中设置的值 | 使用必需值覆盖默认 KCL 配置 ConfigsBuilder 属性。支持直接在 ConfigsBuilder 上设置值(如 'namespace'),以及嵌套构建器上的属性。例如,要设置 configsBuilder.retrievalConfig().maxListShardsRetryAttempts(value),将属性命名为 'retrievalConfig.maxListShardsRetryAttempts'。仅支持设置简单属性值,如 String、int、long 和 boolean。不允许覆盖由非动态处理器属性处理的 KCL 配置设置。 |
关系 (Relationships)
| 名称 | 描述 | 自动终止 |
|---|---|---|
success | FlowFiles被路由到成功关系 | 否 |
写入的 FlowFile 属性
| 名称 | 描述 |
|---|---|
aws.kinesis.partition.key | 从分片读取的(最后一个)Kinesis 记录的分区键 |
aws.kinesis.shard.id | 从中读取 Kinesis 记录的分片 ID |
aws.kinesis.sequence.number | 其分片中(最后一个)Kinesis 记录的唯一标识符 |
aws.kinesis.approximate.arrival.timestamp | 从流中读取的(最后一个)Kinesis Record 的大致到达时间戳 |
mime.type | 将 mime.type 属性设置为Record Writer指定的 MIME 类型(如果已配置) |
record.count | 由Record Writer写入FlowFile的记录数(如果配置) |
record.error.message | 此属性在失败时提供Record Reader或Record Writer遇到的错误消息(如果已配置) |
状态管理
该组件不存储状态。
受限 (Restricted)
该组件不受限。
输入要求
该组件不允许有传入连接。
系统资源考量
| 资源 | 描述 |
|---|---|
| CPU | Kinesis Client Library 用于创建 Worker 线程以消费 Kinesis 记录。Worker 在此处理器被触发时初始化并启动。它持续运行,根据需要生成 Kinesis Record Processor 来获取 Kinesis 记录。Worker 线程(及任何子 Record Processor 线程)不受 Lynxus 常规调度器作为并发线程池的一部分控制,并且在此处理器停止之前不会释放。 |
| NETWORK | Kinesis Client Library 将持续轮询新记录,每次调用最多请求最大数量的记录/字节。这可能导致持续的网络使用。 |
另请参阅
详细说明
ConsumeKinesisStream
流式处理与批处理
ConsumeKinesisStream 会获取所配置 Kinesis Stream 中遇到的所有 Kinesis Record。常见的用例大致分为两类。
逐消息用例
默认情况下,该 Processor 会为 Stream 中的每条 Kinesis Record(消息) 创建一个独立的 FlowFile,并添加 shard id、sequence number 等 Attribute。
逐批次用例
另一个常见用例是希望把从 Stream 获取的所有 Kinesis Record 作为单个 FlowFile 按批处理。
ConsumeKinesisStream Processor 可以可选地配置 Record Reader 和 Record Writer。配置后,只会创建单个 FlowFile,其中为 Kinesis Record (消息)批次内的每条 Record 包含一条记录,而不是每条 Kinesis Record 一个 FlowFile。
此模式下输出的 FlowFile 会包含标准的 record.* Attribute,以及相同的
Kinesis Shard ID、Sequence Number 和 Approximate Arrival Timestamp;
但这些值对应的是构成该 FlowFile 内容的消息批次中最后一条被处理的
Kinesis Record。
设置 Record Writer 后,Output Strategy 可以设为 Use Wrapper 或
Use Content。选择 Use Wrapper 时,Kinesis Record 的原始内容会被
包裹在 value 键下,并额外填充 metadata 键,其中包含 Stream Name、
Shard ID、Partition Key、Sequence Number、Sub Sequence Number、
Approximate Arrival Timestamp,以及由 Sequence 和 Sub Sequence Number
拼接而成的 Sharded Sequence Number,便于通过单次比较确定记录顺序。
选择 Use Content 时,Kinesis Record 的原始内容会原样使用。