Mi información de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Es un tipo de tabla en Hive. Al dividir los datos de la tabla en múltiples subconjuntos (particiones), cada partición corresponde a un valor de columna específico en la tabla, se puede mejorar el rendimiento de las consultas y la eficiencia de la administración de datos. Cada partición de una tabla particionada se almacena en un directorio separado y la partición se define en función de una o más columnas de la tabla. El objetivo principal del uso de tablas particionadas es reducir la cantidad de datos escaneados por las consultas, mejorando así la eficiencia de las consultas.
La partición excesiva puede resultar en la generación de una gran cantidad de archivos pequeños, lo que afecta el rendimiento de HDFS y la eficiencia de las tareas de MapReduce. Las operaciones de fusión de archivos pequeños deben realizarse con regularidad.
- CREATE TABLE customer_data (
- customer_id STRING,
- name STRING,
- age INT,
- email STRING
- )
- PARTITIONED BY (city STRING)
- STORED AS ORC;
-
- select *
- from customer_data;
-
- -- 插入 New York 的数据
- INSERT INTO TABLE customer_data PARTITION (city='New York')
- VALUES
-
- -- 插入 Los Angeles 的数据
- INSERT INTO TABLE customer_data PARTITION (city='Los Angeles')
- VALUES
-
- -- 插入 Chicago 的数据
- INSERT INTO TABLE customer_data PARTITION (city='Chicago')
- VALUES
Puede ver que se han creado tres directorios en HDFS, correspondientes a tres particiones. El uso de seleccionar con condiciones donde para consultar encontrará directamente datos de los directorios de partición correspondientes, lo que reducirá la cantidad de datos escaneados por la consulta y mejorará el rendimiento.
SELECT * FROM customer_data WHERE city='New York';
Es otro tipo de tabla en Hive. Al agrupar mediante hash los datos de la tabla, se puede mejorar aún más el rendimiento de las consultas, especialmente cuando se realizan operaciones de unión y agregación. Las tablas de agrupación dividen los datos en un número fijo de depósitos y cada depósito se almacena en un archivo independiente.
-------------------------------------------------- -Características de la mesa de cubos--------------------------------------------- - -------
Partición de datos: distribuya los datos en una cantidad fija de depósitos según el valor hash de una o más columnas.
Almacenamiento de archivos: los datos de cada depósito se almacenan en un archivo separado.
Distribución uniforme: lo ideal es que los datos se distribuyan uniformemente en todos los depósitos, lo que mejora el rendimiento de las consultas.
- CREATE TABLE customer_data2 (
- customer_id STRING,
- name STRING,
- age INT,
- email STRING
- )
- CLUSTERED BY (customer_id) INTO 4 BUCKETS
- STORED AS ORC;
- -- 插入数据到分桶表
- --通过这些步骤,我们创建了一个按 customer_id 列进行分桶的 Hive 表 customer_data,并插入了具体的数据。
- INSERT INTO TABLE customer_data2 VALUES
-
- select *
- from customer_data2;
Al observar la ruta en HDFS, podemos ver que los datos se dividirán en diferentes depósitos según el valor hash de la columna correspondiente.