导入方案
数据导入是指将原始数据按照业务需求进行清洗、转换、并加载到 StarRocks 中的过程,从而可以在 StarRocks 系统中进行极速统一的数据分析。
StarRocks 提供以下各种导入方案供您选择:
- 导入方式:包括 Insert、Stream Load、Broker Load、Pipe、Routine Load、Spark Load。
- 生态工具:包括 StarRocks Connector for Apache Kafka®(简称 Kafka Connector)、StarRocks Connector for Apache Spark™(简称 Spark Connector)、StarRocks Connector for Apache Flink®(简称 Flink Connector)、以及其他工具(比如 SMT、DataX、CloudCanal、Kettle Connector)。
- API:Stream Load 事务接口。
每种导入方案都有其特定的优势,并且支持不同的数据源。
本文旨在对各种导入方案做一个总体介绍和详细对比,帮助您根据数据源、数据量、数据文件格式、以及导入频率等实际场景需要选择最适合您的导入方案。
导入方案介绍
这里主要介绍各种导入方案的特点及其适用场景。
备注
本文中,“batch”和“batch loading”指一次性、批量导入大量数据,“stream”和“streaming”指实时、持续地导入数据。
导入方式
Insert
适用场景:
- INSERT INTO VALUES:往内部表写入少量数据。
- INSERT INTO SELECT:
-
INSERT INTO SELECT FROM
<table_name>
:往目标表写入另外一张表(内部表或外部表)的查询结果。 -
INSERT INTO SELECT FROM FILES():往目标表写入远端存储的数据文件的查询结果。
备注该特性自 3.1 版本起支持 AWS S3 数据源,自 3.2 版本起支持 HDFS、Microsoft Azure Storage、Google GCS、及其他兼容 S3 协议的对象存储(如 MinIO)等数据源。
-
支持的文件格式:
- INSERT INTO VALUES:SQL
- INSERT INTO SELECT:
- INSERT INTO SELECT FROM
<table_name>
:StarRocks 表 - INSERT INTO SELECT FROM FILES():Parquet 和 ORC
- INSERT INTO SELECT FROM
单次导入数据量限制: 根据内存大小的不同而不同