partition

Difference between partition and index in hive

荒凉一梦 提交于 2019-12-04 20:23:20
问题 I am new in hadoop and hive and I would know what is the difference between index and partition in hive? When I use index and when partition? Thank you! 回答1: Indexes are new and evolving (features are being added) but currently Indexes are limited to single tables and cannot be used with external tables. Creating an index creates a separate table. Indexes can be partitioned (matching the partitions of the base table). Indexes are used to speed the search of data within tables. Partitions

kafka面试题

不想你离开。 提交于 2019-12-04 18:37:28
Kafka概述 是基于点对点模式和发布订阅模式的分布式消息队列系统 为什么要用kafka,为什么要用消息队列 1)解耦: 2)冗余: 3)扩展性: 4)灵活性 & 峰值处理能力: 5)可恢复性: 6)顺序保证: 7)缓冲: 8)异步通信: kafka构架 1)Producer :消息生产者,就是向kafka broker发消息的客户端; 2)Consumer :消息消费者,向kafka broker取消息的客户端; 3)Topic :可以理解为一个队列(就是同一个业务的数据放在一个topic下); 4) Consumer Group (CG):这是kafka用来实现一个topic消息的广播(发给所有的consumer)和单播(发给任意一个consumer)的手段。一个topic可以有多个CG。topic的消息会复制(不是真的复制,是概念上的)到所有的CG,但每个partion只会把消息发给该CG中的一个consumer。如果需要实现广播,只要每个consumer有一个独立的CG就可以了。要实现单播只要所有的consumer在同一个CG。用CG还可以将consumer进行自由的分组而不需要多次发送消息到不同的topic; 5)Broker :一台kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic; 6)Partition

Java Partition Surface into Little Squares

谁说我不能喝 提交于 2019-12-04 17:49:46
I would like to know if there is any algorithm that does something like this: Given a specific surface it divides it into smaller rectangles of the same size. Something like this example figure: The grey area is the surface, and the red squares is the partition itself. I am thinking if there is a optimized way to do this. A very bad approach would be a for loop in all the pixels and check if there is a rectangle for that specific spot, if not, would create a rectangle, and so on.. Maybe someone knows a algorithm already done? or a better solution? Thanks alot in advance ;) Paul Samsotha Here's

Oracle间隔(interval)分区

ε祈祈猫儿з 提交于 2019-12-04 16:05:51
(一)什么是间隔分区 间隔分区是Oracle 11.1引入的新功能,通过该功能,可以在输入相应分区的数据时自动创建相应的分区。在没有间隔分区技术之前,DBA通常会创建一个maxvalue分区以避免ORA-14400:插入的分区键值不能映射到任何分区("inserted partition key does not map to any partition")。 作为范围分区(range partition)的扩展,间隔分区命令数据库在插入表中的数据超过所有现有范围分区时自动创建指定间隔的分区。DBA必须至少指定一个范围分区的较高值,称为过渡点,数据库会自动的为超出该过渡点的数据创建间隔分区,每个间隔分区的下边界是先前范围或间隔分区的上边界。 (二)创建间隔分区 (2.1)间隔分区创建语法 CREATE TABLE table_name ( ... ) PARTITION BY RANGE(column1) INTERVAL expr [STORE IN (tablespace1,[tablespace2,...])] ( PARTITION partition_name1 VALUES LESS THAN(literal | MAXVALUE) [TABLESPACE tablespace1], PARTITION partition_name2 VALUES LESS THAN

MapReduce面试题

别等时光非礼了梦想. 提交于 2019-12-04 15:49:44
MapReduce 执行过程分析 第一阶段map 1.map task读取HDFS文件。每个block,启动一个map task。 每个map task按照行读取一个block中的内容,对每一行执行map函数 2.map函数对输入的数据进行拆分split,得到一个数组,组成一个键值对<word, 1> 3.[忽略]分1个区,对应1个reduce task 4.[忽略]对每个分区中的数据,按照key进行分组并排序 5.[忽略]在map段执行小reduce,输出<key,times> 第二阶段reduce 1.每个分区对应一个reduce task,这个reduce task会读取相同分区的map输出; reduce task对接收到的所有map输出,进行排序分组 <hello,{1,1}><me,{1}><you,{1}> 2.执行reduce 操作,对一个分组中的value进行累加 <hello,2><me,1><you,1> 3.每个分区输出到一个HDFS文件中 Mapreduce 数据倾斜原因和解决方案 原因: 简单来说数据倾斜就是数据的key 的分化严重不均,造成一部分数据很多,一部分数据很少的局面。 情形:group by 维度过小,某值的数量过多 后果:处理某值的reduce非常耗时 去重 distinct count(distinct xx) 情形:某特殊值过多 后果

Hive笔记

喜夏-厌秋 提交于 2019-12-04 13:36:24
hive 1.下载hive 可从apache上下载hive安装包:http://mirror.bit.edu.cn/apache/hive/ 2.在hadoop01容器中解压 cd /home/hadoop tar -zxf apache-hive-3.1.2-bin.tar.gz 3.配置环境变量 vi ~/.bashrc export JAVA_HOME=/home/hadoop/javajdk18/jdk/ export HADOOP_HOME=/home/hadoop/hadoop/ export HIVE_HOME=/home/hadoop/hive export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin 4.修改hive配置文件:conf/hive-env.sh export JAVA_HOME=/home/hadoop/javajdk18/jdk export HADOOP_HOME=/home/hadoop/hadoop export HIVE_HOME=/home/hadoop/hive 5.添加conf/hive-site.xml <configuration> <property> <name>javax.jdo.option

Oralce动态的创建按月的分区

拥有回忆 提交于 2019-12-04 12:13:48
说明: XXX为一个配置表,里面配置了要分区的表明,即CODENO = 'PARTITIONTABLENAME',只有每个月月底的时候,才会进入IF的判断,此外还有一个定时任务,每天去执行即可。 存储过程: CREATE OR REPLACE PROCEDURE ETL_CREATE_TABLE_PARTITION(ParaDate Date) IS V_RUNID VARCHAR2(32) :=PKG_UTILS.F_GET_RUNID(); V_PROCDESC VARCHAR2(64) :='ETL 表分区的建立'; V_SQL VARCHAR2(2000); V_COUNT INTEGER; CURSOR C_PARTTABNAME IS SELECT ITEMNO AS TABNAME FROM XXX WHERE CODENO = 'PARTITIONTABLENAME' AND ISINUSE='1'; /* 1.从XXX 中找出所有需要建立新分区的表名(游标) 2.如果今天是月末,那么动态拼接建立下个月的表分区的SQL语句,直接运行 -- 由于有MAXVALUE的存在,不能直接add partition,而是需要MAX分区split */ BEGIN PKG_UTILS.LOG('BEGIN',V_RUNID,V_PROCDESC,'ETL开始...'); IF

Apache Kafka快速入门指南

扶醉桌前 提交于 2019-12-04 06:44:18
简介 Kafka是基于发布订阅的消息系统。最初起源于LinkedIn,于2011年成为开源Apache项目,然后于2012年成为Apache顶级项目。Kafka用Scala和Java编写,因其分布式可扩展架构及可持久化、高吞吐率特征而被广泛使用。 消息队列 通常在项目中,我们会因为如下需求而引入消息队列模块: 1.解耦:消息系统相当于在处理过程中间插入了一个隐含的、基于数据的接口层。无需预先定义不同的接口地址和请求应答规范,这允许数据上下游独立决定双方的处理过程,只需要约定数据格式即可任意扩展服务类型和业务需求。 2.缓冲:消息系统作为一个缓冲池,应对常见的访问量不均衡情形。比如特殊节假日的流量剧增和每日不同时段的访问量差异。以及处理不同数据类型所需的不同实时性。使整个业务处理架构以较低成本获得一定灵活性。 3. 异步:很多时候,用户不想也不需要立即处理消息。消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。想向队列中放入多少消息就放多少,然后在需要的时候再去处理它们。 Kafka的特点 作为一种分布式的,基于发布/订阅的消息系统。Kafka的主要设计目标如下: 1.以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能。 2.高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输。 3

ORACLE分区表的使用和管理

回眸只為那壹抹淺笑 提交于 2019-12-04 06:39:29
1创建和使用分区表 Oracle分区表分为四类:范围分区表;列表分区表;哈希分区表;组合分区表 范围分区表 创建一个按字段数据范围分区的表,分区置于指定的不同表空间中 示例代码: --为各个分区准备独立的表空间 create tablespace test_space01 datafile‘d:/tbs01.dbf’ size 50m create tablespace test_space02 datafile‘d:/tbs02.dbf’ size 50m create tablespace test_space03 datafile‘d:/tbs03.dbf’ size 50m create tablespace test_space04 datafile‘d:/tbs04.dbf’ size 50m --创建分区表, CREATE TABLE range_example( range_key_column DATE, DATA VARCHAR2(20), ID integer ) PARTITION BY RANGE(range_key_column) ( PARTITION part01 VALUES LESS THAN(TO_DATE('2008-07-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) TABLESPACEtest

hive分区和桶

天涯浪子 提交于 2019-12-04 06:35:10
分区操作 Hive 的分区通过在创建表时启动 PARTITION BY 实现,用来分区的维度并不是实际数据的某一列,具体分区的标志是由插入内容时给定的。当要查询某一分区的内容时可以采用 WHERE 语句, 例如使用 “WHERE tablename.partition_key>a” 创建含分区的表。创建分区语法如下。 CREATE TABLE table_name(...)PARTITION BY (dt STRING,country STRING) 1、 创建分区 Hive 中创建分区表没有什么复杂的分区类型(范围分区、列表分区、hash 分区,混合分区等)。分区列也不是表中的一个实际的字段,而是一个或者多个伪列。意思是说,在表的数据文件中实际并不保存分区列的信息与数据。 创建一个简单的分区表。 hive> create table partition_test(member_id string,name string) partitioned by (stat_date string,province string) row format delimited fields terminated by ','; 这个例子中创建了 stat_date 和 province 两个字段作为分区列。通常情况下需要预先创建好分区,然后才能使用该分区。例如: hive> alter