1 Crear una tabla de sub-barril: un pequeño archivo para dividir un archivo grande como para manejar
cubeta de la tabla de puntos es también un tipo de consulta diseñado para la optimización. Al crear una lista de sub-cubo, especificar el número de cubos y cubos de base sub-campo, colmena puede dividir automáticamente los barriles de almacenamiento de datos. Sólo necesitará datos de consulta que atraviesa un cubo, o atravesar la parte del cañón, mejorando así la eficiencia de la consulta.
La esencia del barril se divide en diferentes archivos de datos. Reducir la bañera y el mismo número de puntos en el en Hadoop Hive.
El papel de la mesa de sub-barril: 1. Mejorar la consulta a aumentar la eficiencia de muestreo eficiencia 2. 3. mejorar la eficiencia de la unión
puntos barril Principio: la colmena es un solo archivo de datos, los datos se dividieron en tamaño uniforme
create table 分桶表的表名 ( 字段名1 数据类型,字段名 2 数据类型2 , .... )
clustered by ( 分桶字段 ) into 分桶的个数 buckets
row format delimited
fields terminated by '\001' --指定字段分隔符
collection items terminated by '\002' -- 指字集合的分隔符
map keys terminated by '\003' --指定map的分隔符
lines terminated by '\n' --指定行的分隔符
Nota: Campo de sub-barril debe estar en la mesa de campo debe
create table students_bucket ( id string, name string, age int )
clustered by ( id ) sorted by ( id asc ) into 4 buckets
create table students_bucket ( id string, name string, java float,c float,oracle float,hadoop float ,sex string )
clustered by ( id ) sorted by ( id asc ) into 4 buckets
row format delimited
fields terminated by ',' ; --指定字段分隔符
insert into students_bucket select id,name,java,c, mysql as oracle,hadoop,sex from students;
-- 分桶只能使用insert 方法来执行MR程序 进行分桶 不能使用load data
load data local inpath '/home/zx/data/students2.csv' overwrite into table students_bucket
2 automático barril:
-1.原始数据表
create table students1(
id string,
name string,
score1 float,
score2 float,
score3 float,
score float
)row format delimited
fields terminated by ',';
--2.加载数据
load data local inpath '/home/sheng/data/students.csv' into table students1;
--3.创建分桶表
create table students_bucket1 (
id string,
name string,
score1 float,
score2 float,
score3 float,
score float
)
clustered by ( id ) sorted by ( score asc ) into 4 buckets
row format delimited
fields terminated by ','
--4.设置自动分桶开关
set hive.enforce.bucketing=true;
--4*把原始数据插入到分桶表中,并自动进行分桶
insert overwrite table students_bucket1 select * from students1;
puntos de muestreo barril
* Desde students_bucket1 SELECT
TABLESAMPLE (cubo 4 EN de OUT 1 ID..);
. 3 la parte exterior de la mesa barril
create EXTERNAL table students_external_bucket (
id string,
name string,
java float,
c float,
mysql float,
hadoop float,
sex string
)
clustered by ( id ) sorted by ( id asc ) into 4 buckets
row format delimited
fields terminated by ','
LOCATION '/user/zx/bucket';
insert into students_external_bucket select * from students;
4 lista del cubo subdistrito
create table students_p_b (
id string,
name string,
java float,
c float,
mysql float,
hadoop float
)
PARTITIONED BY (
sex string
)
clustered by ( id ) sorted by ( id asc ) into 4 buckets
row format delimited
fields terminated by ','
insert into students_p_b partition( sex ) select id,name,java,c,mysql , hadoop ,if ( sex='男','man','woman') as sex from students;