Colmena crear una tabla de sub-cubo

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

Aquí Insertar imagen Descripción
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; 

Aquí Insertar imagen Descripción
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;

Publicados 133 artículos originales · ganado elogios 53 · Vistas a 20000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_43599377/article/details/103774182
Recomendado
Clasificación