- 博客(248)
- 资源 (31)
- 收藏
- 关注
转载 HiveSQL解析原理:包括SQL转化为MapReduce过程及MapReduce如何实现基本SQL操作
本帖最后由 fc013 于 2016-12-3 19:42 编辑 问题导读: 1.什么是Hive? 2.MapReduce框架实现SQL基本操作的原理是什么? 3.Hive怎样实现SQL的词法和语法解析? Hive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用。美团数据仓库也是基于Hive搭建,每天执行近万次的Hive ETL计算流程,负责每天数百GB的数据...
2020-07-10 10:49:21 4522
转载 MapReduce Shuffle 和 Spark Shuffle 结业篇【转载】
原文链接:https://mp.weixin.qq.com/s?__biz=MzUxOTU5Mjk2OA==&mid=2247485991&idx=1&sn=79c9370801739813b4a624ae6fa55d6c&chksm=f9f60740ce818e56a18f8782d21d376d027928e434f065ac2c251df09d2d4283710679364639&scene=21#wechat_redirectShuffle简介S.
2020-07-08 22:12:58 169
原创 为什么Spark比MapReduce快?
通常大家只是说Spark是基于内存计算的,速度比MapReduce要快。或者说内存中迭代计算。其实我们要抓住问题的本质。总结有以下几点:1、Spark vs MapReduce ≠ 内存 vs 磁盘其实Spark和MapReduce的计算都发生在内存中,区别在于:MapReduce通常需要将计算的中间结果写入磁盘,然后还要读取磁盘,从而导致了频繁的磁盘IO。 Spark则不需要将计算的中间结果写入磁盘,这得益于Spark的RDD(弹性分布式数据集,很强大)和DAG(有向无环图),其中DAG记录
2020-07-08 22:11:00 1470
原创 【LeetCode 1.两数之和】 python版本
两数之和需求:给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/...
2020-07-05 23:00:40 214
原创 Hive列转行 (Lateral View + explode)详解
1. 大页 hugepage 设置相对较小? 单页大小2MB,当前共13328*2 MB ,一定要设置大于SGA值(多一两个GB);2. PGA 64GB SGA 128GB,机器总内存384GB 建议PGA+SGA设置在总内存80%; SGA调整为128GB;3. 调度任务 时间或者任务型拆分 ?4. 建议数据库及计算节点软件 打上最新补丁;5. OSWATCH 和告警日志等详细信息 再给O同学详细看下;beginpdw_etl_pkg.load_r_hc_group_bubg_map;..
2020-07-05 22:47:09 1067
原创 数据仓库增量数据获取方式解决方案
我们通常所说的增量数据,其实更确切的说,应该是变量数据,包括对数据的增加、修改和删除。特别是当有些系统存在物理删除数据的情况时,这一点尤为重要。从各源系统获取增量数据,是DW/BI类相关应用所必需的环节,那么从源系统获取增量数据的方式究竟有哪些呢?哪些又是我们经常使用的呢?下面我们就来简单介绍介绍:这第一种可以是由源系统在数据处理过程当中由应用程序直接记录增量数据,产生增量数据文件。这种做法对源系统的效率会有较大影响,需要改造源系统的应用(植入获取增量数据的程序)所以如果源系统方比较...
2020-07-02 12:46:11 1611
原创 数据仓库中的增量表,全量表,快照表,拉链表
1.增量表:新增数据,增量数据是上次导出之后的新数据。(1)记录每次增加的量,而不是总量;(2)增量表,只报变化量,无变化不用报(3)每天一个分区2、全量表每天的所有的最新状态的数据。(1)全量表,有无变化,都要报(2)每次上报的数据都是所有的数据(变化的 + 没有变化的)(3)只有一个分区3、快照表按日分区,记录截止数据日期的全量数据(1)快照表,有无变化,都要报(2)每次上报的数据都是所有的数据(变化的 + 没有变化的)(3)一天一个分区4、拉.
2020-07-02 12:40:35 1393
原创 解决缓慢变化维—拉链表
什么是缓慢变化维(SCD)、1、缓慢变化维简介缓慢变化维,简称SCD(Slowly Changing Dimensions) 一些维度表的数据不是静态的,而是会随着时间而缓慢地变化(这里的缓慢是相对事实表而言,事实表数据变化的速度比维度表快) 这种随着时间发生变化的维度称之为缓慢变化维 把处理维度表数据历史变化的问题,称为缓慢变化维问题,简称SCD问题2、举例说明例如:用根据用户维度,统计不同出生年份的消费金额占比。(80后、90后、00后)。而期间,用户可能去修改用户数据,例如:将
2020-07-01 16:05:43 3041
原创 浅析多维体系结构(总线架构), 一致性维度和一致性事实
在Kimball的维度建模的数据仓库中,关于多维体系结构(MD)有三个关键性概念:总线架构(Bus Architecture),一致性维度(Conformed Dimension)和一致性事实(Conformed Fact)。 总线架构 多维体系结构(总线架构) 数据仓库领域里,有一种构建数据仓库的架构,叫Multidimensional Architecture(MD),中文一般翻译为“多维体系结构”,也称为“总线架构”(Bus Architecture)。多维体系结构的创始人是数据仓库...
2020-06-28 12:56:15 1917
转载 星型模型与雪花模型的区别、分别有哪些优缺点【转载】以及什么时候使用雪花模型
原文链接:https://blog.csdn.net/winterPassing/article/details/105929303概念根据事实表和维度表的关系,可将常见的模型分为星型模型和雪花模型。在数据仓库的建设中,一般都会围绕着这两种模型来设计表关系或者结构。那么什么是事实表和维度表呢?在维度建模中,将度量称为“事实” ,将环境描述为“维度”。维度是用于分析事实所需要的多样环境。例如,在分析交易过程时,可以通过买家、卖家、商品和时间等维度描述交易发生的环境。事实则紧紧围绕着业务过程来设计,通过.
2020-06-28 10:29:46 4182
原创 Hive 建表详解
注:hive其他语法在hive官网有说明,建议初学者,去官网学习一手的资料, 官网:https://cwiki.apache.org/confluence/display/Hive/Home#Home-UserDocumentation官网说明Hive建表方式共有三种:直接建表法查询建表法like建表法首先看官网介绍 CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name -- (Not.
2020-06-25 19:16:43 1195
原创 分析函数用法及窗口子句 range/rows差别,及利用分析函数窗口求今日值、昨日值、上周同日值、近7天均值、30天均值 案例
分析函数的语法结构一般是:分析函数名(参数) OVER (PARTITION BY子句 ORDER BY子句 ROWS/RANGE子句)。即由以下三部分组成:分析函数名:如sum、max、min、count、avg等聚集函数以及lead、lag行比较函数等;over: 关键字,表示前面的函数是分析函数,不是普通的集合函数;分析子句:over关键字后面挂号内的内容;分析子句又由下面三部分组成:partition by :分组子句,表示分析函数的计算范围,不同的组互不相干;ORDER BY: 排
2020-06-24 14:12:43 1149
原创 Hive行列转换使用
Hive典型应用场景之行列转换在使用Hive处理数据时,经常遇到行列转换的场景,本文将对Hive的行列转换操作做详细的说明。行转列1)多行转多列假设数据表row2col:col1 col2 col3a c 1a d 2a e 3 b c 4b d 5b e 6现在要将其转化为:col1 c d ea .
2020-06-17 11:36:40 494
原创 hive中order by、distribute by、sort by和cluster by的区别和联系
order byorder by 会对数据进行全局排序,和oracle和mysql等数据库中的order by 效果一样,它只在一个reduce中进行所以数据量特别大的时候效率非常低。而且当设置 :set hive.mapred.mode=strict的时候不指定limit,执行select会报错,如下:LIMIT must also be specified。 sort bysort by 是单独在各自的reduce中进行排序,所以并不能保证全局有序,一般和distribute by .
2020-06-14 15:11:38 1605
原创 hive 查找函数并查看函数使用方法
1. 查看month 相关的函数hive (felix)> show functions like '*date*';OKtab_namecurrent_datedate_adddate_formatdate_subdatediffto_dateTime taken: 0.017 seconds, Fetched: 6 row(s)2.查看 add_months 函数的用法hive (felix)> desc function datediff;OKtab.
2020-06-13 16:25:11 1050
原创 HIVE 设置变量以支持事务
-- 设置变量以支持事务https://cloud.tencent.com/developer/article/1433209-- 设置变量以支持事务set hive.support.concurrency=true;set hive.exec.dynamic.partition.mode=nonstrict;set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;set hive.compactor.ini.
2020-06-13 16:07:43 244
原创 hive_取两次记录的时间差lead/lag/first_value/last_value函数使用 及用户在各个页面停留时间计算示例
这几个函数不支持WINDOW子句1) LEAD(col,n,DEFAULT) 用于统计窗口内往下第n行值-- 第一个参数为列名,第二个参数为往下第n行(可选,默认为1),第三个参数为默认值(当往下第n行为NULL时候,取默认值,如不指定,则为NULL)2)LAG(col,n,DEFAULT) 用于统计窗口内往上第n行值-- 第一个参数为列名,第二个参数为往上第n行(可选,默认为1),第三个参数为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL)3)FIRST_V...
2020-06-13 13:12:50 2097
原创 Hive笔记之collect_list/collect_set/concat_ws/concat 列转行函数详解
Hive笔记之collect_list/collect_set/concat_ws/concat函数(列转行)create table t_visit_video ( username string, video_name string) partitioned by (day string)row format delimited fields terminated by ',';vi /home/hadoop/t_visit_video.txt 张三,大唐双龙传李四.
2020-06-13 11:44:57 3909
原创 【hive 日期函数 大全】Hive常用日期函数整理 史上最全
【hive 日期函数】Hive常用日期函数整理注意:1) hive 没有 to_char函数 2) HIVE 日期函数只识别 年-月-日 不能识别 年-月 ,所以处理月份的时候需要特殊处理1)hive 字符创拼接:CONCAT(string A, string B…)SELECT CONCAT('2019','05','11');2) 字符截取select substr(add_months(from_unixtime((unix_timestamp('2015-09','yyyy-M.
2020-06-12 22:31:25 8502
原创 hive/Oracle版本 SQL 用户连续登录天数计算,及最大最小登录时间
CREATE TABLE tm_login_log( user_id BIGINT, login_date date)ROW FORMAT delimited fields terminated by ',' stored as textfile;-- 这里的数据是最简化的情况,每个用户每天只有一条登录信息,vi /home/hadoop/login_log.txt1001,2017-01-011001,2017-01-021001,2017-01-041001,2017.
2020-06-11 22:11:56 852
原创 Git的基本使用汇总
--1.git基本使用git add --文件修改添加到暂存区git log --pretty=oneline --显示从最近到最远的提交日志git reset --hard HEAD^ --以把暂存区的修改撤销掉(unstage),重新放回工作区;HEAD是当前版本,上一个版本就是HEAD^,上上一个版本...
2020-04-15 20:33:31 123
原创 Python 使用virtualenv 开发环境虚拟化配置
开发Python应用程序的时候,系统安装的Python3只有一个版本:3.7。所有第三方的包都会被pip安装到Python3的site-packages目录下。如果我们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。如果应用A需要cx_Oracle 5.3,而应用B需要cx_Oracle 7.2 怎么办?这种情况下,每个应用可能需要各自拥有...
2020-04-14 17:18:57 214
原创 数据仓库数据模型的设计
数据仓库数据模型的设计1.方法选择数据模型是对现实世界数据特征的抽象,数据模型的设计方法就是对数据进行归纳和概括的方法。目前业界主要的模型设计方法论有两种,一是数据仓库之父 Bill Inmon 提出的范式建模方法,又叫 ER 建模,主张站在企业角度自上而下进行数据模型构建;二是 Ralph Kimball 大师倡导的维度建模方法,主张从业务需求出发自下而上构建数据模型。大数据环境下...
2020-03-22 23:19:16 918
原创 数据仓库的模型设计流程
数仓模型设计的整体流程涉及需求调研、模型设计、开发测试、模型上线四个主要环节,且规范设计了每个阶段的输出与输入文档。需求调研:收集和理解业务方需求,就特定需求的口径达成统一,在对需求中涉及到的业务系统或系统模块所承担的功能进行梳理后进行表字段级分析,并对数据进行验证,确保现有数据能够支持业务需求。 模型设计:根据需求和业务调研结果对模型进行初步归类,选择合适的主题域进行模型存放;确...
2020-03-22 22:59:56 2590 1
原创 数据库的设计(E-R图,数据库模型图,三大范式)
一.数据库设计的概念数据库设计是将数据库中的数据实体及这些数据实体之间的关系,进行规划和结构化的过程.二.数据库设计的重要性如果一个数据库没有进行一个良好的设计,那么这个数据库完成之后他的缺点是:1.效率会很低2更新和检索数据时会出现很多问题,反之,一个数据库被尽心策划了一番,具有良好的设计,那他的优点是:1.效率会很高.2.便于进一步扩展.3.使得应用程序的开发变...
2020-01-19 13:51:36 12238
原创 Spark: 数据读取与保存
Spark 的数据读取及数据保存可以从两个维度来作区分:文件格式以及文件系统。文件格式分为:Text 文件、Json 文件、Csv 文件、Sequence 文件以及 Object 文件;文件系统分为:本地文件系统、HDFS、HBASE 以及数据库。4.1.1 文本 文件1)数据读取:textFile(String) scala> val hdfsFile = sc.textFile...
2019-12-20 15:47:17 934
原创 Oracle常用日期操作
1. 'MON-YY' 转换为日期SELECT t.period_name, TO_CHAR(TO_DATE(t.period_name, 'MON-YY', 'NLS_DATE_LANGUAGE = American'), 'YYYYMM') FROM...
2019-12-17 11:06:35 494
原创 Spark算子:RDD键值转换操作–cogroup、join
cogroup ##参数为1个RDD def cogroup[W](other: RDD[(K, W)]): RDD[(K, (Iterable[V], Iterable[W]))] def cogroup[W](other: RDD[(K, W)], numPartitions: Int): RDD[(K, (Iterable[V], Iterab...
2019-12-06 17:00:55 251
原创 Spark算子,RDD键值转换操作 combineByKey
查看源代码会发现combineByKey定义如下: def combineByKey[C](createCombiner: (V) => C, mergeValue: (C, V) => C, mergeCombiners: (C, C) => C): RDD[(K, C)]= { ...
2019-12-06 14:24:13 341
原创 Spark算子,RDD键值转换操作 partitionBy、flatMapValues、mapValues
partitionBydef partitionBy(partitioner: Partitioner): RDD[(K, V)]该函数根据partitioner函数生成新的ShuffleRDD,将原RDD重新分区。scala> var rdd1 = sc.makeRDD(Array((1,"A"),(2,"B"),(3,"C"),(4,"D")),2)rdd1: org.a...
2019-12-05 10:42:10 363 1
原创 轻量级虚拟化Docker
一、Docker基本介绍Docker发端于一个名为dotcloud的开源项目;随着编写者不断挖掘它的潜力,它迅速变成了一个炙手可热的项目。它由GO语言编写的,并且只支持Linux。它基于Linux容器(LxC)来创建一个虚拟环境。Docker不会通过建立独有的操作系统、进程和对硬件进行模拟来创建属于自己的虚拟机。请注意:虚拟环境VE(Virtual Environment)和虚拟机(VM)很不...
2019-12-05 10:27:07 738
原创 Spark算子:几种不同的RDD创建操作
通过HiveContext创建RDDApache Hive 是 Hadoop 上的一种常见的结构化数据源。Hive 可以在 HDFS 内或者在其他 存储系统上存储多种格式的表。这些格式从普通文本到列式存储格式,应有尽有。Spark SQL 可以读取 Hive 支持的任何表。import org.apache.spark.sql.hive.HiveContextval hiveCtx =...
2019-12-04 14:06:02 260
原创 Spark的fold()和aggregate()函数
最近在学习spark,理解这两个函数时候费了一些劲,现在记录一下。1. rdd.fold(value)(func)说到fold()函数,就不得不提一下reduce()函数,他俩的区别就在于一个初始值。reduce()函数是这样写的:rdd.reduce(func)参数是一个函数,这个函数的对rdd中的所有数据进行某种操作,比如:val l = List(1,2,3,4)...
2019-12-04 12:09:26 333
原创 Flume构建日志采集系统
Flume构建日志采集系统flume,kafka扩展阅读:https://www.cnblogs.com/oubo/archive/2012/05/25/2517751.html一、Flume介绍1.Flume特点Flume是一个分布式的、可靠的、高可用的海量日志采集 、聚合和传输的系统 数据流模型:Source-Channel-Sink 事务机制保证消息传递的可靠性 内...
2019-11-28 11:50:24 791 1
原创 Apache Flume 入门教程
概要Apache Flume 是一个分布式,可靠且可用的系统,用于有效地从许多不同的源收集、聚合和移动大量日志数据到一个集中式的数据存储区。Flume 的使用不只限于日志数据。因为数据源可以定制,flume 可以被用来传输大量事件数据,这些数据不仅仅包括网络通讯数据、社交媒体产生的数据、电子邮件信息等等。Apache Flume 是 Apache 基金会的顶级项目,在加入 Apache...
2019-11-28 11:45:57 250
原创 列存储格式Parquet浅析
Apache Parquet是Hadoop生态圈中一种新型列式存储格式,它可以兼容Hadoop生态圈中大多数计算框架(Hadoop、Spark等),被多种查询引擎支持(Hive、Impala、Drill等),并且它是语言和平台无关的。Parquet最初是由Twitter和Cloudera(由于Impala的缘故)合作开发完成并开源,2015年5月从Apache的孵化器里毕业成为Apache顶级项目...
2019-11-26 21:21:55 1005
转载 Apache Avro使用入门指南
Avro有C, C++, C#, Java, PHP, Python, and Ruby等语言的实现,本文只简单介绍如何在Java中使用Avro进行数据的序列化(data serialization)。本文使用的是Avro 1.7.4,这是写这篇文章时最新版的Avro。读完本文,你将会学到如何使用Avro编译模式、如果用Avro序列化和反序列化数据。一、准备项目需要的jar包 文本...
2019-11-26 21:09:10 730
原创 Avro系列之详细介绍(1)
Avro是Hadoop的一个子项目,也是Apache中的一个独立项目,它是一个基于二进制数据传输高性能的中间件。在Hadoop的其他项目中(Hbase,Hive)的客户端与服务端的数据传输中被大量采用。听上去很给力啊?!Avro是一个数据序列化的系统,它可以将数据结构或对象转化成便于存储或传输的格式,Avro设计之初就定位为用来支持数据密集型应用,适用于远程或本地大规模数据的存储于交换,Avr...
2019-11-26 21:02:08 1237
转载 Oracle 12c及以上版本json_table
运行环境:SQLPLUS, SERVEROUTPUT已打开我有一张用户表,包含一个JSON列,里面是他们的社交媒体资料:create table qz_users ( id integer primary key, username varchar2(10), profiles varchar2(4000) check (profiles is json))/...
2019-11-08 11:13:12 5816 1
原创 ORACLE 表数据去重ROWID
如果一张表中存在数据重复,如何快速高效去重?通过rowid去重效率最高,demo如下:EMPLOYEE_ID 为去重后唯一关键字DELETE FROM SCOTT.F_EMPLOYEEWHERE ROWID NOT IN (SELECT MIN(ROWID) FROM ISCOTT.F_EMPLOYEE gr...
2019-11-06 13:06:27 527
Hadoop构建数据仓库实践_王雪迎PDF原版
2019-03-11
公共仓库元模型开发指南_彭蓉
2018-10-12
公共仓库元模型_数据仓库集成标准导论
2018-10-12
Oracle PLSQL程序设计 上 (第五版)_高清版
2018-07-18
bbed 10g x64 bit
2018-07-18
PLSQL developer 12.0.5+注册机+client
2018-07-18
Oracle Database 11gR2性能调整与优化
2018-07-18
Oracle查询优化改写 技巧与案例_高清带书签版本
2018-07-18
数据仓库工具箱:维度建模的完全指南(第二版翻译好)
2018-07-18
剑破冰山__Oracle开发艺术
2017-11-20
数据仓库工具箱 维度建模权威指南 第3版
2017-11-20
OCA Oracle Database 11g Administrator Certified Associate Study Guide
2014-08-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人