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

Descripción de CarbonData

CarbonData es un nuevo formato de almacén de datos nativo de Apache Hadoop. CarbonData permite consultas interactivas más rápidas sobre PetaBytes de datos utilizando técnicas avanzadas de almacenamiento de columnas, índice, compresión y codificación para mejorar la eficiencia informática. Además, el CarbonData es también un motor de análisis de alto rendimiento que integra fuentes de datos con Spark.

Figura 1 Arquitectura básica de CarbonData

El propósito de utilizar CarbonData es proporcionar una respuesta rápida a consultas de ad hoc de big data. CarbonData es un motor de procesamiento analítico en línea (OLAP), que almacena datos utilizando tablas similares a las del Sistema de gestión de bases de datos relacionales (RDBMS). Puede importar más de 10 TB de datos a tablas creadas en formato CarbonData y CarbonData organiza y almacena automáticamente los datos mediante los índices multidimensionales comprimidos. Después de cargar los datos en CarbonData, CarbonData responde a consultas de ad hoc en segundos.

CarbonData integra fuentes de datos en el ecosistema de Spark y puede consultar y analizar los datos con Spark SQL. También puede utilizar la herramienta de terceros JDBCServer proporcionada por Spark para conectarse a SparkSQL.

Topología de CarbonData

CarbonData se ejecuta como una fuente de datos dentro de Spark. Por lo tanto, CarbonData no inicia ningún proceso adicional en los nodos de los clústeres. CarbonData engine funciona dentro del Spark executor.

Figura 2 Topología de CarbonData

Los datos almacenados en CarbonData Table se dividen en varios archivos de datos de CarbonData. Cada vez que se consultan datos, CarbonData Engine lee y filtra conjuntos de datos. CarbonData Engine se ejecuta como parte del proceso Spark Executor y es responsable de manejar un subconjunto de bloques de archivos de datos.

Los datos de la tabla se almacenan en HDFS. Los nodos del mismo clúster de Spark se pueden utilizar como nodos de datos de HDFS.

Características de CarbonData

  • SQL CarbonData es compatible con Spark SQL y admite operaciones de consulta SQL realizadas en Spark SQL.
  • Definición de conjunto de datos de table simple: CarbonData le permite definir y crear conjuntos de datos mediante sentencias de lenguaje de definición de datos (DDL) fáciles de usar. CarbonData DDL es flexible y fácil de usar, y puede definir tables complejos.
  • Fácil gestión de datos: CarbonData ofrece varias funciones de gestión de datos para la carga y el mantenimiento de datos. CarbonData admite la carga masiva de datos históricos y la carga incremental de nuevos datos. Los datos cargados se pueden eliminar en función del tiempo de carga y se puede deshacer una operación de carga específica.
  • El formato de archivo CarbonData es un almacén de columnas en HDFS. Este formato tiene muchas nuevas características de almacenamiento de archivos basadas en columnas, como la división de tablas y la compresión de datos. CarbonData tiene las siguientes características:
    • Almacena datos junto con el índice: Acelera significativamente el rendimiento de la consulta y reduce los análisis de E/S y los recursos de CPU, cuando hay filtros en la consulta. El índice de CarbonData consta de múltiples niveles de índices. Un marco de procesamiento puede aprovechar este índice para reducir la tarea que necesita programar y procesar, y también puede realizar omitir el escaneo en una unidad de grano más fino (llamada blocklet) en el escaneo del lado de la tarea en lugar de escanear todo el archivo.
    • Datos codificados operables: A través de la compatibilidad con esquemas de compresión y codificación globales eficientes, CarbonData puede consultar datos comprimidos/codificados. Los datos se pueden convertir justo antes de devolver los resultados a los usuarios, lo que se denomina materialización tardía.
    • Soporta varios casos de uso con un solo formato de datos: como consulta interactiva de estilo OLAP, acceso secuencial (big scan) y acceso aleatorio (narrow scan).

Tecnologías clave y ventajas de CarbonData

  • Respuesta rápida a la consulta: CarbonData ofrece consultas de alto rendimiento. La velocidad de consulta de CarbonData es 10 veces mayor que la de Spark SQL. Utiliza formatos de datos dedicados y aplica múltiples tecnologías de índice, código de diccionario global y múltiples optimizaciones push-down, proporcionando una respuesta rápida a las consultas de datos a nivel de TB.
  • Compresión de datos eficiente: CarbonData comprime los datos combinando los algoritmos de compresión ligeros y pesados. Esto ahorra significativamente entre un 60% y un 80% de espacio de almacenamiento de datos y el costo de almacenamiento de hardware.

Servidor de caché de índices de CarbonData

Para resolver la presión y los problemas provocados por el aumento del volumen de datos al driver, se introduce un servidor de caché de índice independiente para separar el índice del lado de aplicación Spark de la consulta Carbon. Todo el contenido del índice es gestionado por el servidor de caché de índices. Las aplicaciones de Spark obtienen los datos de índice requeridos en modo RPC. De esta manera, se libera una gran cantidad de memoria en el lado del servicio para que los servicios no se vean afectados por la escala del clúster y el rendimiento o las funciones no se vean afectados.