跳到主要内容

导入概览

Apache Doris 提供了多种导入和集成数据的方法,您可以使用合适的导入方式从各种源将数据导入到数据库中。Apache Doris 提供的数据导入方式可以分为四类:

  • 实时写入:应用程序通过 HTTP 或者 JDBC 实时写入数据到 Doris 表中,适用于需要实时分析和查询的场景。

    • 极少量数据(5 分钟一次)时可以使用 JDBC INSERT 写入数据。

    • 并发较高或者频次较高(大于 20 并发或者 1 分钟写入多次)时建议打开 Group Commit,使用 JDBC INSERT 或者 Stream Load 写入数据。

    • 吞吐较高时推荐使用 Stream Load 通过 HTTP 写入数据。

  • 流式同步:通过实时数据流(如 Flink、Kafka、事务数据库)将数据实时导入到 Doris 表中,适用于需要实时分析和查询的场景。

    • 可以使用 Flink Doris Connector 将 Flink 的实时数据流写入到 Doris 表中。

    • 可以使用 Routine Load 或者 Doris Kafka Connector 将 Kafka 的实时数据流写入到 Doris 表中。Routine Load 方式下,Doris 会调度任务将 Kafka 中的数据拉取并写入 Doris 中,目前支持 csv 和 json 格式的数据。Kafka Connector 方式下,由 Kafka 将数据写入到 Doris 中,支持 avro、json、csv、protobuf 格式的数据。

    • 可以使用 Flink CDC Datax 将事务数据库的 CDC 数据流写入到 Doris 中。

  • 批量导入:将数据从外部存储系统(如 S3、HDFS、本地文件、NAS)批量加载到 Doris 表中,适用于非实时数据导入的需求。

  • 外部数据源集成:通过与外部数据源(如 Hive、JDBC、Iceberg 等)的集成,实现对外部数据的查询和部分数据导入到 Doris 表中。

    • 可以创建 Catalog 读取外部数据源中的数据,使用 INSERT INTO SELECT 将外部数据源中的数据同步写入到 Doris 中,配合 JOB 可以异步写入。

    • 可以使用 X2Doris 将其他 AP 系统的数据迁移到 Doris 中。

Doris 的每个导入默认都是一个隐式事务,事务相关的更多信息请参考事务

导入方式快速浏览

Doris 的导入主要涉及数据源、数据格式、导入方式、错误数据处理、数据转换、事务多个方面。您可以在如下表格中快速浏览各导入方式适合的场景和支持的文件格式。

导入方式使用场景支持的文件格式单次导入数据量导入模式
Stream Load导入本地文件或者应用程序写入csv、json、parquet、orc小于10GB同步
Broker Load从对象存储、HDFS等导入csv、json、parquet、orc数十GB到数百 GB异步
INSERT INTO VALUES通过JDBC等接口导入SQL简单测试用同步
INSERT INTO SELECT可以导入外部表或者对象存储、HDFS中的文件SQL根据内存大小而定同步
Routine Load从kakfa实时导入csv、json微批导入 MB 到 GB异步
MySQL Load从本地数据导入csv小于10GB同步
Group Commit高频小批量导入根据使用的导入方式而定微批导入KB-