自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Hive面试题

1. 什么是Hive hive是基于hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。 2. 为什么使用Hive 直接使用hadoop所面临的问题: ​ 人员学习成本太高 项目周期要求太短 MapReduce实现复杂查询逻辑开发难度太大 H...

2019-12-16 07:00:03

阅读数 141

评论数 0

原创 Hadoop面试题

Hadoop 1. 什么是Hadoop Hadoop是Apache旗下的一个用java语言实现的开源软件框架,是一个开发和运行处理大规模数据的软件平台。允许使用简单的编程模型在大量计算机集群上对大型数据集进行分布式处理。 狭义上:指Apache这款开源框架,它的核心组件有: HDFS(分布式...

2019-12-14 23:14:17

阅读数 140

评论数 0

原创 HBASE面试题

1. HBase是什么 hbase是一个高可靠,高性能,面向列,可伸缩的分布式存储系统,利用hbase技术可在廉价PC Server搭建起大规模结构化存储系统。 2. hbase集群架构是怎样的 client:包含访问hbase的接口,client维护着一些cache来加快对hbase的访问,...

2019-12-04 06:22:57

阅读数 460

评论数 0

原创 flume面试题

1. flume是什么 flume是Cloudera提供的一个高可用,高可靠,分布式的海量日志采集,聚集和传输的软件。 flume的核心是把数据从数据源(source)收集过来,再把收集到的数据送到指定的目的地(sink),在送到目的地之前会先缓存数据(channel),带数据真正送到目的地(s...

2019-11-25 10:27:14

阅读数 147

评论数 0

原创 kafka面试题

1. kafka是什么 Apache Kafka是由Apache开发的一种发布订阅消息系统,它是一个分布式的、分区的和可复制的提交日志服务。 2. kafka项目的目的是什么 为处理实时数据提供一个统一、高通量、低延时的平台。 3. kafka相对于传统消息系统有哪三个区别 Kafka持久化日志...

2019-11-25 06:01:48

阅读数 151

评论数 0

原创 SQL进阶教程——SQL中的层级(2-10)

1. 谓词逻辑中的层级,集合论中的层级 谓词逻辑中的阶是为了区分集合论中的元素和集合,以及谓词逻辑中的参数和谓词 GROUP BY中的阶与元素和集合的区别有关,因此属于集合论中的阶 2. 为什么聚合后不能再引用原表中的列 在对表进行聚合的时候,只能在SELECT子句中写下面三种内容 聚合键 聚合...

2019-11-07 04:01:06

阅读数 139

评论数 0

原创 SQL进阶教程——消灭NULL委员会(2-9)

1. 为什么NULL如此惹人讨厌 在进行SQL编码时,必须考虑违反人类直觉的三指逻辑 在指定 IS NULL 不会用到索引,因而SQL语句会执行性能低下 如果四则运算以及SQL函数的参数中包含NULL,会引起“NULL的传播” 在接受SQL查询的宿主语言中,NUL的处理方法没有统一标准 与一般的...

2019-11-07 03:52:49

阅读数 142

评论数 0

原创 SQL进阶教程——人类的逻辑学(2-8)

1. 逻辑学的革命 排中律:A或者非A总有一个成立,古典逻辑学中,作为神,无论多难的问题都能瞬间解决,因此古典逻辑学被称为“神的逻辑学” 2. 人类的逻辑学 数据库的使用者当然是人类,而不是神。因此,数据的表达方式也应该基于有限而且不完善的人类的认知,而不是神的完美无缺的认知。这就是数据库采用三指...

2019-11-07 03:40:41

阅读数 142

评论数 0

原创 SQL进阶教程——从面向过程思维向申明式思维,面向集合思维转变的7个关键点(2-6)

前言 SQL中没有赋值或者循环的处理,数据也不以记录为单位进行处理,而已集合为单位进行处理 1. 用CASE表达式代替IF语句和CASE语句。SQL更像一种函数式语言 之所以叫它“CASE表达式”而不是“CASE语句”,是因此CASE表达式与1+1一样,都是表达式,在执行时会被整体当做一个值来处理...

2019-11-07 03:28:47

阅读数 139

评论数 0

原创 SQL进阶教程——GROUP BY 和PARTITION BY(2-5)

1. 类 group by和partition by的区别在于,group by会在分类之后进行聚合操作 划分出的子集都是非空集合 所以子集的并集等于划分之前的集合 任何两个子集之间都没有交集 满足以上三个性质的各子集称为“类” 通过对3取余给自然数集合N分类后,我们会得到下面三个类 余0的...

2019-11-07 02:58:08

阅读数 140

评论数 0

原创 SQL进阶教程——地址这一巨大怪物(2-4)

1. 前言 在关系模型诞生之前的研究工作中,最大动机是明确区分数据管理中的逻辑层和物理层。我们可以把它叫做数据独立性目标——Codd 一般来说到关系数据库中没有指针时,并不是说在物理层也完全没有指针。相反,在物理层,指针时存在的。但是,就像前面说过的那样,在关系系统中,物理层的详细存储信息对用户是...

2019-11-07 02:36:40

阅读数 140

评论数 0

原创 SQL进阶教程——开始于关系,结束于关系(2-3)

1. 从运算角度审视集合 封闭性:运算的输入和输出都是关系 数学会根据“对于什么运算是封闭的”这样的标准,将集合分为各种类型,对于某种运算封闭的集合在数学上称为“代数结构” 群:对加法和减法(或者乘法和除法)封闭 环:对加法,减法,乘法封闭 域:对加法,减法,乘法,除法封闭,即可以自由进行四则运...

2019-11-07 02:12:44

阅读数 145

评论数 0

原创 SQL进阶教程——为什么叫“关系”模型(2-2)

1. 关系的定义 “为什么叫它关系模型,而不叫他表模型?” “链接数据结构”指的是使用指针连接数据的链表结构,这是分层模型和网状模型数据结构流行的时期特有的 关系和表的确相似,实质却不相同 关系中不允许存在重复的元组,而表中可以存在 关系中的元组没有从上往下的顺序,而表中的行有从上往下的顺序 ...

2019-11-07 01:47:04

阅读数 143

评论数 0

原创 SQL进阶教程——关系型数据库的历史(2-1)

1. 前言 关系模型的创始人是E.F.Codd,他在1969年发表的论文《大型数据库中关系存储的可推导性,冗余与一致性》,这篇里程碑的论文奠定了关系模型的理论基础 2. 两篇论文 写于1969年的《大型数据库中关系存储的可推导性,冗余与一致性》 写于1970年的《大型功效数据库的关系基础》 3...

2019-11-07 00:52:00

阅读数 139

评论数 0

原创 SQL进阶教程——SQL编程方法(第十二章)

1. 前言 随着编程语言从注重“更容易让机器理解”的低级语言(如计算机语言和编程语言)向“更容易让人类理解”的高级语言发展,人们对“编程语言应该是一种人类可以读得懂,写得出的语言”这样的观点越来越认同,于是从认知心理学的角度研究编程风格的领域应运而生。(认知心理学:能跑起来就行,效率才是一切) 2...

2019-11-06 03:20:09

阅读数 155

评论数 0

原创 SQL进阶教程——让SQL飞起来(第十一章)

1. 前言 本节主要介绍一些使SQL执行速度更快,消耗内存更少的技巧。查询速度慢并不只是因为SQL本身问题,还可能是因为内存分配不佳,文件结构不合理等其他原因。 2. 使用高效的查询 在SQL中,很多时候不同代码能够得出相同结果。从理论上来说,得到相同的不同代码应该有相同的性能,但遗憾的是,查询优...

2019-11-05 03:57:35

阅读数 148

评论数 0

原创 SQL进阶教程——HAVING子句又回来了(第十章)

1. 前言 学习HAVING子句的用法是帮主我们顺序的忘掉面向过程语言的思考方式并理解SQL面向集合特性的有效的方法。这是因为,HAVING子句的处理对象是集合而不是记录,所以只有习惯了面向集合的思考方式,才能真正的学好它 2. 各位,全体点名 Teams member(队员) tea...

2019-11-04 22:57:32

阅读数 144

评论数 0

原创 SQL进阶教程——用SQL处理数列(第九章)

1.前言 SQL语言在处理数据时默认地不考虑顺序。因此,如果遇到了需要考虑顺序的情况,处理方法与面向过程语言及文件系统的处理方法很不一样。本节将以数列为例介绍一下SQL的处理方法,并且挖掘出隐藏在背后的基本原理。 2.生成连续的编号 Digits digit( 数字 ) 0 ...

2019-11-04 19:20:35

阅读数 145

评论数 0

原创 SQL进阶教程——EXISTS谓词的用法(第八章)

1. 前言 支撑SQL和关系数据库的基础理论主要有两个:一个是数学领域的集合论;另一个是作为现代逻辑学标准体系的谓词逻辑。 2. 理论篇 什么是谓词 返回值为真值的函数 实体的阶层 一介谓词:输入值为行(=或者between) 二阶谓词:输入值为行的集合(exists) 三阶谓词:输入值为...

2019-11-01 01:22:49

阅读数 150

评论数 0

原创 SQL进阶教程——用SQL进行集合运算(第七章)

1. 前言 集合论是SQL语言的根基——这是贯穿全书主题之一。因为他的这个特性,SQL也被称为面向集合语言。只有从集合的角度思考,才能明白SQL的强大。 2. 集合运算的几个注意事项 SQL能操作具有重复行的集合,可以通过可选项ALL来支持。集合运算符为了排除重复行,默认的会发生排序,而加上可选...

2019-11-01 00:29:52

阅读数 149

评论数 0

原创 SQL进阶教程——用关联子查询比较行与行(第六章)

1. 前言 使用SQL对同一行数据进行列间比较很简单,只需要在WHERE子句里写上比较条件就可以了。但是,对不同行数据进行列间的比较却没那么简单。然而,这并不是说我们不能用SQL进行行与行之间的比较。 使用SQL进行行间比较时,发挥主要作用的技术是关联子查询,特别是与自连接结合的“关联子查询”。 ...

2019-10-31 23:01:37

阅读数 147

评论数 0

原创 SQL进阶教程——外连接的用法(第五章)

1. 前言 很多人对SQL有一个误解:他是一种用于生成报表的语言。确实SQL在生成各种定制化或非定制化报表或统计表里有着广泛的应用。这本身并没有什么问题,但“不幸”的是,数据库工程师开始要求SQL具备并非他原来用途的功能——格式转换。说起来,SQL终究只是主要用于查询数据的语言而已。 2. 用外连...

2019-10-30 22:27:41

阅读数 150

评论数 0

原创 SQL进阶教程——HAVING子句的力量(第四章)

1. 用HAVING子句进行子查询:求众数 Graduate(毕业生表) name(名字) income(收入) 桑普僧 400000 麦克 30000 怀特 20000 阿诺德 2000 史密斯 20000 劳伦斯 15000 哈德逊 15000 ...

2019-10-30 01:29:09

阅读数 154

评论数 0

原创 SQL进阶教程——三指逻辑和NULL(第三章)

1. 关于三值逻辑的理论 1.1. 两种NULL 两种NULL分别指的是“未知的”和“不适用的”,“不知道戴墨镜的人眼睛是什么颜色”,这就是未知的;“不知道冰箱的眼睛是什么颜色”,这就是“不适用”。 总结一下:“未知”指的是“虽然现在不知道,但加上某些条件后可以知道”;“不适用”指的是“无论怎么努...

2019-10-29 22:56:56

阅读数 173

评论数 0

原创 SQL进阶教程——自连接的用法(第二章)

1. 什么是自连接 针对相同的表进行的连接被称为“自连接”,一旦熟练掌握自连接技术,我们便能快速的解决很多问题。但是,其处理过程不太容易想象,以至于常常被人们敬而远之。 理解自连接不仅可以让我们学会实际工作中能用到的技能,还能增进我们对“面向集合”这一SQL语言特征的理解。 2. 可重排列,排列,...

2019-10-29 13:45:39

阅读数 152

评论数 0

原创 SQL进阶教程——CASE表达式(第一章)

1. CASE表达式概述 CASE表达式是从SQL-92标准开始被引入的,可能因为他是相对比较新的技术,所以尽管使用起来非常便利,但其真正的价值却并不怎么为人所知。很多人不用它,或者用他的简版函数,例如DECODE(Oracle),IF(MySQL)等。如果能用好它,那么SQL能解决的问题就会更广...

2019-10-28 19:50:00

阅读数 163

评论数 0

原创 SQL基础教程——GROUPING运算符(第八章第二节)

1、ROLLUP——同时得出合计和小计 select product_type,sum(sale_price) AS sum_price from product group by rollup(product_type); 2、GROUPING函数——让NULL更加容易分辨 --该函数在其参数...

2019-09-07 11:15:39

阅读数 151

评论数 0

原创 SQL基础教程——窗口函数(第八章第一节)

1、窗口函数的语法 <窗口函数> over ([partition by <列清单>] order by <排序用列清单>) 能够作为窗口函数的聚合函数 rank,dense_rank,row_number等专用窗口函数 SELECT product_na...

2019-09-02 13:46:28

阅读数 160

评论数 0

原创 SQL基础教程——联结(第七章第二节)

1、内联结——INNER JOIN SELECT SP.shop_id,sp.shop_name,sp.product_id,p.product_name,p.sale_price from shopproduct AS sp inner join product AS p on sp.produ...

2019-09-02 13:27:13

阅读数 146

评论数 0

原创 SQL基础教程——表的加减法(第七章第一节)

1、表的加法——UNION SELECT product_id,product_name FROM Product UNION SELECT product_id,product_name FROM product2; 注意: 1、作为运算对象的记录的列数必须相同 2、作为运算对象的记录中列的类...

2019-09-02 13:16:44

阅读数 192

评论数 0

原创 SQL基础教程——case表达式(第六章第三节)

1、case表达式 分为简单case表达式和搜索case表达式两种 SELECT product_name, CASE WHEN product_type='衣服' THEN 'A:' || product_type ELSE NUL...

2019-09-02 13:08:26

阅读数 186

评论数 0

原创 SQL基础教程——谓词(第六章第二节)

1、什么是谓词 谓词的返回值全都是真值(true/false/unknown) 2、like谓词-字符串的部分一致查询 2.1、前方一致查询 select * from samplelike where strcol like 'ddd%'; 2.2、中间一致查询 selec...

2019-09-02 13:02:15

阅读数 159

评论数 0

原创 SQL基础教程——各种各样的函数(第六章第一节)

1、函数的种类 算术函数 字符串函数 日期函数 转换函数 聚合函数 2、算数函数 2.1、四则运算 / 2.2、ABS-绝对值 SELECT m,abs(m) AS abs_col from sampleMath 注意: 1、绝大多数函数对于null都返回n...

2019-09-02 12:46:34

阅读数 149

评论数 0

原创 SQL基础教程——关联子查询(第五章第三节)

1、关联子查询 SELECT product_type,product_name,sale_price FROM product AS P1 WHERE sale_price>( select avg(sale_price) from product AS p2 where p1.produ...

2019-09-02 12:15:39

阅读数 146

评论数 0

原创 SQL基础教程——子查询(第五章第二节)

1、子查询和视图 视图并不是用来保存数据的,而是通过保存读取数据的SELECT语句的方法来为用户提供便利。 SELECT product_type,cnt_product FROM (SELECT product_type,COUNT(*) AS cnt_product FROM product ...

2019-09-02 10:35:42

阅读数 148

评论数 0

原创 SQL基础教程——视图(第五章第一节)

1、什么是视图 使用视图时并不会讲数据保存到存储设备中,而且也不会讲数据保存到其他任何地方。实际上视图保存的是select语句。我们从视图中读取数据时,视图会在内部执行该select语句并创建出一张临时表。 表中保存的是实际数据,视图中保存的是select语句。 2、视图的优点 视图无需保存数据...

2019-09-02 10:20:04

阅读数 147

评论数 0

原创 SQL基础教程——事务(第四章第四节)

1、什么是事务 事务就是需要在同一个处理单元中执行的一系列更新处理的集合。 2、创建事务 --postgreSQL BEGIN TRANSACTION; UPDATE product SET sale_price=sale_price-1000 WHERE product_name='...

2019-08-25 17:30:27

阅读数 191

评论数 0

原创 SQL基础教程——数据的更新(UPDATE语句的使用方法)(第四章第三节)

1、UPDATE语句的基本语句 UPDATE product SET regist_date ='2009-10-10'; 2、指定条件的UPDATE语句(搜索型UPDATE) UPDATE product SET sale_price = sale_price * 10 W...

2019-08-25 17:14:00

阅读数 173

评论数 0

原创 SQL基础教程——数据的删除(DELETE语句的使用方法)(第四章第二节)

1、drop table语句和delete语句 drop table语句可以将表完全删除 delete语句会留下表,而删除表中的全部数据 2、delete语句的基本语句 DELETE FROM product; 3、指定删除对象的delete语句(搜索型delete) DELETE FROM...

2019-08-25 17:05:39

阅读数 154

评论数 0

原创 SQL基础教程——数据的插入(INSERT语句的使用方法)(第四章第一节)

1、INSERT语句的基本语法 INSERT INTO productIns (product_id,product_name) VALUES ('001','体血衫') --执行一次INSERT语句会插入一行数据 2、列清单的省略 对表进行全列INSER...

2019-08-25 16:57:30

阅读数 167

评论数 0

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