doris broker方式从hdfs导入数据到doris

​​​​​

LOAD LABEL db1.label1
(
    DATA INFILE("hdfs://abc.com:8888/user/palo/test/ml/file1")
    INTO TABLE tbl1
    COLUMNS TERMINATED BY ","
    (tmp_c1,tmp_c2)
    SET
    (
        id=tmp_c2,
        name=tmp_c1
    ),
    DATA INFILE("hdfs://abc.com:8888/user/palo/test/ml/file2")
    INTO TABLE tbl2
    COLUMNS TERMINATED BY ","
    (col1, col2)
    where col1 > 1
)
WITH BROKER 'broker'
(
    "username"="user",
    "password"="pass"
)
PROPERTIES
(
    "timeout" = "3600"
);

以上是官方文档给出的格式,

一、我亲测跑通的例子如下

  LOAD LABEL ts_202111221719
(
DATA INFILE("hdfs://.../*.csv")
INTO TABLE `t1`
COLUMNS TERMINATED BY "\t"
(col1,...coln)
)
WITH BROKER hdfs_broker
    (
      "hadoop.security.authentication"="kerberos",
      "kerberos_principal"="**",
      "kerberos_keytab_content"="**"
	  )
PROPERTIES
(
    "max_filter_ratio"="0.00002",
	"timeout" = "3600"
);

如果列数一样的话set都不用写。

kerberos_principal写kerberos账号用户名,kerberos_keytab_content写kerberos账号密码,

用这个命令获取你的kerberos_keytab_content:

cat /your/keytab/file | base64

二、如果要在shell里定时调度的话,用doris连接语句 ,-e"上面的命令"就可以了。

三、需要注意的是,broker导入是异步导入,也就是说导入命令执行后,就提交成功了,需要用

show load where label="ts_202111221719";

这个命令去查看当前导入的进度。

有三个状态:

CANCELLED :导入失败,可查看http链接报错原因,我有出现过几次字段数不够的错误
LOADING:正常导入中。
FINISHED:导入完成。

官方文档:

Broker Load | Apache Doris

你可能感兴趣的:(工具,doris,导入数据,broker,hdfs,kerberos)