He creado correctamente y añadió particiones Dinámicas en un tabla Interna en la colmena. es decir, mediante los siguientes pasos:

1-crea una tabla de origen

2-carga de datos de locales en la tabla de origen

3 – crea otra tabla con particiones – partition_table

4 – inserta los datos a esta tabla de la tabla de origen que resulta en la creación de todas las particiones de forma dinámica

Mi pregunta es, cómo se realiza esto en la tabla externa? He leído muchos artículos sobre esto, pero estoy confundido , que tengo que especificar la ruta de acceso a las particiones existentes para crear particiones de tabla externa??

ejemplo:
Paso 1:

create external table1 ( name string, age int, height int)
location 'path/to/dataFile/in/HDFS';

Paso 2:

alter table table1 add partition(age) 
location 'path/to/already/existing/partition'

No estoy seguro de cómo proceder con el particionado de tablas externas. Puede alguien por favor, ayudar dando paso a paso la descripción de la misma?.

Gracias de antemano!

sí es necesario especificar la ruta de acceso.

OriginalEl autor Anoop Mamgain | 2015-09-15

3 Comentarios

  1. 2

    1. Debajo de la propiedad

    set hive.exec.dynamic.partition=true

    set hive.exec.dynamic.partition.mode=nonstrict

    2. Crear Externo tabla con particiones

    create external table1 ( name string, age int, height int)
    location 'path/to/dataFile/in/HDFS';

    3. Insertar datos en una tabla con particiones de la tabla de origen.

    Básicamente , el proceso es el mismo. es sólo que usted cree externo tabla con particiones y proporcionar HDFS camino a la tabla en la que se va a crear y almacenar partición.

    Espero que esto ayude.

    definitivamente ayudó pradeep!! funciona como un encanto!! llegó a underdtand tanto de forma estática y dinámica de las particiones de tablas externas!!! saludos!!

    OriginalEl autor pradeep

  2. 17

    Sí, tienes que decirle a la Colmena explícitamente cuál es tu partición de campo.

    Considerar que tienes un HDFS directorio en el que desea crear una tabla externa.

    /path/to/dataFile/
    

    Digamos que este directorio ya tiene los datos almacenados(particiones) departamento de sabios de la siguiente manera:

    /path/to/dataFile/dept1
    /path/to/dataFile/dept2
    /path/to/dataFile/dept3
    

    Cada uno de estos directorios tienen un montón de archivos, donde cada archivo
    contiene reales separados por comas datos de los campos de decir el nombre,la edad,la altura.

    e.g.
        /path/to/dataFile/dept1/file1.txt
        /path/to/dataFile/dept1/file2.txt
    

    Ahora vamos a crear una tabla externa en esto:

    El paso 1. Crear una tabla externa:

    CREATE EXTERNAL TABLE testdb.table1(name string, age int, height int)
    PARTITIONED BY (dept string)
    ROW FORMAT DELIMITED
    STORED AS TEXTFILE
    LOCATION '/path/to/dataFile/';
    

    El paso 2. Añadir particiones:

    ALTER TABLE testdb.table1 ADD PARTITION (dept='dept1') LOCATION '/path/to/dataFile/dept1';
    ALTER TABLE testdb.table1 ADD PARTITION (dept='dept2') LOCATION '/path/to/dataFile/dept2';
    ALTER TABLE testdb.table1 ADD PARTITION (dept='dept3') LOCATION '/path/to/dataFile/dept3';
    

    Ejecute la consulta select una vez para comprobar si los datos cargados correctamente.

    Gracias por la gran explicación de Sachin!! Sólo una cosa más. Esta será una partición estática derecho? Cómo hacerlo de forma dinámica?
    sí que sería una partición estática

    OriginalEl autor Sachin Gaikwad

  3. 0

    Seguir los siguientes pasos:

    1. Crear una tabla temporal/tabla de Origen

      create table source_table(name string,age int,height int) row format delimited by ',';
      

      Utilizar su delimitador como en el archivo, en lugar de ‘,’;

    2. Cargar los datos en la tabla de origen

      load data local inpath 'path/to/dataFile/in/HDFS';
      
    3. Crear una tabla externa con la partición de

      create external table external_dynamic_partitions(name string,height int) 
      partitioned by (age int) 
      location 'path/to/dataFile/in/HDFS';
      
    4. Habilitar la partición dinámica del modo de nonstrict

      set hive.exec.dynamic.partition.mode=nonstrict
      
    5. Carga de datos externos de tabla con particiones de archivo de origen

      insert into table external_dynamic partition(age) 
      select * from source_table;
      

    Que es.
    Usted puede comprobar las particiones de la información mediante

    show partitions external_dynamic;
    

    Usted puede incluso comprobar si se trata de una tabla externa o no el uso de

    describe formatted external_dynamic;
    

    Tabla externa es un tipo de tabla en la Colmena, donde los datos no se mueven a la colmena de almacén. Eso significa que incluso si U eliminar la tabla, los datos todavía persiste y siempre obtendrá los datos más recientes, que no es el caso con las de la tabla.

    OriginalEl autor bgt

Dejar respuesta

Please enter your comment!
Please enter your name here