StarRocks Pipe でのストリーム
Pipe の利点
Pipe は、継続的なデータロードと大規模なデータロードに最適です。
-
マイクロバッチによる大規模なデータロードは、データエラーによる再試行のコストを削減するのに役立ちます。
Pipe を利用することで、StarRocks は大量のデータファイルを効率的にロードできます。Pipe はファイルをその数やサイズに基づいて自動的に分割し、ロードジョブをより小さく、順次のタスクに分解します。このアプローチにより、1 つのファイルのエラーが全体のロードジョブに影響を与えないようにします。各ファイルのロードステータスは Pipe によって記録され、エラーを含むファイルを簡単に特定し修正できます。データエラーによる再試行の必要性を最小限に抑えることで、このアプローチはコスト削減に役立ちます。
-
継続的なデータロードは、人手を削減するのに役立ちます。
Pipe は、新しいまたは更新されたデータファイルを特定の場所に書き込み、これらのファイルから新しいデータを StarRocks に継続的にロードするのを助けます。
"AUTO_INGEST" = "TRUE"
を指定して Pipe ジョブを作成すると、指定されたパスに保存されたデータファイルの変更を常に監視し、データファイルから新しいまたは更新されたデータを自動的に宛先の StarRocks テーブルにロードします。
さらに、Pipe はファイルの一意性チェックを行い、重複したデータロードを防ぐのに役立ちます。ロードプロセス中、Pipe はファイル名とダイジェストに基づいて各データファイルの一意性をチェックします。特定のファイル名とダイジェストを持つファイルがすでに Pipe ジョブによって処理されている場合、その Pipe ジョブは同じファイル名とダイジェストを持つすべての後続ファイルをスキップします。 オブジェクトストレージ like AWS S3 uses ETag as file digest, and HDFS uses LastModifiedTime をファイルダイジェストとして注意してください。
各データファイルのロードステータスは information_schema.pipe_files
ビューに記録され保存されます。このビューに関連付けられた Pipe ジョブが削除されると、そのジョブでロードされたファイルに関する記録も削除されます。
データフロー
📄️ HDFS Load
HDFS からのロードを使用したパイプの例
📄️ S3 Load
S3 からのパイプ例 ロード