partition

oracle 的分析函数

我与影子孤独终老i 提交于 2020-01-28 12:10:01
row_number() over(partition by ... order by ...) rank() over(partition by ... order by ...) dense_rank() over(partition by ... order by ...) /*--建表和插入测试数据 create table test (A1 number, A2 number ); insert into test(a1,a2) values(1, 3); insert into test(a1,a2) values(2, 4); insert into test(a1,a2) values(3, 2); insert into test(a1,a2) values(3, 5); insert into test(a1,a2) values(4, 2); select a1,a2, rank () over (order by a1) rank, dense_rank () over (order by a1) dense_rank, row_number () over (order by a1) row_number from test; */ A1 A2 RANK DENSE_RANK ROW_NUMBER ---------- ---------- -------

Spark基础 DAG

淺唱寂寞╮ 提交于 2020-01-28 07:04:10
为什么使用spark的原因是早期的编程模式MapReduce缺乏对数据共享的高效元语,会造成磁盘I/O 以及序列号等开销,spark提出了统一的编程抽象---弹性分布式数据集(RDD),该模型可以令并行计算阶段间高效地进行数据共享。spark处理数据时,会将计算转化为一个有向无环图(DAG)的任务集,RDD能够有效的恢复DAG中故障和慢节点执行的任务,并且RDD提供一种基于粗粒度变换的接口,记录创建数据集的“血统”,能够实现高效的容错性。 spark的作业和任务调度系统是其核心,它能够有效的进行调度的根本原因是因为对任务划分DAG和容错。 DAG,有向无环图,Directed Acyclic Graph的缩写,常用于建模。Spark中使用DAG对RDD的关系进行建模,描述了RDD的依赖关系,这种关系也被称之为lineage,RDD的依赖关系使用Dependency维护,参考Spark RDD之Dependency,DAG在Spark中的对应的实现为DAGScheduler。 基础概念 介绍DAGScheduler中的一些概念,有助于理解后续流程。 作业(Job) 调用RDD的一个action,如count,即触发一个Job,spark中对应实现为ActiveJob,DAGScheduler中使用集合activeJobs和jobIdToActiveJob维护Job 调度阶段

[Hive_8] Hive 设计优化

泄露秘密 提交于 2020-01-28 04:15:38
0. 说明   在 Hive 中,数据库是一个文件夹,表也是文件夹   partition,是一个字段,是文件   前提:在 Hive 进行 where 子句查询的时候,会将条件语句和全表进行比对, 搜索出所需的数据,性能极差,partition 就是为了避免全表扫描   bucket(桶表)   避免多级分区导致分区目录过多,以指定字段进行 hash 分桶   新型数据结构,以文件段的形式在分区表内部按照指定字段进行分隔   重要特性:优化 join 的速度 1. 分区   1.1 创建非分区表 user_nopar create table user_nopar (id int, name string, age int, province string, city string) row format delimited fields terminated by '\t';   1.2 加载数据 load data local inpath '/home/centos/files/user_nopar.txt' into table user_nopar;   1.3 创建分区表 user_par create table user_par(id int, name string, age int) partitioned by(province string, city

hive 的理解

这一生的挚爱 提交于 2020-01-28 01:20:42
什么是Hive 转自: https://blog.csdn.net/qingqing7/article/details/79102691 1、Hive简介 Hive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用戶查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。 首先,我来说说什么是hive(What is Hive?),请看下图: Hive构建在Hadoop的HDFS和MapReduce之上,用于管理和查询结构化/非结构化数据的数据仓库。 使用HQL作为查询接口 使用HDFS作为底层存储 使用MapReduce作为执行层 Hive的应用 ,如下图所示 这里集群搭建Hive时用到了HA,最后用HAProxy来做代理。 1.1、结构描述 Hive 的结构可以分为以下几部分: 用戶接口:包括 CLI, Client, WU 元数据存储。通常是存储在关系数据库如 mysql, derby 中 解释器、编译器、优化器、执行器 Hadoop:用

SQL基础教程(第2版)第8章 SQL高级处理:8-1 窗口函数

喜你入骨 提交于 2020-01-27 15:18:26
8-1 窗口函数 ● 窗口函数可以进行排序、生成序列号等一般的聚合函数无法实现的高级操作。 ● 理解 PARTITION BY 和 ORDER BY 这两个关键字的含义十分重要。 ■ 什么是窗口函数 在Oracle和 SQL Server中称为分析函数。 但是 MySQL 的5.7版本还是不支持窗口函数 。 OLAP 是 OnLine Analytical Processing 的简称,意思是对数据库数据进行实时分析处理。 例如,市场分析、创建财务报表、创建计划等日常性商务工作。 窗口函数就是为了实现 OLAP 而添加的标准 SQL 功能。 ■ 窗口函数的语法 窗口函数大体可以分为以下两种。 ① 能够作为窗口函数的聚合函数( SUM 、 AVG 、 COUNT 、 MAX 、 MIN ) ② RANK 、 DENSE _ RANK 、 ROW _ NUMBER 等 专用窗口函数 ■ 语法的基本使用方法——使用 RANK 函数 正如其名称所示, RANK 是用来计算记录排序的函数。 例如,对于之前使用过的 Product 表中的 8 件商品,让我们根据不同的商品种类( product_type ),按照销售单价( sale_price )从低到高的顺序排序,结果如下所示。 PARTITION BY 能够设定排序的对象范围。 ORDER BY 能够指定按照哪一列、何种顺序进行排序。

Hive 简介

被刻印的时光 ゝ 提交于 2020-01-27 07:35:12
hive是基于Hadoop的一个 数据仓库 工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合 数据仓库 的统计分析。 Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。 Hive 没有专门的数据格式。 Hive 可以很好的工作在 Thrift 之上,控制分隔符,也允许用户指定数据格式。 Hive 构建在基于静态批处理的Hadoop 之上,Hadoop 通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销。Hive 并不适合那些需要低延迟的应用。 Hive 是一种底层封装了Hadoop 的数据仓库处理工具,使用类SQL 的HiveQL 语言实现数据查询,所有Hive

Kafka深度解析

只谈情不闲聊 提交于 2020-01-27 04:52:17
本文转发自 技术世界 , 原文链接   http://www.jasongj.com/2015/01/02/Kafka深度解析 背景介绍 Kafka简介   Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输 支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输 同时支持离线数据处理和实时数据处理 为什么要用消息系统 解耦 在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息队列在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束 冗余 有些情况下,处理数据的过程会失败。除非数据被持久化,否则将造成丢失。消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。在被许多消息队列所采用的”插入-获取-删除”范式中,在把一个消息从队列中删除之前,需要你的处理过程明确的指出该消息已经被处理完毕,确保你的数据被安全的保存直到你使用完毕。 扩展性 因为消息队列解耦了你的处理过程,所以增大消息入队和处理的频率是很容易的

Python 使用python-kafka类库开发kafka生产者&消费者&客户端

僤鯓⒐⒋嵵緔 提交于 2020-01-27 04:33:28
使用python-kafka类库开发kafka生产者&消费者&客户端 By: 授客 QQ:1033553122 1. 测试环境 python 3.4 zookeeper-3.4.13.tar.gz 下载地址1: http://zookeeper.apache.org/releases.html#download https://www.apache.org/dyn/closer.cgi/zookeeper/ https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 下载地址2: https://pan.baidu.com/s/1dnBgHvySE9pVRZXJVmezyQ kafka_2.12-2.1.0.tgz 下载地址1: http://kafka.apache.org/downloads.html 下载地址2: https://pan.baidu.com/s/1VnHkJgy4iQ73j5rLbEL0jw pip-18.1.tar.gz 下载地址: https://pan.baidu.com/s/1VpYk8JvMuztzbvEF8mQoRw 说明:实践中发现,pip版本比较旧的话,没法安装whl文件 kafka_python-1.4.4-py2.py3-none-any.whl 下载地址1: https://pypi

Kafka 0.9 新消费者API

孤人 提交于 2020-01-27 03:38:18
kafka诞生之初,它自带一个基于scala的生产者和消费者客户端。但是慢慢的我们认识到这些API有很多限制。比如,消费者有一个“高级”API支持分组和异常控制,但是不支持很多更复杂的应用场景;它也有一个“低级”API,支持对细节的完全控制,但是要求码农自己控制失败和异常。所以重新设计了它们。 这个过程的第一阶段就是在0.8.1版本的时候重写了生产者API。在最近的0.9版本中完成了第二阶段,提供了消费者的新API。建立在新的分组协议只是,新的消费者带来以下好处: API更加简洁:新的消费者API综合了老版本的“高级”和“低级”API的功能,同时提供了分组机制和lower level access来实现自己的消费策略; 减少了依赖:新的消费者API是用纯java写的。没有了scala和zk的依赖,让代码工程更轻量级; 更安全:新的消费者API支持kafka0.9版本的安全机制; 新的消费者也增加了一系列的机制来控制组消费时的容错。老的API使用大量的java代码实现的(与ZK交互过多),复杂的逻辑很难让其他语言的消费者实现。新的API使这变得更简单。现在已经有 C版本的客户端 了。 虽然新的消费者是被重新设计过的和新的交互机制,但很多感念没有本质区别,所以熟悉老API的码农也不会觉得新API生硬。但是,也有一些特别细微的细节相对于组管理和线程模型需要在码代码的时候注意。

Kafka 基本原理

筅森魡賤 提交于 2020-01-26 20:23:56
目录 简介Kafka架构Kafka存储策略Kafka删除策略Kafka brokerKafka DesignThe ProducerThe Consumer复制(Replication)日志压缩(Log Compaction)DistributionZookeeper协调控制开发环境搭建一些example参考 简介 Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。 Kafka架构 它的架构包括以下组件: 话题(Topic):是特定类型的消息流。消息是字节的有效负载(Payload),话题是消息的分类名或种子(Feed)名。 生产者(Producer):是能够发布消息到话题的任何对象。 服务代理(Broker):已发布的消息保存在一组服务器中,它们被称为代理(Broker)或Kafka集群。 消费者(Consumer):可以订阅一个或多个话题,并从Broker拉数据,从而消费这些已发布的消息。 https://images2015.cnblogs.com/blog/434101/201605/434101-20160514145613421-1488903046.png Kafka存储策略 1)kafka以topic来进行消息管理