Hive_ funcionamiento básico (b)

operaciones DDL

Para construir la sintaxis de tablas

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name

   [(col_name data_type [COMMENT col_comment], ...)]

   [COMMENT table_comment]

   [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]

   [CLUSTERED BY (col_name, col_name, ...)

   [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]

   [ROW FORMAT row_format]

   [STORED AS file_format]

   [LOCATION hdfs_path]

1: Crear una tabla interna

create table if not exists t_user (id int,name string,age int)
row format delimited
fields terminated by ',';

Linux se carga el directorio de archivos local hdfs mesa colmena, que permite la inserción de datos

hadoop fs -put t_user.txt /user/hive/warehouse/t_user 

Linux datos de modo de comando colmena en una colmena tabla de archivos locales

 load data local inpath '/root/t_user2.txt' into table t_user;

hdfs datos de modo de comando de la colmena en la tabla de sistema de archivo de sección

load data inpath '/t_user3.txt' into table t_user;

2: Crear una tabla externa

create external table if not exists t_ext (id int,name string,age int)
row format delimited
fields terminated by ','
location "/hivedata";

la carga de datos

hadoop fs -put t_user.txt /hivedata
load data local inpath '/root/t_user2.txt' into table t_ext;
load data inpath '/t_user4.txt' into table t_user;

Diferencia: mesa Borrar, se borrará metadatos colmena, la tabla interna, se eliminarán los archivos de datos de la tabla en el directorio y hdfs, tabla externa sólo eliminar los metadatos, el archivo de datos se mantendrá bajo hdfs

Nota : los datos de carga INPATH *** *** hdfs en la tabla se mueven realmente el archivo en un directorio mesa colmena

Resumen: A partir de las consideraciones de seguridad, no causa la pérdida de archivos de datos, se recomienda el complemento producción real o tabla externa de borrar para utilizar una tabla externa más seguro y fiable

 

3: Crear una tabla de particiones

create table if not exists t_partition (ip string,duration int)
partitioned by (country string)
row format delimited
fields terminated by ',';

-- 查询表结构
desc t_partition ;

la carga de datos

 load data local inpath '/root/t_part' into table t_partition partition(country="China" );
 select * from t_partition where country="USA";

Resumen: La tabla de partición es una partición de datos condiciones de campo de partición de cinta, se almacena en la tabla de particiones niveles catálogo subdirectorio en la colmena, de acuerdo a la consulta para evitar superficie de escaneo completo de tabla, la mejora de la eficiencia de búsqueda.

 

4: almacena como [archivo de texto | sequencefile | fichero_de_recursos]  

create table if not exists t_user3 (id int,name string,age int)
row format delimited
fields terminated by ','
stored as sequencefile;

-- 压缩文件不能使用 load data 上传以及移动文件的方式加载数据可以使用以下方式

insert overwrite table t_user3 select * from t_user;

Resumen: testfile por defecto, si los datos son texto plano, puede utilizar almacenó como proceso de compresión de archivo de texto se puede utilizar si es necesario almacenada como sequencefile ;.

 

DML y DDL operaciones

1: Adición de una nueva partición

alter table t_partition add partition(country="Japan");
load data local inpath "/root/t_part2" into table t_partition partition(country="Japan");
select * from t_partition where country="Japan";

2: partición de tabla de consulta

 show partitions t_partition;

3: Tabla de particiones Delete

alter table t_partition drop partition(country="Japan");
show partitions t_partition;

4: Modificar el nombre de la tabla

alter table t_partition rename to t_partition_new;
show tables;

5: añadir o actualizar la columna

-- 新增
alter table t_partition add columns (city string);
desc t_partition;
-- 更新类型
alter table t_partition replace columns (duration string);

6: sobrescribir los datos de carga (de datos original se sobrescribirá)

insert overwrite table t_user3 select * from t_user;
load data local inpath '/root/t_user.txt' overwrite into table t_user;
load data inpath '/t_user.txt' overwrite into table t_user;

6: copiar los datos originales en una estructura de tabla existente

 crate table t_user4  like t_user; 
 insert overwrite table t_user4  select * from t_user;

7: Exportación colmena datos de la tabla de réplica a la local o hdfs

-- 导出到linux本地
insert overwrite local directory '/root/t_user5.txt' select * from t_user;
-- 导出到hdfs
insert overwrite directory '/root/t_user5.txt' select * from t_user;

8: Inserte el particionamiento automático

-- 设置动态分区模式 非严格模式
SET HIVE.EXEC.DYNAMIC.PARTITION.MODE=NONSTRICT
insert overwrite t_user partition(city) select id,name,city from t_user2 where city='USA';

9: Clasificación

ordenado por la entrada hará que el orden global, por lo que sólo un reductor, dará lugar a la entrada a gran escala necesita mucho tiempo para calcular

ordenar por no ordenadas a nivel mundial, ese tipo de datos se completa antes de entrar en el reductor. Por lo tanto, si se proporciona una especie de clasificación y reduce.task> 1, entonces la salida sólo asegurar especie ordenada por cada reductor ninguna garantía de orden global.

Cuando el hash hash de distribuir por (campo) de acuerdo con los datos de campo especificado en diferentes reductor, y un algoritmo de distribución.

clúster (campo) Distribuir mediante la adición a las funciones, sino también los campos de clasificación

 

 

 

 

 

 

 

Publicado 33 artículos originales · ganado elogios 3 · Vistas 5869

Supongo que te gusta

Origin blog.csdn.net/WandaZw/article/details/82773347
Recomendado
Clasificación