Doris数据库Broker Load,超大规模、离线数据的批量导入
它在设计上注重高吞吐和稳定性,能够将 HDFS、S3 等数据源中的海量文件高效地导入到 Doris 中。
Broker Load 是一个 异步 的导入方式,特别适合处理以下场景的数据:
数据源:源数据已存储在远端分布式系统,如 HDFS 或 S3、OSS、COS 等对象存储,通常由离线数据处理任务产生。
数据量:单次导入的数据量非常庞大,通常在几十GB到数百GB甚至更多。
执行方式:任务提交后会立即返回,Doris 在后台执行导入,用户需要通过 SHOW LOAD 命令主动查询任务状态和进度。
要使用 Broker Load,你需要创建一个 LOAD 作业。下面是一个从 AWS S3 导入 CSV 文件的示例。
前置检查
权限:确保执行命令的用户对目标表有 INSERT 权限。
认证信息:准备好访问对象存储或 HDFS 所需的认证和连接信息。
示例:从 S3 导入数据
LOAD LABEL demo_db.label_20260506 ( -- Label是关键,确保幂等性 DATA INFILE("s3://your-bucket/path/data.csv") -- 支持通配符 *.csv INTO TABLE `user_table` COLUMNS TERMINATED BY "," -- 指定列分隔符 (id, name, age) ) WITH S3 ( "AWS_ENDPOINT" = "http://s3.us-east-1.amazonaws.com", "AWS_ACCESS_KEY" = "your_access_key", "AWS_SECRET_KEY" = "your_secret_key", "AWS_REGION" = "us-east-1" ) PROPERTIES ( "timeout" = "3600", -- 超时时间(秒) "max_filter_ratio" = "0.1" -- 允许10%的错误行 ); -- 查看特定 Label 的导入任务状态 SHOW LOAD WHERE LABEL = 'demo_db.label_20260506'; -- 查看最近的所有导入任务 SHOW LOAD FROM demo_db ORDER BY CreateTime DESC LIMIT 10; -- 若发现任务异常,可取消它 CANCEL LOAD FROM demo_db WHERE LABEL = 'demo_db.label_20260506';
浙公网安备 33010602011771号