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';

 

posted @ 2026-05-06 18:05  所向披靡zz  阅读(5)  评论(0)    收藏  举报