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

news/2024/7/7 20:02:02

文章目录

  • 一. 问题描述
  • 二. 解决方案

一. 问题描述

近期需要进行补录数据,需要将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

http://lihuaxi.xjx100.cn/news/1280198.html

相关文章

arcgis api的popup.open鼠标左键不管用,右键才有效问题解决

场景&#xff1a;用arcgis api for js 打开view的弹窗事件&#xff0c;用View.popup.open(&#xff09;方法可以打卡&#xff0c;但是操作的时候发现左键点击地图时候没反应&#xff0c;右键才可以。后来查了api&#xff0c;需要进行如下设置&#xff0c;让左右中间滚轮都有反…

一文教你Mysql如何性能优化

Mysql性能优化 Mysql性能优化 性能优化维度 数据库优化思路 应急调优的思路&#xff1a; 针对突然的业务办理卡顿&#xff0c;无法进行正常的业务处理&#xff01;需要立马解决的场景&#xff01; show processlist&#xff08;查看连接session状态&#xff09; explain(分…

uniapp导航栏点击切换特效 下边框跟随动态变化

前言 本人几率代码方便以后使用&#xff0c;导航栏下边框跟随特效 <template><view class"video"><view class"topbar"><scroll-view scroll-x"true"class"scroll-view"><view class"rel">…

Three.js教程:gui.js库(可视化改变三维场景)

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D工具链 其他系列工具&#xff1a; NSDT简石数字孪生 gui.js库(可视化改变三维场景) gui.js库(可视化改变三维场景) dat.gui.js说白了就是一个前端js库&#xff0c;对HTML、CSS和JavaScript进行了封装&#xff0c;学习开发的时候…

【vue2】封装文字过长自动省略部分并且鼠标悬浮显示全部

技术&#xff1a;Ant design vue1.7.8 UI框架、vue2.X 需求:实现文字过长自动省略部分&#xff0c;鼠标悬浮显示全部 效果图&#xff1a; 图一&#xff1a; 图二&#xff1a; 1.封装组件代码&#xff1a; src/components/Ellipsis/index.js 文件下代码 import Ellipsis f…

dsl语句查询elasticsearch集群节点分布和资源使用情况

查询语句如下&#xff08;本文是直接在kibana里面执行的哦&#xff09; GET _cat/nodes?v执行结果 这样就可以很直观的看到&#xff0c;es部署在了哪些节点上&#xff0c;以及各节点资源分布使用

【PostgreSQL-16新特性之普通用户的保留连接个数(reserved_connections)】

PostgreSQL数据库为了保证在高并发&#xff0c;高连接数情况下某些用户能够正常连接到数据库里&#xff0c;设立了几个用户连接的保留个数。 本文介绍了PostgreSQL16版本前为超级用户保留的连接数&#xff08;superuser_reserved_connections&#xff09;以及PostgreSQL16版本…

python3.10-一些有意思的语法

python3.10发行已经有一段时间了&#xff0c;但是时至今日才开始用上python3.10版本&#xff0c;说实话有点惭愧。下面来记录一下&#xff0c;在Python3.10版本中几个亮眼的语法变更&#xff1a; 带括号的上下文管理器 在以前&#xff0c;我们如果需要打开多个文件&#xff0…