自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 mapjoin的使用方法以及注意事项

mapjoin的使用方法以及注意事项mapjoin的简介MAPJION会把小表全部加载到内存中,在map阶段直接拿另外一个表的数据和内存中表数据做匹配,由于在map是进行了join操作,省去了reduce运行的效率也会高很多,算是hive中的一种优化mapjoin的使用方法例如:select /*+ mapjoin(t)*/ f.a,f.b from A f join B t on f.a=t.a 前提b表是一张小表,默认25m的表是小表注意事项使用mapjoin时,一次性加载到内存

2020-09-10 10:51:50 13319

原创 hive中数据更新以及实现

问题hive暂时没有实现更新操作的,所以要更新数据就要通过自己手动进行更新。拿业务数据来说,使用sqoop脚本是可以直接把全量数据抽取到hive中,sqoop也有两种增量抽取数据的方法,一种是基于自增列,一种是基于时间列。可以参考:https://editor.csdn.net/md/?articleId=102798126。但是这两种方法里面是只可以把新增的数据拉去过来的,变化的数据是没有抽...

2020-03-12 13:30:04 13860

原创 python雨流计数sql实现

python中雨流计数模型包需要传入rainflow模型包下面是使用python实现雨流计数__author__ = 'SunXQ'# -*- coding: UTF-8 -*-import rainflowimport pandas as pdimport mathsignal = [1,2,3,1,3]def rainflow111(): a = pd.DataFrame(rainflow.count_cycles(signal)) print(rainflow.co

2021-10-26 10:53:54 1139

原创 hive场景题:求车门开闭次数

场景问题求每辆车车门的开闭次数事例数据vincardoorstatusdate102021-08-10 00:00:12.123112021-08-10 00:01:12.222102021-08-10 00:04:12.823102021-08-10 00:05:12.333112021-08-10 00:07:12.124112021-08-10 00:08:12.125112021-08-10 00:10:1

2021-08-10 17:38:55 206

原创 Docker的学习(简介+使用)

Docker简介官网地址:Docker官网Docker简介1. Docker是一个开源的应用容器引擎,基于go语言,并遵从Apache2.0协议开源2. Docker可以让开发者打包应用依赖包到一个轻量级、可移植的容器中,然后发布到任何linux上,也可以实现虚拟化。3. 容器完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低Docker应用场景1. web应用的自动化打包和发布;3. 自动化测试和持续集成、发布;4. 在服务型环境中部署和调整数据库或其他后台的应用D

2021-02-24 14:55:00 235

原创 MySQL中的日期函数

数据库中常用日期函数的使用1、NOW()返回当前的时间和日期2、CURDATE()返回当前的日期3、CURTIME()返回当前的时间4、DATE()提取日期或日期/时间表达式的日期部分5、EXTRACT()函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等6、...

2021-01-29 16:32:04 375

原创 Hive中的列转行与MySQL中列转行的使用

Hive中的列转行使用到的函数:concat_ws(’,’,collect_list(列名))实现代码:select userid,concat_ws(',',collect_list(order_id)) as order_valuefrom col_liegroup by useridMySQL中的列转行使用到的函数:group_concat(列名)实现代码:select goods_id,count(distinct size_id) 失败数量,group_concat

2021-01-22 11:30:29 157

原创 对可视化工具grafana的使用

用途主要是使用grafana对pg数据库的数据进行可视化展示使用记录大部分sql只要数据库能跑,grafana也是可以的但grafana有一个时间time_sec的概念,可能求每天,每小时等可能就会用到grafana这边的时间。例如:求今天的已售数量SELECT $__timeGroupAlias(update_time,24h), count(id) AS "cnt"FROM inventoryWHERE $__timeFilter(update_time) AND st

2021-01-21 18:08:26 1386

原创 数据仓库中的缓慢变化维

缓慢变化维定义:维度表里面的数据并非是始终不变的,总会随着时间发生变化;比如我们有一张我们公司的商品类别维度表,记录了商品类别的一些基本信息,那么随着时间的变化商品类别可能会在发生改变,假如猪肉之前属于肉禽类别,现将猪肉更改为属于零食类别针对这种变化,业务系统会直接将业务数据库中数据抽取过来直接覆盖,而不会考虑历史变化,不过在数据仓库中由于有时我们需要进行历史变化分析,或者防止商品品类统计数据记录错误,所以需要对这种变化进行相应的处理。处理办法第一种方法,直接在将原来维度覆盖,无法追溯历史变化:1

2020-12-22 14:44:09 268 2

原创 拉链表的制作

1、为什么要做拉链表拉链表,记录每条信息的生命周期,一旦一条记录的生命周期结束,就重新开始一条新的记录,并把当前日期放入生效开始日期。拉链表适合于:数据会发生变化,但是大部分是不变的。比如:订单信息从未支付、已支付、未发货、已完成等状态经历了一周,大部分时间是不变化的。拉链表格式订单ID订单金额订单状态生效开始日期生效结束日期11000.00未支付2019-01-012019-01-0111000.00已支付2019-01-022019-01-02

2020-12-13 11:06:33 2424 2

原创 hive优化整理

1.1 hive的特征1、可以通过SQL轻松访问数据,从而实现数据仓库任务,如提取、转换、加载(ETL),报告和数据分析;2、可以使已经存储的数据结构化;3、可以直接访问存储在HDFS或者其他数据存储系统(HBase)中的文件4、它提供了类似sql的查询语句HiveQL对数据进行分析处理5、数据的存储格式有多种,比如数据源二进制格式,普通文本格式等。1.2hive的优势hive的强大...

2020-12-11 10:21:22 188

原创 使用sql对数据去重的几种方式

1.使用 DISTINCT 关键词在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 DISTINCT 用于返回唯一不同的值。语法:SELECT DISTINCT 列名称 FROM 表名称其中的一种使用方式:select t.a A,count(distinct t.b) Bfrom table_name t group by t.a2.使用row_number() over (partition by col1 order

2020-06-30 12:15:29 6909

转载 hive中的行转列以及列转行

列转行函数:concat_ws(’,'collect_set(column))说明:collect_list 不去重,collect_set 去重,column的数据类型必须为string,若不是可使用cast(column as string)进行转化col_lie.user_id col_lie.order_id104399 1715131104399 2105395104399 1758844104399 981085104399 24441431

2020-05-27 11:58:25 256

转载 Hive的文件存储格式

textFile    textFile为默认格式    存储方式:行存储    缺点:磁盘开销大;数据解析开销大;压缩的text文件,hive无法进行合并和拆分    sequencefile    二进制文件,以<key,value>的形式序列化到文件中    存储方式:行存储    优点:可分割、压缩,一般选择block压缩,与hadoop api中的mapfile是互相兼容的。    Rcfile    存储方式:数据按行分块 每块按照列存储    压缩快 快速列

2020-05-20 20:32:02 156

原创 面试过程中的一些面试题

1、求用户最大连续登陆的天数2、写个sql(简单两表jion)问spark在处理过程中产生多少stage,用mr处理过程中产生多少job,并且mr底层是怎么处理这个sql的(map端和reduce端)3、数仓命名规则4、项目过程中遇到了哪些复杂的问题5、第二个项目,日志数据为什么先写入redis中,再持久化到磁盘6、是否对hive进行调优,简单说下7、hive中的存储格式...

2020-05-20 19:54:52 217

转载 Sqoop抽取数据优化

1.怎么监控数据是否完全导入?使用shell脚本去查询mysql中某表的数据。然后和hive中表的行数对比。2.某表如果2G数据,设置多少个mapper合适?建议128M(和块大小一致)一个mapper即可.3.-m和split-by的优化小量数据时(200M左右): 最好使用一个map,快且减少小文件。大量数据时: 要特别考虑数据的特征,对于spit-by最完美的情况是有一个:均匀...

2020-05-08 16:36:08 1326

转载 es中各组件的概念

Elasticsearch相关概念1、集群(cluster):一个集群就是由一个或者多个节点组织在一起,他们共同持有你整个的数据,并一起提供索引和搜索的功能2、节点(code):一个节点就是集群的一个服务器,作为集群的一部分,参与集群的索引和搜索功能。3、索引(index):一个索引就是一个具体相似特征文档集合,相当于一个数据集。4、类型(type):在一个索引中,你可以定义一种或多种类型...

2020-03-16 11:29:00 2686 1

原创 dmp项目大数据平台规模及使用到组件

CDH集群使用到的所有角色集群配置集群上所有组件及其版本

2020-03-13 14:42:46 455

原创 数仓中全量表,增量表,快照表,临时表,拉链表区别

全量表全量表:大部分业务数据是使用全量表进行同步,全量表无分区,每天同步方式是直接删除数据在重新拉去全量数据,表中的数据是截止前一天中mysql中的数据。增量表增量表:是按天进行分区的分区表,今天将昨天新增的数据直接存放在昨天的分区中,每个分区都是存放的每天增量数据。快照表快照表:按天分区,每一天的数据都是截止前一天最新的数据。临时表临时表:为了解决某一个问题而建立的中间表。相当于是...

2020-03-12 14:10:28 5206

原创 hive中sort by、order by、cluster by、distribute by各代表的意思

区别order by:对输入做全局排序,因此只有一个reduce(多个reduce无法保证全局有序),只有一个reduce,当输入规模较大时,需要较长的计算时间。sort by:局部排序,其在数据进入reduce前完成排序distribute by:按照指定字段对数据进行划分输出到不同的reduce中。cluster by:除具distribute by功能外还具有sort by的功能。...

2020-03-03 13:19:23 1170

转载 hive建表时中文注释乱码解决办法

hive中show create table出现注释乱码的问题解决办法1、进入mysql,查看hive数据库当前编码show create database hive;2、如果是utf8 则执行下面sql将 hive 数据库默认编码改成 latin1alter database hive default character set latin1 ;3、执行下面sql ,修改 表...

2020-03-02 13:54:02 500

转载 sql效率低的几种原因及优化

为什么要进行sql的优化项目开发初期,业务数据量相对较少,一些SQL的执行效率对程序运行效率影响不太明显,随着时间的积累,业务数据量越来越多,sql的执行效率对程序的运行效率影响越来越大,此时对sql的有效就很有必须,来提升整体程序的运行效率。什么情况会导致sql执行效率低及优化方式1、首先尽量避免全表查询,在sql中where及order by设计的列上建立索引2、尽量避免where语句...

2020-02-28 14:01:59 3038

原创 sqoop导出sqlServer的数据到hdfs上增量脚本

#!/bin/bashdb_date=$2echo $db_datedb_name=interaction_business.dbimport_data() {sqoop import \--driver com.microsoft.sqlserver.jdbc.SQLServerDriver \--connect "jdbc:sqlserver://10.4.0.17...

2020-02-28 10:36:56 362

原创 sqoop抽取数据报错: Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxrwxr-x

cdh集群sqoop抽取数据遇到权限问题Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxrwxr-x更改hdfs上user文件夹的权限即可:sudo -u hdfs hadoop fs -chmod -R 777 /user附:更改hdfs所属组权限:sudo -u hdfs ...

2020-02-26 16:38:19 532

原创 sqoop抽取数据报错:Failed to submit application to YARN : Application rejected by queue placement policy

cdh集群sqoop在抽取mysql时报错:Failed to submit application_1582700194294_0010 to YARN : Application rejected by queue placement policy解决办法在CM界面修改动态资源配置进入到动态资源配置按下图进到放置规则中修改配置,即可解决...

2020-02-26 16:26:51 3648

原创 sqoop导入oracle的数据到hive中

全量导入oracle的数据到hive中以下为一个举例sqoop import \--connect jdbc:oracle:thin:@**10.7.2.70:1521:ddc1** \--username **dmpuser** \--password **dmpuser123** \--query "**SELECT * FROM ddc.DMSVDD005D1 WHERE VBI...

2020-02-20 16:27:41 270 1

原创 hive中的常用窗口函数

开窗函数关键字 over()格式:函数名(列名) over(partition by 列名 order by 列名)排序相关的开窗函数1、row-number() over():对相等的值不进行区分,会依次进行排序。2、rank() over():会跳着排序,即相等的值排名一样,然后跳过下一名,如:两个第一名,接下来的一个就是第三名3、dense_rank() over():不会跳序排...

2020-02-18 15:01:24 582

翻译 Spark的学习总结

理论知识RDD及其特点1、RDD是Spark的核心数据模型,是一个抽象类,是一个弹性是分布式数据集。2、RDD在抽象上来说是一种元素的集合,包含了数据。它是分为多个分区,每个分区分布在集群的不同的节点上,从而让RDD中的数据可以被并行操作。3、RDD通常通过hadoop上的文件,即hdfs上的文件或者hive表,来进行创建,有时也可以通过应用程序创建。4、RDD最重要的特性就是提供了容错...

2020-02-14 10:56:26 229

原创 正则表达式匹配手机号

尽匹配首位是0的电话号select VISIT_PERIODFROM SIEBEL.S_ORG_EXTWHERE regexp_like(VISIT_PERIOD,'^[0][0-9]{10}$');

2019-12-20 13:58:28 979

翻译 Sqoop的全量导入和增量导入

#全量导入##上传到hdfs脚本sqoop import \ --connect jdbc:mysql://10.6.207.146:3306/test_db \ --username scfl \ --password scfl123 \ --query “select * from test_table where \$CONDITIONS” \ --target-dir /us...

2019-10-29 14:49:27 1979 2

翻译 Oozie基于Hue全流程调度

#数仓整体流程大致流程:MySQL -> HDFS -> ODS -> DWD -> DWS -> ADS -> MySQL 具体流程:1. MySQL业务通过Sqoop数据导入HDFS2. 将HDFS数据导入Hive数仓ODS层3. 将ODS数据简单清洗写入DWD层4. 将DWD数据轻度汇总写入DWS层宽表5. 将DWS层数据统计结果写入ADS...

2019-10-28 16:57:57 658

转载 数据仓库初识---举例解释

经过多年来企业信息化建设,大部分都拥有了自己的财务,OA,CRM 等软件。这些系统都有自己的独立数据库,记录着企业运行情况某个方面的数据。但是单独看这些系统的报表,并不一定能对企业运行情况有全面客观的了解。就像只凭身高不能判断一个人是否健康,所以体检的时候我们需要化验许多指标,做各种检测,就是为了对身体情况有更全面的了解,作出更准确的判断。同样对一个企业,不能仅根据出勤率就判断一个人的绩效高低,...

2019-10-12 17:48:00 508

转载 Hive解析json(get_json_object)

get_json_object(string json_string, string path)说明:第一个参数填写json对象变量,第二个参数使用$表示json变量标识,然后用 . 或 [] 读取对象或数组;如果输入的json字符串无效,那么返回NULL。每次只能返回一个数据项。举例:data 为 test表中的字段,数据结构如下:data ={ "store": ...

2019-10-12 11:56:25 1923 2

原创 VM虚拟机移动后ip修改需要进行的配置

虚拟机移动后ip改动需要进行的配置#网络模式是net模式1.虚拟机开启之前,先将镜像配置后,配置好之后开启虚拟机2.开启虚拟机后,删除文件。rm -rf /etc/udev/rules.d/70-persistent-net.rules3.配置网卡,配置到VMnet8一个网段下的IP。vim /etc/sysconfig/network-scripts/ifcfg-eth04.重启网络...

2019-10-10 14:32:42 971

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除