使用 StarRocks Pipe 进行流式加载
Pipe 的优势
Pipe 非常适合连续数据加载和大规模数据加载
-
微批量的大规模数据加载有助于降低因数据错误而导致的重试成本。
借助 Pipe,StarRocks 能够高效加载大量数据文件,总数据量巨大。 Pipe 根据文件的数量或大小自动拆分文件,将加载作业分解为更小的顺序任务。 这种方法确保一个文件中的错误不会影响整个加载作业。 Pipe 会记录每个文件的加载状态,方便您轻松识别和修复包含错误的文件。 通过最大限度地减少因数据错误而需要重试的次数,这种方法有助于降低成本。
-
连续数据加载有助于减少人力。
Pipe 帮助您将新的或更新的数据文件写入特定位置,并不断地将这些文件中的新数据加载到 StarRocks 中。 在您创建指定了
"AUTO_INGEST" = "TRUE"
的 Pipe 作业后,它将不断监控存储在指定路径中的数据文件的更改,并自动将数据文件中的新数据或更新的数据加载到目标 StarRocks 表中。
此外,Pipe 执行文件唯一性检查以帮助防止重复数据加载。在加载过程中,Pipe 根据文件名和摘要检查每个数据文件的唯一性。 如果具有特定文件名和摘要的文件已被 Pipe 作业处理过,则 Pipe 作业将跳过所有后续具有相同文件名和摘要的文件。 请注意像 AWS S3 这样的对象存储使用 ETag 作为文件摘要,而 HDFS 使用 LastModifiedTime作为文件摘要。
每个数据文件的加载状态都会被记录并保存到 information_schema.pipe_files
视图中。在删除与该视图关联的 Pipe 作业后,有关在该作业中加载的文件的记录也将被删除。
数据流
📄️ HDFS
使用从 HDFS 加载的 Pipe 示例
📄️ S3
从 S3 加载的 Pipe 示例