amberwest
码龄8年
关注
提问 私信
  • 博客:29,890
    29,890
    总访问量
  • 20
    原创
  • 2,182,672
    排名
  • 3
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2016-09-27
博客简介:

amberwest

查看详细资料
个人成就
  • 获得7次点赞
  • 内容获得4次评论
  • 获得44次收藏
  • 代码片获得372次分享
创作历程
  • 20篇
    2021年
成就勋章
TA的专栏
  • Hadoop
    1篇
  • Hive
    9篇
  • ETL
    6篇
  • SQL
    2篇
兴趣领域 设置
  • 大数据
    hadoophivesparketl
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

hiveSQL任务执行时间过长

在周例会上,发现自己经手过的任务运行时间在忙时长达两个多小时(公开处刑),这里总结下工作中遇到的一些造成任务执行效率低的原因:1、数据量过大比如有分区表,但是多表关联查询的时候没有指定分区,导致全表扫描。(注意on跟where的条)2、产生笛卡尔积优化3、访问API过多有些任务可能涉及到访问外部接口,过多的请求影响到任务执行效率。从业务或者其他方面优化4、从接口层取数前期的数仓设计不合理或者临时性取数,应用层的数据直接从接口层取数。需要优化模型设计,从接口层到中间层/轻度汇总
原创
发布博客 2021.12.13 ·
3545 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

Hive数据倾斜的原因及处理方法

什么是数据倾斜MapReduce程序执行时,大部分Reduce节点都执行完毕,但是有一个或几个Reduce节点执行非常慢,导致整个任务处理时间过长。这是因为某个key的条数比其他key多很多,这个key所在的Reduce节点所处理的数据量比其他节点就大很多,才会导致某几个节点一直运行不完。这种情况就称为数据倾斜。常见的原因key分布不均匀 业务数据本身的特性 建表时考虑不周 某些SQL语句本身就有数据倾斜解决方法1)key分布不均匀设置hive.groupby.skewindat
原创
发布博客 2021.10.12 ·
619 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据同步策略

数据同步策略类型包括:全量同步,增量同步、新增及变化、特殊情况 全量表:存储完整的数据 增量表:存储新增加的数据 新增及变化:存储新增加的数据和变化的数据 特殊表:只需存储一次 全量同步策略每日全量,作为一个新分区。适用于数据量不大,每天都有新增数据及更新数据的场景。如图书欠费信息。增量同步策略每日增量,即每天存储一份新增数据量作为一个分区。适用于数据量大,且只有新数据插入的场景。如一卡通消费记录表。新增及变化策略每天新增及变化,即存储创建时间和操
原创
发布博客 2021.10.08 ·
532 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

hive读取索引文件的问题

存在这么一张表,源数据是用LZO压缩并创建了索引drop table if exists ods_customer;create external table ods_customer( customer_id string, customer_name string, gender string, mobile string, birth date)partitioned by (dt string)stored as INPUTFORMAT
原创
发布博客 2021.10.07 ·
525 阅读 ·
0 点赞 ·
4 评论 ·
0 收藏

启动hiveserver2服务

如果想要远程连接hive,需要先启动hiverserver2服务。首先,修改$HIVE_HOME/con/hive-site.xml配置文件,将true改为false: <property> <name>hive.server2.enable.doAs</name> <value>false</value> <description> Setting this property to tr
原创
发布博客 2021.10.07 ·
2033 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

Hive调优

【注意】所有的配置项写到xml文件,需要更换格式。1、使用explain、explain extendedexplain select count(car_brand) from car; --结果见下图explain extended select count(car_brand) from car;使用explain可以看到Hive是怎么转换成MapReduce任务的。想要更详细的信息可以用explain extended。2、限制调整使用limit语句有时候可以避免整.
原创
发布博客 2021.09.25 ·
224 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Hive模式设计

Hive常见的几种模式:1、按天划分的表对于数据增长非常快的业务,就可以应用这种方式。create table supply20210921(id int, part string);--也可以用分区create table supply(id int, part string) partitioned by (day int);alter table supply add partition(day=20210921);2、分区使用分区可以优化一些查询,但是要注.
原创
发布博客 2021.09.25 ·
237 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

kettle连接数据库(MySQL8.0驱动问题已解决)

1、新建数据库连接新建作业/转换—选择主对象树---DB连接—新建—填写信息测试通过即可2、添加驱动如果连接失败,提示没有找到对应的jdbc,则需要复制jar包到以下两个路径:data-integration/libdata-integration/libswt/对应电脑系统3、MySQL添加驱动后仍报错根据MySQL官网介绍,mysql5.7可以使用驱动5.1,但实际使用中可能会出现一些bug,建议还是安装驱动8.0由于8.0的jar包没有提供org.gjt..
原创
发布博客 2021.09.20 ·
5043 阅读 ·
2 点赞 ·
0 评论 ·
14 收藏

ODI代理自启动及虚拟内存修改

1、关于odi自启动方法,redhat下:命令行启动odi代码如下:/home/oracle/product/11.1.1/Oracle_ODI_1/oracledi/agent/bin/agent.sh -NAME=agent_name-PORT=20910自启动操作如下:mkdir -p/usr/odi/vi /usr/odi/start_odi.sh--start_odi.sh脚本输入以下内容,保存退出nohup/home/oracle/product...
原创
发布博客 2021.09.20 ·
455 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

忘记wallet密码如何登陆ODI

问题登陆ODI时提示需要输入wallet密码,但wallet密码是啥??没有wallet密码要怎么登陆ODI呢?(ODI12c在设置可以修改不输入wallet,11g不行)准备supervisor的密码 工作库、资料库的ip及账号密码详细操作1、修改supervisor密码(如果记得supervisor密码则忽略这一步)登录LY_ODI_ZLK 找到存放SUPERVISOR用户密码的表SNP_USER 修改加密密码PASS为aIyXs4XyqX56wjphku5y,明文为(123
原创
发布博客 2021.09.20 ·
1030 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

xmlagg函数的使用--课表视图

需求将老师一周中同一大节的课表信息整理到同一条记录里,不同星期对应不同的列。(涉及到字符串拼接、行转列)常见的行转列函数有vm_concat、listagg、xmlagg等,但是oracle12g不支持vm_concat,而且前两个函数在拼接字符串的时候容易出现拼接结果过长、字符串缓冲区过小等问题,难搞。xmlagg就可以完美解决这个问题,拼接字段中出现null也不影响,唯一的不足就是多个null拼接时,xmlagg并不能自动省去,最后需要处理下多余的拼接符号,不然难看。xmlagg函数
原创
发布博客 2021.09.20 ·
5854 阅读 ·
1 点赞 ·
0 评论 ·
6 收藏

oracle多层嵌套后to_number比较数据出现无效数字的错误

select * from (selectXH ,--学号case when to_number(rxnj) <= 2020 - xz then '不在校'else '在校'end as zxzt --在校状态FROM xsxx where rxnj not in ('NULL',' ')) where zxzt='在校';在上述例子中,rxnj是varchar2类型,有非纯数字的数据值,xz是number类型,内层查询无报错,但是外层查询就会报错,也就是where条件不起作.
原创
发布博客 2021.09.20 ·
1616 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

odi代理自启动

@echo offtitle LY_WL_DL4pushd D:\oracle\oracledi\agent\bin --ODI安装路径call agent.bat -NAME=LY_WL_DL4 -PORT=21923 --代理名字跟端口pause
原创
发布博客 2021.09.20 ·
274 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

oracle数据库表中文注释显示为乱码

一般是由于数据库使用的编码跟服务器/电脑的编码不一致导致的,常规处理方法就是设置服务器使用编码跟数据库一致。查看oracle数据库的编码SELECT USERENV(‘LANGUAGE’) FROM DUAL;新建环境变量,或者修改已有的环境变量。设置变量名:NLS_LANG,变量值: SIMPLIFIED CHINESE_CHINA.ZHS16GBK或者AMERICAN_AMERICA.AL32UTF8(依照实际情况确定变量值),确定即可...
原创
发布博客 2021.09.20 ·
5028 阅读 ·
3 点赞 ·
0 评论 ·
6 收藏

HiveQL:视图

当查询语句变得很长或者很难理解时,比如多层嵌套查询,我们可以用视图来降低查询难度。或者我们不想暴露全部的数据,也可以用视图来代替。但目前Hive不支持物化视图。-- 如果查询语句有确切的字段名,视图名后面的字段列表可省略create view if not exists orders(id, state, city, part ) comment 'select some info from the dynamic table' --可选tblproperties('creator'='amb
原创
发布博客 2021.09.19 ·
178 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

HiveQL:查询

1、select语句HiveQL一般是用本地模式执行,但涉及到聚合函数之类的就会启动MapReduce任务。可以设置hive.exec.mode.local.auto为true,其他操作也会尽量走本地模式。select id, name from cast;-- 依次获取字符串、集合元素(Array)、Map元素、Struct对象select name, subordinates[0], deductions['State Taxes'], address.city from employe
原创
发布博客 2021.09.19 ·
349 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

HiveQL:加载、导出数据

1、向管理表中装载数据使用load data的方式往表批量加入(Hive不支持行级别的数据操作),有几点需要注意:local:是从本地文件系统拷贝数据到分布式文件系统上的目标位置,如Hive默认的/user/hive/warehouse/路径下。不带local关键字,是从分布式文件系统上转移到分布式文件系统上的目标位置,如从/home/hadoop到/user/hive/warehouse/,同时要求是在同一个文件系统。 overwrite:会覆盖掉表中原有的数据。不带overwirte关键字,则
原创
发布博客 2021.09.19 ·
173 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

HiveQL:数据定义

基础Hive不支持记录级别的更新、插入或者删除操作。不支持OLTP(联机事务处理),更接近OLAP(联机分析技术)工具。但由于Hive查询延时严重,需要使用NoSQL,如Hbase或Cassandra。一般使用Hive可以通过CLI(命令行界面,用hive来表示),也可以用图形用户界面,如Karmasphere,Cloudera,Hue和Qubole提供的“Hive即服务”。元数据:Metastore是一个独立的关系型数据库(通常是一个MySQL实例),Hive会在其中保存表模式和其他系统元数据
原创
发布博客 2021.09.18 ·
284 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

HiveQL:数据定义

基础Hive不支持记录级别的更新、插入或者删除操作。不支持OLTP(联机事务处理),更接近OLAP(联机分析技术)工具。但由于Hive查询延时严重,需要使用NoSQL,如Hbase或Cassandra。一般使用Hive可以通过CLI(命令行界面,用hive来表示),也可以用图形用户界面,如Karmasphere,Cloudera,Hue和Qubole提供的“Hive即服务”。元数据:Metastore是一个独立的关系型数据库(通常是一个MySQL实例),Hive会在其中保存表模式和其他系统元数据
原创
发布博客 2021.09.18 ·
284 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Mac上的Hive安装和配置

懒人安装Hive大法,踩了n多坑...1、安装Hadoop因为Hadoop对伪程序猿(Java学的不够好)不友好,所以通过Hive来启动MapReduce任务,简单好上手。《Hive编程指南》是这么说的:Hive所有命令和查询都会进入Driver(驱动模块),通过该模块对输入进行解析编译,对需求的计算进行优化,然后按照指定的步骤执行(通常是启动多个MapReduce的job来执行)。当需要启动MapReduce任务(job)时,Hive本身是不会生成JavaMapReduce算法程序。相反,.
原创
发布博客 2021.09.17 ·
1016 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏
加载更多