Translog 迁移 Hive执行流程

Translog 迁移 Hive执行流程

使用jar包跑批查询ES数据并写入本地的文件中 文件名格式为 content_2022-07-14-13.txt (年-月-日-小时)
将对应的文件 通过FI运维(hue)界面存入HDFS文件系统中(用于后续导入数据)
路径为 /user/hd_rbsmonitor_p/logfile/202204/1… (可自定义,只是用来数据中转)
登录linux服务器
3.1 连接 hive终端 source hive.txt
3.2 使用对应数据库 USE rbsmonitor;
3.3 建表

表操作相关流程如下:

一、【创建外表】

CREATE EXTERNAL TABLE IF NOT EXISTS translog_external
(
actionName STRING
, appName STRING
, code STRING
, faceType STRING
, hostName STRING
, logDate BIGINT
, logTime STRING
, logType STRING
, parentId STRING
, acmMenu STRING
, reqState STRING
, processTime DOUBLE
, req STRING
, requestID STRING
, ret STRING
, sourceIp STRING
, acmMenu STRING
, reqState STRING
, spanId STRING
, traceID STRING
)
partitioned by(month STRING,days String)
ROW FORMAT SERDE ‘org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe’ with SERDEPROPERTIES(“field.delim” = “|\u001c”)
STORED AS TEXTFILE

二、【创建内表建表】

(内表使用ORC+外表导入的方式,不能用指定分隔符 否则会导入报错)
CREATE TABLE IF NOT EXISTS translog·
(
actionName STRING
, appName STRING
, code STRING
, faceType STRING
, hostName STRING
, logDate BIGINT
, logTime STRING
, logType STRING
, parentId STRING
, acmMenu STRING
, reqState STRING
, processTime DOUBLE
, req STRING
, requestID STRING
, ret STRING
, sourceIp STRING
, acmMenu STRING
, reqState STRING
, spanId STRING
, traceID STRING
)
partitioned by(month STRING,days STRING)
STORED AS ORC ;

三、【从HDFS中将数据导入外表】

alter table thranslog_external add partition(month=‘’,days=‘’)
再将相应的日志文件放入 分区文件夹中(默认路径是 /user/hive/warehourse/rbsmonitor.db/[tableName]/[分区文件夹]) 数据会自动加载到外表.
hdfs dfs -mv /user/hd_rbsmmonitor_p/logfile/202204/1/* user/hive/warehouse/rbsmonitor.db/translog_external/month=202204/days=01

注意数据加载外表之后 使用命令
source hive-soure.txt;
use rbsmonitor;
select count(*) from treanslog_external where month=202204 and days=01;
查看条数和 ES里边对应时间段的数据条数是否一致。

四、【将外表数据导入内表】

INSERT OVERWRITE TABLE translog PARTITION (month=‘202204’,days=‘01’)
SELECT
DISTINCT
actionName
, appName
, code
, faceType
, hostName
, logDate
, logTime
, logType
, parentId
, acmMenu
, reqState
, processTime
, req
, requestID
, ret
, sourceIp
, acmMenu
, reqState
, spanId
, traceID
FROM translog_external
where month = ‘202204’ and days = ‘01’;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值