# 连接到数据流

在 Qlik Open Lakehouse 项目中支持以下数据流服务。事件数据持续摄取，以确保下游数据集成、分析和 AI 的近乎实时可用性，从而实现反映最新操作活动的低延迟管道。

Apache Kafka 和 Amazon Kinesis 等数据流服务提供持久、高吞吐量的管道，用于捕获实时操作事件。与依赖批处理摄取的文件源不同，数据流源在事件生成时持续传输数据，从而实现近乎实时的处理，无需等待文件生成或调度。生产者发布保留其架构并支持分区的结构化或半结构化消息。同一记录的所有更新和删除都必须使用相同的分区键。Kafka 和 Kinesis 仅在单个分区或分片内（而非整个主题或数据流中）保证排序，因此使用一致的分区键可确保给定记录的更改按正确顺序处理。Qlik 还支持将 Amazon S3 作为数据流源，用于持续摄取事件数据。

#### 数据流式摄取与批量摄取

数据流和批处理数据源的区别如下：

* 对于这两种数据源，事件每分钟高效摄取，支持低延迟处理和近实时分析。

* 对于非数据流数据源，首先会进行现有数据的满负载，然后摄取更改。您还可以从数据源重新加载满负载数据。

* 对于数据流数据源，初始加载和后续事件之间没有明确的区别。Qlik 可以管理保留，并且还支持分区。

信息注释流式任务根据计算使用量（vCore x 运行时）而不是数据量计费。

在 Qlik Open Lakehouse 项目中，流式源只能与 流式登陆任务 和 流式转换任务 一起使用：

* 流式数据使用 流式登陆任务 摄取，流式登陆任务不处理离散文件，而是读取到达的事件，将数据登陆到 Amazon S3 中，并将事件持久化为 Avro 文件。这种方法保留了架构演变，支持结构体等复杂数据类型，并提供高效存储和优化的查询性能，同时保持连续摄取模型。

* 当您从数据流源载入数据时，系统会自动为每个将以 Iceberg 格式存储的数据集添加一个数据流转换任务。您可以选择使用数据流转换任务来标准化结构、丰富事件负载或使数据与下游消费模型保持一致。

* 通过镜像数据任务，可以将数据流源中的数据集镜像到云数据仓库，从而使下游系统能够消费数据流事件而无需复制数据。有关更多信息，请参阅[将数据镜像到云数据仓库](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/mirroring-data.htm)。

## 限制

以下限制适用于所有数据源：

* 如果您的文件类型不同，这可能发生在文件源自多个来源或版本时，则使用单个样本文件（例如，在入门期间）创建的转换任务不会自动考虑这些差异。

* 如果您更改登陆任务中的数据类型，例如因为您需要对数据进行哈希处理，请确保转换数据类型与新数据类型匹配。

## 支持的源

![](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/Data-connector-icons/amazon-kinesis-square_48x48.png)

### Amazon Kinesis

![](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/Data-connector-icons/amazon-s3-square_48x48.png)

### Amazon S3

![](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/Data-connector-icons/kafka-square.png)

### Apache Kafka