- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 hive分区表新增字段(add columns)后旧分区报错/字段无法写入(CASCADE)
1.问题描述日常工作中我们经常会给hive表新增字段,常见的新增方式多为:ALTER TABLE db.table_test add columns (new string comment '我是新字段') ;如果我们的表是分区表,那常常就会出现一些问题:查询旧分区时会莫名其妙的出现 FAILED:Execution Error,return code 2 from XXXXXX 等报错insert overwrite时 旧分区新增的字段无法更新2.解决办法通过查询官方文档,可以发现官方
2020-09-04 17:40:34
5443
原创 一文带你了解亿级流量外卖平台-数仓分层架构
目录一.概述1 什么是数据仓库?2 为什么要设计数据分层?3 数据仓库有什么特点?二.分层架构1 常见通用的数仓分层2 外卖数仓分层2.1 分层情况2.2 不同层级数据特点一.概述在阅读本文之前,我们先来了解几个基本的概念。1 什么是数据仓库?数据仓库(Data Warehouse)简称DW或DWH,是数据库的一种概念上的升级,可以说是为满足新需求设计的一种新数据库,而这个数据库是需容纳更多的数据,更加庞大的数据集。数据仓库主要是用于数据挖掘和数据分析,让不同来源的数据能够联系在一起,为消灭消息孤
2020-09-04 15:56:22
920
原创 Oozie与DataX集成数据同步(Flask框架版)
目录1.简介2.方案架构3.实施过程3.1 首先将测试代码部署到DataX主机3.2 在DataX主机调起一个http接口3.3 编写一个shell脚本来调用DataX主机的接口3.4 Oozie调起任务1.简介基于DataX执行的ETL调度任务我们常常通过Crontab来进行批量调度。这种方法不方便进行集中化管理,且对于从数据仓库同步到外部数据库的任务无法做到上下游依赖,集成到Oozie中即可解决这样的问题。2.方案架构主要集成方法:使用Oozie自带的shell脚本功能,通过调用接口的方式来执行
2020-07-15 17:44:11
1413
原创 hive离线数仓数据采集——基于canal的binlog数据同步方案
目录1.简介2.方案架构3.离线还原数据3.1.数据落盘至hdfs3.2 Merge操作3.3 Merge sql 代码3.3.1 首先创建一个快照表来存放test库的binlog日志3.3.2 创建一个待还原的ods层hive表3.3.3 在hive中还原出与mysql相同的数据(binlog+历史数据)3.3.3.1 binlog demo3.3.3.2 全量数据合并3.3.3.3 写入数据(同时过滤掉mysql中已删除的记录)1.简介在离线数仓中,我们常常会把DB数据以及日志数据抽取到数仓的ODS
2020-05-25 18:27:12
3410
1
原创 Hive Lateral View explode列为空时导致数据异常丢失
目录1.问题描述2.查找原因3.解决办法(建议使用方法二)3.1 方法一3.2 方法二1.问题描述日常工作中我们经常会遇到一些非结构化数据,因此常常会将Lateral View 结合explode使用,达到将非结构化数据转化成结构化数据的目的,但是该方法对应explode的内容是有非null限制的,否则就有可能造成数据缺失。SELECT name,infoFROM ( SELECT name, split(info_list,',') as info_arrary
2020-05-21 17:21:28
2153
2
原创 [python]数据同步工具DataX之Mysql同步数据至Hive (下)
目录4.告警邮件配置5.对执行成功的任务做标记6.定时调度配置上文请点击:[python]数据同步工具DataX之Mysql同步数据至Hive (上)4.告警邮件配置如果我们配置的是ETL定时任务,当DataX任务调度结束后,往往需要了解运行的结果是什么。因此我们需要为调度任务增加一个报错邮件告警的功能(任务正常执行的话就不再发送邮件),便于我们及时处理报错的任务。这里我们主要使用pyth...
2020-05-07 18:38:19
985
原创 [python]数据同步工具DataX之Mysql同步数据至Hive (上)
目录1、DataX简介2 、下载安装2.1 下载2.2 传输2.3 测试3、配置json (以mysql同步至hdfs为列)3.1 配置数据库相关json信息3.2 配置表结构及抽取逻辑相关json信息3.3 对准备好的参数进行json填充3.4 测试json能否正常执行1、DataX简介DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、S...
2020-04-28 18:33:27
1623
4
原创 hadoop集群运行时遇到Unable to close file because the last block does not have enough number of replicas
1.问题描述hql脚本夜间调度时部分表随机出现了 Unable to close file because the last block does not have enough number of replicas 的报错。 手动重跑后恢复正常。2.查找原因通过报错信息可以得知 最后一个block块没有足够的副本而不能关闭文件。 这说明了在某一时刻可能有任务大量读取blocks,耗费了过多...
2020-04-08 15:37:51
7512
2
原创 hvie中的‘不等于’会将null错误过滤
**1.问题描述**最近在hive中计算时发现部分存在null的数据会被错误过滤掉,造成了数据结果错误。**2.查找原因**根据存储规则我们可以知道,int与string类型数据存储,null默认存储为 \N 。 一般在对null值进行判断时我们会用到 is null 或着 is not null 。这里where虽然过滤的是某个不为null的值,但是在计算的同时也会把null值...
2020-03-25 18:41:04
1168
原创 mr和tez跑出来的数据不一样,mr丢数据?
1.问题描述 在hive中分别使用tez和mr两种模式进行计算(hql中包含union all),最终得到的数据结果却不相同, mr在对表进行读取时,无法获取到数据。2.查找原因经过排查发现,读取表的输出目录,在分区目录下发现了两个子目录/user/hive/warehouse/bigda.db/tab/1/user/hive/warehouse/bigda.db/tab/2查...
2020-03-20 15:36:48
2291
原创 hive数仓建立时间维表
1.首先利用python中的datetime模块获取到我们想要的日期import datetime# 现在的时间setTime ='2019-01-01'now=datetime.datetime.strptime(setTime,'%Y-%m-%d')print now# 递增的时间delta = datetime.timedelta(days=1)# 1000天后的时间...
2019-10-30 15:57:47
1496
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人