Apache Doris 提供了多种数据导入方式,涵盖了实时写入、流式同步、批量导入以及外部数据源集成等场景。以下是几种常见的 Doris 数据加载方式:
-
Stream Load:通过 HTTP 协议同步写入本地文件或应用程序数据。适用于中小规模数据导入,支持 csv、json、parquet、orc 格式的数据文件。
-
Broker Load:通过 Broker 进程异步从外部存储系统(如 S3、HDFS)批量导入数据。这种方式支持的数据格式包括 csv、json、parquet、orc,并且可以处理数十GB到数百GB的数据量。
-
Routine Load:用于从 Kafka 等实时数据流中导入数据。Doris 会调度任务将 Kafka 中的数据拉取并写入,支持 csv、json 格式的数据。
-
INSERT INTO SELECT:通过 SQL 语句将数据从外部表或者对象存储、HDFS 中同步导入到 Doris 表中。
-
MySQL Load:通过 JDBC 接口从 MySQL 数据库导入数据。
-
Group Commit:针对高并发小批量数据写入的优化,使用 JDBC INSERT 或 Stream Load 写入数据。
-
外部数据源集成:通过创建 Catalog 读取外部数据源中的数据,并使用 INSERT INTO SELECT 将数据同步写入到 Doris 表中。
每种加载方式都有其适用场景和限制,例如 Stream Load 适合于小于10GB的同步导入,而 Broker Load 适合于数十GB到数百GB的异步导入。选择合适的加载方式可以有效提升数据导入的效率和稳定性。
此外,Doris 还提供了一些工具和连接器来简化数据加载流程,比如 Doris Streamloader,它支持并行加载、多文件及目录支持、路径遍历能力、故障恢复与连续性、智能重试机制等特点。