Doris Broker Load高并发导入

当遇到BrokerLoad导入效率低下的问题时,可能原因是并发度不足。为解决此问题,可以调整be.conf中的max_send_batch_parallelism_per_job、min_bytes_per_broker_scanner和load_parallelism参数,以及fe.conf中的max_broker_concurrency、async_pending_load_task_pool_size、async_loading_load_task_pool_size和load_checker_interval_second、default_load_parallelism等设置,以提升并行度和优化加载性能。

当发现Broker Load导入效率不高,很可能是并发度原因,可以尝试配置如下参数:
be.conf

max_send_batch_parallelism_per_job=50
broker laod任务:

min_bytes_per_broker_scanner=218
load_parallelism=50
send_batch_parallelism=50
fe.conf 中配置

max_broker_concurrency=100
async_pending_load_task_pool_size=50
async_loading_load_task_pool_size=20
load_checker_interval_second=1
default_load_parallelism=50

Apache Doris 提供了多种数据导入方法,以满足不同场景下的数据处理需求。这些方法包括从外部存储系统、本地文件、消息队列以及外部业务系统数据库导入数据。以下是 Doris 支持的主要数据导入方式及其特点: 1. **从外部存储系统导入** Doris 支持直接从 HDFS 或对象存储中导入数据,适用于大规模数据处理场景。例如,使用 Broker Load 可以从 HDFS 中导入 CSV 文件,同时支持 HDFS HA 模式,确保高可用性。 示例代码如下: ```sql LOAD LABEL test.broker_2 ( DATA INFILE("hdfs://test01:8020/student.csv") INTO TABLE `broker_test` COLUMNS TERMINATED BY "," FORMAT AS "csv" (id, name, age) ) WITH BROKER broker_name ( "dfs.nameservices" = "my_cluster", "dfs.ha.namenodes.my_cluster" = "nn1,nn2,nn3", "dfs.namenode.rpc-address.my_cluster.nn1" = "test01:8020", ... ) PROPERTIES ( "timeout" = "3600" ); ``` 该方法支持多种 CSV 格式参数,如行分隔符、列分隔符、包围符、转义符等,能够灵活处理不同格式的数据文件[^4]。 2. **从本地文件导入** 对于数据量较小或需要快速导入的场景,Doris 支持直接从本地文件中导入数据。这种方式通常通过 Stream Load 实现,适用于单次导入任务。 示例命令如下: ```bash curl --location-trusted -u root -H "label: demo_label" -H "column_separator:," -H "columns: id,name,age" -H "format: csv" -T data.csv http://doris_host:8030/api/demo_db/demo_table/_stream_load ``` 该方式支持 CSV 格式的多种参数配置,如压缩格式、跳过行数、裁剪双引号等[^5]。 3. **通过消息队列导入** Doris 支持通过 Kafka 等消息队列进行数据导入,适用于实时数据处理场景。使用 Routine Load 可以创建常驻的导入任务,持续从 Kafka 读取数据并导入 Doris。 示例代码如下: ```sql CREATE ROUTINE LOAD demo_db.kafka_demo_csv ON demo_table COLUMNS TERMINATED BY ",", COLUMNS(id,name,age) PROPERTIES ( "desired_concurrent_number"="10", "strict_mode" = "true" ) FROM KAFKA ( "kafka_broker_list" = "Kafka实例IP:9092", "kafka_topic" = "demo-topic", ... ); ``` 该方式支持异步导入,适合高并发、低延迟的数据处理需求[^3]。 4. **从外部业务系统数据库导入** Doris 支持从 MySQL、Oracle、SQL Server、PostgreSQL 等数据库导入数据,使得可以从现有系统中迁移数据到 Doris,无需重新生成或转换数据格式。这种方式通常通过 MySQL LoadBroker Load 实现,能够直接连接数据库并导入数据[^2]。 5. **同步与异步导入方式** Doris 提供了同步和异步两种导入方式,以满足不同性能和一致性需求。同步导入会阻塞直到数据完全导入,适用于对数据一致性要求较高的场景。异步导入则允许在后台进行,不会阻塞其他操作,适合大规模数据导入或实时数据处理场景[^2]。 6. **其他导入方式** Doris 还支持 TVF(表值函数)方式导入数据,适用于从外部系统查询并导入数据的场景。TVF 支持 SQL 查询结果直接作为数据源导入 Doris,提供了更高的灵活性[^5]。 ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值