Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2023-04-14 GMT+08:00

Hudi

Hudi es un formato de tabla de lago de datos que proporciona la capacidad de actualizar y eliminar datos, así como consumir nuevos datos en HDFS. Es compatible con múltiples motores de cómputo y proporciona interfaces de inserción, actualización y eliminación (IUD) y primitivas de transmisión, que incluyen upsert y extracción incremental, sobre conjuntos de datos en HDFS.

Para utilizar Hudi, asegúrese de que el servicio Spark2x se ha instalado en el clúster de MRS.

Figura 1 Arquitectura básica de Hudi

Características

  • La capacidad de transacción ACID admite la importación de datos en tiempo real al lago y la importación de datos por lotes al lago de datos.
  • Las múltiples capacidades de visualización (vista de lectura optimizada/vista incremental/vista en tiempo real) permiten un análisis de datos rápido.
  • El diseño de control de simultaneidad de múltiples versiones (MVCC) admite el retroceso de versiones de datos.
  • La gestión automática de tamaños y diseños de archivos optimiza el rendimiento de las consultas y proporciona datos en tiempo casi real para las consultas.
  • Se admiten lecturas y escrituras simultáneas. Los datos se pueden leer cuando se escriben basándose en el aislamiento de instantáneas.
  • Bootstrapping es compatible para convertir tablas existentes en conjuntos de datos de Hudi.

Tecnologías clave y ventajas

  • Mecanismo de índice conectable: Hudi proporciona múltiples mecanismos de índice para actualizar y eliminar rápidamente datos masivos.
  • Compatibilidad con el ecosistema: Hudi admite varios motores de datos, incluidos Hive, Spark, HetuEngine, y Flink.

Dos tipos de tablas compatibles con Hudi

  • Copy On Write

    Las tablas de Copy-on-write también se denominan tablas COW. Los archivos de parquet se utilizan para almacenar datos, y las operaciones de actualización interna deben realizarse reescribiendo los archivos de parquet originales.

    • Ventaja: Es eficiente porque solo se necesita leer un archivo de datos en la partición correspondiente.
    • Desventaja: Durante la escritura de datos, se necesita copiar una copia anterior y luego se genera un nuevo archivo de datos basado en la copia anterior. Este proceso requiere mucho tiempo. Por lo tanto, los datos leídos por la solicitud de lectura se retrasan.
  • Merge On Read

    Las tablas de Merge-on-read también se denominan tablas MOR. La combinación de parquet basado en columnas y formato Avro basado en filas se utiliza para almacenar datos. Los archivos Parquet se utilizan para almacenar datos base, y los archivos Avro (también llamados archivos de registro) se utilizan para almacenar datos incrementales.

    • Ventaja: Los datos se escriben en delta log primero, y el tamaño de delta log es pequeño. Por lo tanto, el coste de escritura es bajo.
    • Desventaja: Los archivos deben compactarse periódicamente. De lo contrario, hay un gran número de archivos de fragmento. El rendimiento de lectura es pobre porque delta logs y los archivos de datos antiguos necesitan combinarse.

Hudi apoya tres tipos de vistas para las capacidades de lectura en diferentes escenarios

  • Vista instantánea

    Proporciona los datos de instantánea más recientes de la tabla Hudi actual. Es decir, una vez que los últimos datos se escriben en la tabla Hudi, los datos recién escritos se pueden consultar a través de esta vista.

    Tanto las tablas COW como MOR soportan esta capacidad de vista.

  • Vista incremental

    Proporciona la capacidad de consulta incremental. Los datos incrementales después de una confirmación especificada pueden ser consultados. Esta vista se puede utilizar para extraer rápidamente datos incrementales.

    Las tablas COW soportan esta capacidad de vista. Las tablas MOR también admiten esta capacidad de vista, pero la capacidad de vista incremental desaparece una vez que se realiza la operación compacta.

  • Leer vista optimizada

    Proporciona únicamente los datos almacenados en el último archivo de Parquet.

    Esta vista es diferente para las tablas COW y MOR.

    Para las tablas COW, la capacidad de vista es la misma que la capacidad de vista en tiempo real. (Las tablas COW utilizan solo archivos de Parquet para almacenar datos.)

    Para las tablas MOR, sólo se accede a los archivos base, y se proporcionan los datos en los segmentos de archivo dados desde la última operación compacta. Se puede entender simplemente que esta vista proporciona solo los datos almacenados en los archivos de parquet de las tablas MOR, y los datos en los archivos de log se ignoran. Los datos proporcionados por esta vista pueden no ser los últimos. Sin embargo, una vez que se realiza la operación compacta en tablas MOR, los datos de log incrementales se fusionan en los datos base. En este caso, esta vista tiene la misma capacidad que la vista en tiempo real.