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