暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

StarRocks案例7:使用shell批量broker load导入hdfs数据

原创 只是甲 2023-06-20
509

Table of Contents

一. 问题描述

近期需要进行补录数据,需要将hive的历史数据迁移到StarRocks,因为需要补录的数据较多,hive和StarRocks均使用的是分区表,两边的日期格式也不同,hive这边是 yyyymmdd格式,StarRocks这边是yyyy-mm-dd格式。

二. 解决方案

之前一直是使用DataX来从hive导入到StarRocks,因为DataX是单节点的,而hive和StarRocks是分布式的,所以这个性能其实一般,而且DataX配置json确实有点麻烦。

于是尝试使用StarRocks自带的broker load来进行导入,当然此时可以配合shell脚本来使用。
需要从2023-03-01 一直导入到2023-05-30 近90天的数据

#!/bin/bash
#Author         : 只是甲 at 20230609
#Remarks        : 通过broker load 导入hive 表

# 设置mysql的登录用户名和密码(根据实际情况填写)
mysql_user="root"
mysql_password="passwd"
mysql_host="ip"
mysql_port="9030"
database_name="db_name"

hive_table=hive_table_name
mpp_table=mpp_table_name

for i in {0..90};
do
    dt=`date -d "+$i day 2023-03-01" +%Y%m%d`
    startdate=`date -d "+$i day 2023-03-01" +%Y-%m-%d`
    echo "########$startdate#########"
    mysql -h${mysql_host} -P${mysql_port} -u${mysql_user} -p${mysql_password} -D${database_name} << EOF
LOAD LABEL label_${mpp_table}_$dt
(
    DATA INFILE("hdfs://ip:8020/hive/warehouse/${hive_table}/dt=${dt}/*") 
    INTO TABLE ${mpp_table}
    FORMAT AS "orc" 
    (col1, col2, col3, dt)
    SET
    (
     sr_date="$startdate",
     col1 = col1,
     col2 = col2,
     col3 = col3
    )
)
WITH BROKER 'broker_1'
(
"hadoop.security.authentication" = "simple",
"username" = "your_username",
"password" = "your_password"
)
PROPERTIES
(
    "timeout" = "3600"
);

EOF

done
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论