estudio colmena Capítulo tres: definición de datos DDL

Crear una base de datos

  1. Crear una base de datos, la ruta predeterminada de la base de datos en hdfs es /user/hive/warehouse/*.db
  2. Para evitar la creación de una base de datos que ya existe errores, si no existe aumento de determinar: crear base de datos si no existe db_hive
  3. Crear una base de datos, especifique la base de datos de localización almacenados en HDFS: crear base de datos de localización db_hive2 '/db_hive2.db'

Descripción: Crear una carpeta en hdfs: hadoop fs -mkdir -p / base de datos / hive3

Consultar la base de datos

  1. Mostrar base de datos: bases de datos muestran
  2. Se filtra la pantalla de consulta de base de datos: bases de datos serie como 'db_hive'
  3. información de base de datos de pantalla: desc db_hive base de datos
  4. Mostrar bases de datos Detalles: base de datos de la descripción extendida db_hive
  5. Cambio de base de datos actual: uso db_hive
  6. Modificar la base de datos: base de datos alter dbproperties db_hive set ( ' createtime' = '20170830'), Descripción: otra base de datos de información de metadatos no se cambian, incluyendo el nombre y la ubicación de la base de datos del directorio de base de datos se encuentra
  7. Eliminar la base de datos: db_hive2 drop database
  8. Si elimina la base de datos no existe, el mejor uso de la base de datos para determinar si existe si existe: drop database si existe db_hive2
  9. Si la base de datos no está vacío, puede utilizar comandos en cascada a fuerza de eliminación: caída de la base de datos en cascada db_hive

Crear una tabla

  • 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], ...)] INFO num_buckets BUCKETS]
[ROW FORMAT row_format]
[STORED AS file_format]
[LOCATION hdfs_path]

explicaciones sobre el terreno

  1. CREATE TABLE crea una tabla con el nombre especificado
  2. palabras clave externa permite a los usuarios crear una tabla externa, mientras que la construcción real de la tabla especifica una ruta de acceso (ubicación), cuando se crea la colmena dentro de la tabla, mueva los datos al punto de almacenamiento de datos a la ruta; si crea una tabla externa, donde los datos sólo de registro ruta, los datos de ubicación incorrecta de hacer cualquier cambio. Cuando se elimina la tabla, se eliminarán abandonaron metadatos y datos en blanco y oh interna, mientras que la tabla externa simplemente eliminar los metadatos, NO datos de borrado
  3. COMENTARIO añadir anotaciones a las tablas y columnas
  4. Dividido por crear una tabla de particiones
  5. Clasificada en crear una tabla de sub-cubo
  6. ORDEN POR inusual
  7. ALMACENADOS tipos de archivos de almacenamiento según lo señalado: SEQUENCEFILE (archivo de secuencia binaria), TEXTFILE (texto), fichero de recursos (formato de almacenamiento columnar), si los datos de archivo es texto plano, se puede utilizar almacena como TEXTFILE, si se necesita compresión de datos para utilizar almacena como SEQUENCEFILE
  8. UBICACIÓN: Especifica la ubicación de la tabla se almacena en el hdfs
  9. COMO permite al usuario copiar una estructura de tabla existente, pero no copia los datos
  • tabla de gestión
  1. Teoría: las tablas se crean por defecto para la tabla de gestión, a veces llamado tabla interna, colmena será (más o menos) controla el ciclo de vida de los datos. La colmena se pondrá por defecto los datos se almacenan en estas tablas de la hive.metastore.warehouse.dir elemento de configuración: bajo el subdirectorio del directorio (por ejemplo, / user / colmena / almacén) definida al suprimir una tabla de gestión, también colmena esto borrará los datos de la tabla. La administración no es adecuado para la mesa y otras herramientas para compartir datos
  2. Crear una tabla, cree una tabla basada en resultados de la consulta
    //1.普通创建表
    create table if not exists student2(
    id int, name string
    )
    row format delimited fields terminated by '\t'
    stored as textfile
    location '/user/hive/warehouse/student2'
    
    //2.根据查询结果创建表(查询的结果会添加到新创建的表中)
    create table if not exists student3 as select id, name from student

     

  • La tabla externa
  1. Teoría: Quitar este cuadro no eliminar estos datos, pero se borrará la descripción de metadatos de la información
  2. Gestión y uso de tablas externa escenarios: el sitio web logs diarios recogidos fluyen con regularidad en el archivo hdfs, hacen un montón de análisis estadístico sobre la base de una tabla externa, tabla intermedia utilizados, la tabla resultante usando tablas internas para almacenar datos por Select + INSERT en la tabla interna
  • tabla de gestión y de la tabla externa intercambiables
  1. El tipo de tabla de consulta: desc formato student2
  2. Estudiante2 modificar las tablas internas tabla externa: mesa de alter tblproperties conjunto student2 ( 'externo' = 'TRUE')
  3. Estudiante2 modificar la tabla externa es una tabla interna: alter tblproperties conjunto mesa student2 ( 'externo' = 'false')

Tabla de particiones

tabla de particiones es en realidad corresponde a un archivo separado en la carpeta del sistema de archivos hdfs, la partición de tipo carpeta todos los archivos de datos. colmena en el distrito se divide catálogo, la fundación de un gran conjunto de datos de necesidades empresariales en pequeños conjuntos de datos. Cuando una consulta a través de la cláusula WHERE de una consulta selecciona la partición especificada de expresión necesario, por ejemplo eficiencia de la consulta va a mejorar mucho

  •  El funcionamiento básico de la tabla de particiones
  1. La introducción de la tabla de particiones, deben ser gestionados de acuerdo a la fecha del registro
    /user/hive/warehouse/log_partition/20200401/20200401.log
    /user/hive/warehouse/log_partition/20200402/20200402.log
    /user/hive/warehouse/log_partition/20200403/20200403.log
    

     

  2. Crear una sintaxis de la tabla de particiones
    create table dept_partition(
    deptno int, dname string, loc string
    )
    partitioned by (month string)
    row format delimited fields terminated by '\t';

     

  3. Cargando datos en una tabla particionada

    load data local inpath '/opt/module/datas/dept.txt' into table default.dept_partition partition(month='20200401')
    load data local inpath '/opt/module/datas/dept.txt' into table default.dept_partition partition(month='20200402')
    load data local inpath '/opt/module/datas/dept.txt' into table default.dept_partition partition(month='20200403')

     

  4. tabla de particiones de datos de consulta

    //1.单分区查询
    select * from dept_partition where month='20200401'
    
    //2.多分区联合查询
    select * from dept_partition where month='20200401' union
    select * from dept_partition where month='20200402' union
    select * from dept_partition where month='20200403'

     

  5. Añadir Distrito

    //1.创建单个分区
    alter table dept_partition add partition(month='20200404')
    
    //2.同时创建多个分区
    alter table dept_partition add partition(month='20200404') partition(month='20200405') 

     

  6. Eliminar partición

    //1.删除单个分区
    alter table dept_partition drop partition(month='20200401')
    
    //2.同时删除多个分区
    alter table dept_partition drop partition(month='20200401'), partition(month='20200402')

     

  7. Ver la tabla de particiones cuántas particiones

    show partitions dept_partition

     

  8. Ver la estructura de la tabla de particiones

    desc formatted dept_partition

     

  • Partition Table Notas
  1. Creación de una tabla de particiones Secundaria
    create table dept_partition2(
    deptno int, dname string, loc string
    )
    partitioned by (month string, day string)
    row format delimited fields terminated by '\t';

     

  2. la carga de datos normales
    //1.加载数据到二级分区表中
    load data local inpath 'opt/module/datas/dept.txt' into table default.dept_partition2 partition(mobth='202004', day='13');
    
    //2.查询分区数据
    select * from dept_partition2 where month='202004' and day='13';

     

  3. Los datos se carga directamente a la partición de directorio, por lo que la tabla de particiones y los datos asociados generan en tres formas
    //1.上传数据后台修复
    a.上传数据
    dfs -mkdir -p /user/hive/warehouse/dept_partition2/month=202004/day=13;
    dfs -put /opt/module/datas/dept.txt /user/hive/warehouse/dept_partition2/month=202004/day=13;
    
    b.查询数据(查询不到刚上传的数据)
    select * from dept_partition2 where month='202004' and day='13'
    
    c.执行修复命令
    msck repair table dept_partition2;
    
    d.再次查询数据
    select * from dept_partition2 where month='202004' and day='13'
    
    
    //2.上传数据后添加分区
    a.上传数据
    dfs -mkdir -p /user/hive/warehouse/dept_partition2/month=202004/day=13;
    dfs -put /opt/module/datas/dept.txt /user/hive/warehouse/dept_partition2/month=202004/day=13;
    
    b.执行添加分区
    alter table dept_partition2 add partition(month='202004', day='13');
    
    c.查询数据
    select * from dept_partition2 where month='202004' and day='13';
    
    
    //3.创建文件后load数据到分区
    a.创建目录
    dfs -mkdir -p /user/hive/warehouse/dept_partition2/month=202004/day=13;
    
    b.上传数据
    load data local inpath '/opt/module/datas/dept.txt' into table dept_partition2 partition(month='202004', day='13');
    
    c.查询数据
    select * from dept_partition2 where month='202004' and day='13';

     

Modificar la tabla 

 

Publicados 111 artículos originales · ganado elogios 57 · Vistas a 60000 +

Supongo que te gusta

Origin blog.csdn.net/qq_38358499/article/details/105357315
Recomendado
Clasificación