partition

over partition by与group by 的区别

ぃ、小莉子 提交于 2020-01-30 01:48:17
今天看到一个老兄的问题, 大概如下: 查询出部门的最低工资的userid 号 表结构: D号 工资 部门 userid salary dept 1 2000 1 2 1000 1 3 500 2 4 1000 2 有一个高人给出了一种答案: SELECT MIN (salary) OVER (PARTITION BY dept ) salary, dept FROM ss 运行后得到: 1000 1 1000 1 500 2 500 2 楼主那位老兄一看觉得很高深。大叹真是高人阿~ 我也觉得这位老兄实在是高啊。 但我仔细研究一下发现那位老兄对PARTITION BY的用法理解并不深刻。并没有解决楼主的问题。 大家请看我修改后的语句 SELECT userid,salary,dept,MIN (salary) OVER (PARTITION BY dept ) salary FROM ss 运行后的结果: userid salary dept MIN (salary) OVER (PARTITION BY dept ) 1 2000 1 1000 2 1000 1 1000 3 500 2 500 4 1000 2 500 大家看出端倪了吧。 高深的未必适合。 一下是我给出的答案: SELECT * FROM SS INNER JOIN (SELECT MIN(SALARY) AS

over partition by与group by 的区别

放肆的年华 提交于 2020-01-30 01:47:49
over partition by与group by 的区别 今天看到一个老兄的问题, 大概如下: 查询出部门的最低工资的userid 号 表结构: D号 工资 部门 userid salary dept 1 2000 1 2 1000 1 3 500 2 4 1000 2 有一个高人给出了一种答案: SELECT MIN (salary) OVER (PARTITION BY dept ) salary, dept FROM ss 运行后得到: 1000 1 1000 1 500 2 500 2 楼主那位老兄一看觉得很高深。大叹真是高人阿~ 我也觉得这位老兄实在是高啊。 但我仔细研究一下发现那位老兄对PARTITION BY的用法理解并不深刻。并没有解决楼主的问题。 大家请看我修改后的语句 SELECT userid,salary,dept,MIN (salary) OVER (PARTITION BY dept ) salary FROM ss 运行后的结果: userid salary dept MIN (salary) OVER (PARTITION BY dept ) 1 2000 1 1000 2 1000 1 1000 3 500 2 500 4 1000 2 500 大家看出端倪了吧。 高深的未必适合。 一下是我给出的答案: SELECT * FROM SS

over partition by与group by 的区别

人走茶凉 提交于 2020-01-30 01:47:08
今天看到一个老兄的问题, 大概如下: 查询出部门的最低工资的userid 号 表结构: D号 工资 部门 userid salary dept 1 2000 1 2 1000 1 3 500 2 4 1000 2 有一个高人给出了一种答案: SELECT MIN (salary) OVER (PARTITION BY dept ) salary, dept FROM ss 运行后得到: 1000 1 1000 1 500 2 500 2 楼主那位老兄一看觉得很高深。大叹真是高人阿~ 我也觉得这位老兄实在是高啊。 但我仔细研究一下发现那位老兄对PARTITION BY的用法理解并不深刻。并没有解决楼主的问题。 大家请看我修改后的语句 SELECT userid,salary,dept,MIN (salary) OVER (PARTITION BY dept ) salary FROM ss 运行后的结果: userid salary dept MIN (salary) OVER (PARTITION BY dept ) 1 2000 1 1000 2 1000 1 1000 3 500 2 500 4 1000 2 500 大家看出端倪了吧。 高深的未必适合。 一下是我给出的答案: SELECT * FROM SS INNER JOIN (SELECT MIN(SALARY) AS

Linux磁盘管理精讲

守給你的承諾、 提交于 2020-01-29 22:09:51
博文目录 一、磁盘基础 1、磁盘结构 二、磁盘分区表示 1、磁盘分区结构 2、文件系统类型 三、规划硬盘分区 1、检测并确认新硬盘 2、规划硬盘中的分区 一、磁盘基础 1、磁盘结构 硬盘存储容量=磁头数x磁道(柱面)数x每道扇区数x每扇区字节数 可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域 1)硬盘的物理结构 盘片:硬盘有多个盘片,每盘片2面; 磁头:每面一个磁头; 2)硬盘的数据结构 扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据; 磁道:同一盘片不同半径的同心圆; 柱面:不同盘片相同半径构成的圆柱面; 3)磁盘接口类型 IDE(并口):基本上已经淘汰; SATA(串口):速度快,纠错能力强,目前主流接口,应用广泛; SCSI:转速快,CPU占用资源低,支持热插拔; 4)MBR主引导记录 MBR(Master Boot Record)位于硬盘第一个物理扇区处;MBR中包含硬盘的主引导程序和硬盘分区表;分区表有4个分区记录区,每个分区记录区占16个字节。 二、磁盘分区表示 Linux中将硬盘、分区等设备均表示为文件。 IDE:/dev/hda5,硬盘的顺序号用a~z表示,分区的顺序号用数字表示,1~4表示为主分区,5以后表示为逻辑分区,计算机总共两块IDE接口磁盘。 SATA,SCSI:/dev/sdb2,计算机总共三块SATA或者SCSI接口的硬盘。 应用举例如下

请谈谈写入消息中间件的数据,如何保证不丢失?【石杉的架构笔记】

我的未来我决定 提交于 2020-01-29 16:40:23
面试官:请谈谈写入消息中间件的数据,如何保证不丢失?【石杉的架构笔记】 欢迎关注个人公众号:石杉的架构笔记(ID:shishan100) 周一至周五早8点半!精品技术文章准时送上! 精品学习资料获取通道,参见文末 目录 1、背景引入 2、Kafka分布式存储架构 3、Kafka高可用架构 4、画图复现Kafka的写入数据丢失问题 5、Kafka的ISR机制是什么? 6、Kafka写入的数据如何保证不丢失? 7、总结 (1)背景引入 这篇文章,给大家聊一下写入Kafka的数据该如何保证其不丢失? 看过之前的文章面试官:消息中间件如何实现每秒几十万的高并发写入?的同学,应该都知道写入Kafka的数据是会落地写入磁盘的。 我们暂且不考虑写磁盘的具体过程,先大致看看下面的图,这代表了Kafka的核心架构原理。 (2)Kafka分布式存储架构 那么现在问题来了,如果每天产生几十TB的数据,难道都写一台机器的磁盘上吗?这明显是不靠谱的啊! 所以说,这里就得考虑数据的分布式存储了,其实关于消息中间件的分布式存储以及高可用架构,之前的一篇文章面试一线互联网大厂?那这道题目你必须得会!也分析过了,但是这里,我们结合Kafka的具体情况来说说。 在Kafka里面,有一个核心的概念叫做“Topic”,这个topic你就姑且认为是一个数据集合吧。 举个例子

Kafka

﹥>﹥吖頭↗ 提交于 2020-01-29 16:21:59
Kafka架构图 kafka名词解释 在一套kafka架构中有多个Producer,多个Broker,多个Consumer,每个Producer可以对应多个Topic,每个Consumer只能对应一个ConsumerGroup。 整个Kafka架构对应一个ZK集群,通过ZK管理集群配置,选举Leader,以及在consumer group发生变化时进行rebalance。 名称 解释 Broker 消息中间件处理节点,一个Kafka节点就是一个broker,一个或者多个Broker可以组成一个Kafka集群消息中间件处理节点,一个Kafka节点就是一个broker,一个或者多个Broker可以组成一个Kafka集群 Topic 主题,Kafka根据topic对消息进行归类,发布到Kafka集群的每条消息都需要指定一个topic Producer 消息生产者,向Broker发送消息的客户端 Consumer 消息消费者,从Broker读取消息的客户端 ConsumerGroup 每个Consumer属于一个特定的Consumer Group,一条消息可以发送到多个不同的Consumer Group,但是一个Consumer Group中只能有一个Consumer能够消费该消息 Partition 物理上的概念,一个topic可以分为多个partition

Hive常规操作-DML操作

橙三吉。 提交于 2020-01-29 07:07:41
加载文件数据到表中 LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] 0: jdbc:hive2://CentOS:10000 > load data local inpath '/root/t_employee' overwrite into table t_employee partition ( deptno = '10' ) ; 查询结果插入表中 将查询结果插入表中 INSERT OVERWRITE TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...) [IF NOT EXISTS]] select_statement1 FROM from_statement; --覆盖 INSERT INTO TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...)] select_statement1 FROM from_statement;--追加 { "EMPNO" : 7369 , "ENAME" : "SMITH" , "JOB" : "CLERK" ,

MySQL table partition by month

南楼画角 提交于 2020-01-29 01:56:33
问题 I have a huge table that stores many tracked events, such as a user click. The table is already in the 10's of millions, and its growing larger everyday. The queries are starting to get slower when i try to fetch events from a large timeframe, and after reading quite a bit on the subject i understand that partitioning the table may boost the performance. What i want to do is partition the table on a per month basis. I have only found guides that show how to partition manually each month, is

kafka性能调优

只愿长相守 提交于 2020-01-28 23:40:24
https://blog.csdn.net/vegetable_bird_001/article/details/51858915 主要优化原理和思路 kafka是一个高吞吐量分布式消息系统,并且提供了持久化。其高性能的有两个重要特点: 利用了磁盘连续读写性能远远高于随机读写的特点; 并发,将一个topic拆分多个partition。 要充分发挥kafka的性能,就需要满足这两个条件 kafka读写的单位是partition,因此,将一个topic拆分为多个partition可以提高吞吐量。但是,这里有个前提,就是不同partition需 要位于不同的磁盘(可以在同一个机器)。如果多个partition位于同一个磁盘,那么意味着有多个进程同时对一个磁盘的多个文 件进行读写,使得操作系统会对磁盘读写进行频繁调度,也就是破坏了磁盘读写的连续性。 在linkedlin的测试中,每台机器就加载了6个磁盘,并且不做raid,就是为了充分利用多磁盘并发读写,又保证每个磁盘连续读写 的特性。 具体配置上,是将不同磁盘的多个目录配置到broker的log.dirs,例如 log.dirs=/disk1/kafka-logs,/disk2/kafka-logs,/disk3/kafka-logs kafka会在新建partition的时候,将新partition分布在partition最少的目录上

Linux磁盘与文件系统原理

旧时模样 提交于 2020-01-28 23:16:11
这一章主要是原理性的,介绍了Linux文件系统的运作原理。涉及到很多计算机组成和操作系统的原理性知识,这部分知识很多都忘了,在这里复习下。 我们只看本章第1,2节。 --------------------------------------------------------------------------------------------------------------------------------------------------- 1 硬盘物理组成 //原理 磁头负责读写 磁道(硬盘同半径的一圈) 磁柱(所有盘磁道叠加起来的柱) 扇区(2条半径将磁道分开的一个扇形区域,是磁盘的最小存储单位) --------------------------------------------------------------------------------------------------------------------------------------------------- 2 磁盘分割 //原理 磁柱是磁盘分割的最小单位 磁盘分割就是指定一个分割(Partition)的是从A磁柱到B磁柱 所有磁盘的分割信息存放在MBR (主要开机扇区,master boot recoder),即一块硬盘的第0轨上。计算机一开机就会去读取这个区域。