La era de la nube ha llegado, ¿cómo se materializa la nueva generación de plataforma de análisis de datos?

En mayo de 2023, según los datos de la encuesta anual de desarrolladores de 2023 iniciada por Stackoverflow, PostgreSQL superó a MySQL y ocupó el primer lugar, convirtiéndose en la primera opción de los desarrolladores. PostgreSQL se está volviendo cada vez más popular en China. El 17 de junio, se llevó a cabo con éxito en Chengdu la Cumbre de tecnología de bases de datos PostgreSQL. Con el tema "Nuevas oportunidades, nuevas tendencias, nuevos desarrollos", esta conferencia invitó a muchos líderes de la industria a participar en este evento. Chen Jinbao, director de producto de PieCloudDB, también fue invitado a dar un discurso en la conferencia "La arquitectura y la implementación del módulo clave de PieCloudDB, un almacén de datos virtual nativo en la nube". 

Con el advenimiento de la era de la computación en la nube, la plataforma en la nube proporciona recursos informáticos ricos y casi ilimitados y, al mismo tiempo, reduce en gran medida los costos informáticos, lo que brinda más oportunidades para que la computación de datos genere inteligencia. Ya en 2019, Gartner hizo una predicción: el futuro del mercado de las bases de datos está en la nube. Con el desarrollo de la tecnología de computación en la nube, las empresas también se están acercando a esta tendencia, y cada vez más empresas están migrando sus datos comerciales a la nube. Creemos que el futuro de las bases de datos está en la nube, por eso creamos PieCloudDB, un almacén de datos nativo de la nube.

PieCloudDB saldrá oficialmente en octubre de 2022. Se trata de un almacén de datos distribuido nativo de la nube que proporciona compatibilidad completa con el lenguaje SQL, capacidades informáticas distribuidas eficientes y compatibilidad completa con las transacciones. Al mismo tiempo, realiza múltiples clústeres de un solo conjunto de datos, elasticidad de segundo nivel y la capacidad de pagar solo por la informática y el almacenamiento necesarios. 

1. ¿Por qué necesitamos PieCloudDB?

1.1 NoSQL y los lagos de datos ya no pueden satisfacer las necesidades de análisis de los usuarios

Durante mucho tiempo en el pasado, las soluciones de lago de datos NoSQL + han ocupado el mercado principal en el campo del análisis de datos, y las bases de datos NoSQL como Hadoop y HDFS también son las principales plataformas de análisis de datos. Sin embargo, como Cloudera anunció que dejará de dar soporte a la tecnología CDH, también crecen las dudas sobre plataformas NoSQL como Hadoop.

Este fenómeno se debe precisamente a que el sistema de lago de datos NoSQL + tiene deficiencias obvias en funciones importantes de análisis de datos, como el soporte de consultas complejas, el aislamiento de alta concurrencia y la consistencia.Es difícil integrar las herramientas de BI estándar basadas en SQL existentes, y NoSQL en sí mismo no lo es. adecuado para análisis avanzado (como análisis de gráficos, análisis de información geográfica, etc.) el soporte es débil. Como resultado, NoSQL comenzó a etiquetarse como "obsoleto" y dejó de tener una participación de mercado importante en el análisis de datos. 

Además, las herramientas de análisis necesarias para las infraestructuras basadas en lagos de datos y NoSQL no son fáciles de integrar e implementar. El uso de un lago de datos para el análisis de datos requiere la integración y el despliegue de múltiples componentes, lo que requiere un esfuerzo de desarrollo significativo. Debido a la falta de soporte para ANSI SQL, los usuarios generalmente necesitan tener habilidades técnicas especializadas y deben soportar altos requisitos técnicos y de costos. Además, los motores/herramientas especializados (como las bases de datos de gráficos) que requiere la plataforma suelen ser difíciles de integrar con el sistema de registro, lo que reduce la maniobrabilidad y la innovación del análisis de datos.

Estas limitaciones y desafíos impulsan la necesidad de plataformas de análisis de datos más potentes, fáciles de integrar y fáciles de usar. Las empresas y organizaciones están cada vez más inclinadas a adoptar plataformas de análisis basadas en SQL estándar.Estas plataformas pueden satisfacer las necesidades de los usuarios con una amplia gama de funciones de análisis, fácil integración e implementación, y son compatibles con las tecnologías de procesamiento y almacenamiento de datos existentes.

1.2 Es difícil que un almacén de datos basado en una base de datos relacional se adapte a un entorno de nube

Muchos almacenes de datos tradicionales convencionales, incluidos Teradata y Greenplum, son bases de datos relacionales que utilizan modelos relacionales para organizar los datos. Estos almacenes de datos tienen muchas ventajas, incluida una buena compatibilidad con SQL, ejecutar consultas complejas de manera eficiente y admitir propiedades ACID transaccionales. Sin embargo, estas bases de datos MPP tradicionales también tienen algunos defectos, como un bajo rendimiento elástico, una alta disponibilidad insuficiente e islas de datos.

Estos problemas conducen a la incapacidad de los almacenes de datos tradicionales para aprovechar al máximo las ventajas de las nubes públicas en entornos de nube. Las nubes públicas tienen muchas ventajas sobre los entornos privados, dos de las más notables son:

  • Recursos informáticos elásticos casi ilimitados: la nube pública proporciona recursos informáticos elásticos. Los usuarios pueden asignar recursos a pedido de acuerdo con las necesidades reales y realizar expansiones y contracciones elásticas según sea necesario. Los usuarios pueden solicitar los recursos informáticos necesarios de acuerdo con las necesidades comerciales sin mantener ni administrar su propia infraestructura de hardware.
  • Almacenamiento de objetos económico y de capacidad ilimitada: las nubes públicas ofrecen almacenamiento de objetos económico con una capacidad prácticamente ilimitada. El precio del almacenamiento de objetos es relativamente bajo, lo que puede proporcionar a los usuarios una capacidad de almacenamiento a gran escala, ayudar a los usuarios a reducir costos y mejorar la eficiencia. 

Con el fin de adaptarse mejor al entorno de la nube y aprovechar al máximo las ventajas de la nube pública, está surgiendo gradualmente una nueva generación de almacenes de datos. El almacén de datos nativo de la nube de nueva generación tiene un diseño de arquitectura nativo de la nube, que puede utilizar mejor las capacidades de computación elástica y almacenamiento de objetos de la nube pública. Se pueden implementar y expandir rápidamente en la nube pública y brindan capacidades de análisis y procesamiento de datos de alto rendimiento para satisfacer las necesidades del análisis de datos moderno. 

1.3 Un producto que tiene en cuenta las ventajas del data warehouse relacional y la nube pública

Los usuarios necesitan un producto que pueda tener en cuenta las ventajas de los almacenes de datos relacionales y las nubes públicas para adaptarse a la llegada de la era de la nube. En términos de motores informáticos, debe tener muchas ventajas de los almacenes de datos relacionales, ser capaz de admitir lenguaje SQL completo, tener capacidades informáticas distribuidas eficientes y ser capaz de tener características ACID de transacciones completas. En cuanto a las características de la nube pública, se da cuenta de la separación del almacenamiento y la computación, proporciona clústeres de computación elásticos, permite a los usuarios pagar solo por la computación necesaria y aprovecha al máximo las ventajas que brindan las nubes públicas. Este es el objetivo de diseño de PieCloudDB.

2. ¿Qué puede aportar PieCloudDB a los usuarios?

Como una nueva generación de almacenes de datos nativos de la nube, PieCloudDB realiza la separación de la computación y el almacenamiento en la nube del almacén de datos, teniendo en cuenta las muchas ventajas de los almacenes de datos relacionales tradicionales y los muchos beneficios que brindan las nubes públicas.

2.1 Soporte completo para SQL

PieCloudDB ha realizado mejoras significativas en PostgreSQL, realizando la función de computación distribuida y la separación de almacenamiento y computación. Además, los módulos como bloqueos, transacciones, registros, almacenamiento de tablas del sistema y tablas de usuarios se han reescrito por completo, provocando cambios subversivos. Al mismo tiempo, PieCloudDB también conserva el soporte completo de PostgreSQL para los estándares SQL, incluidas consultas complejas como agregación (Agg), subplan (Subplan), subenlace (Sublink), consulta de unión externa (Outer Join), función de agregación de ventana (Ventana agg) Y vista materializada (vista materializada) y así sucesivamente. Estas mejoras permiten que PieCloudDB brinde capacidades de consulta más eficientes y potentes al mismo tiempo que mantiene la compatibilidad con el estándar SQL.

2.2 Optimización eficiente de consultas y ejecutores coincidentes

PieCloudDB implementa un optimizador diseñado para consultas complejas y un ejecutor eficiente coincidente.

  • Optimizador diseñado para consultas complejas

El optimizador de PieCloudDB proporciona una serie de funciones integrales de optimización lógica, que incluyen la inserción de predicados, la promoción de subjuntas de subconsultas y la eliminación de uniones externas. Además, el optimizador realiza una optimización profunda basada en un modelo de costo puro, estima el costo de cada nodo en el proceso de agregación de múltiples etapas y utiliza algoritmos como la programación dinámica para generar múltiples rutas y, finalmente, selecciona la ruta con el costo más bajo para ejecutar la consulta. Estas funciones están diseñadas para mejorar el rendimiento y la eficiencia de las consultas, optimizando así el proceso de ejecución de consultas de PieCloudDB.

Como base de datos distribuida, PieCloudDB necesita implementar muchas operaciones distribuidas, incluida la redistribución de datos múltiples (reorganización) y las operaciones de agregación distribuida (agg). Para poder realizar uniones de tablas distribuidas eficientes durante las consultas entre tablas, el optimizador de PieCloudDB necesita describir completamente las características de distribución de datos para la estimación de costos distribuidos.

A través de una descripción completa de las características de distribución de datos, el optimizador de PieCloudDB puede tener en cuenta la distribución de datos en diferentes nodos, y así estimar con mayor precisión el costo de las consultas entre tablas. Esto permite que el optimizador genere planes de consulta eficientes, evite operaciones de redistribución de datos innecesarias y mejore el rendimiento y la eficiencia de las consultas.

  • Actuador eficiente para entornos distribuidos

Para cooperar con el optimizador diseñado para consultas complejas, PieCloudDB implementa un ejecutor eficiente para realizar operaciones de consulta en un entorno distribuido. Al adoptar un modelo de ejecución de múltiples grupos y etapas y realizar una gran cantidad de intercambio de datos, los ejecutores de PieCloudDB pueden ejecutar operaciones de consulta de manera eficiente en un entorno distribuido. Este modelo de ejecución puede aprovechar al máximo los recursos informáticos del sistema distribuido y mejorar el paralelismo y el rendimiento general de la consulta. Al mismo tiempo, a través de una estrecha cooperación con el optimizador, PieCloudDB puede optimizar la estrategia de ejecución del ejecutor de acuerdo con las características del plan de consulta generado por el optimizador, mejorando aún más el rendimiento y la eficiencia de la consulta.

2.3 Soporte completo para transacciones (ACID)

PieCloudDB brinda soporte completo para transacciones, incluidas las características ACID de las transacciones: atomicidad, consistencia, aislamiento y durabilidad.

  • Atomicidad: PieCloudDB garantiza que todas las operaciones en una transacción se completen con éxito o fallen y retrocedan. Si una operación en una transacción falla, todas las operaciones en la transacción se revertirán y el estado de la base de datos volverá al estado anterior al inicio de la transacción, manteniendo la consistencia de los datos.
  • Consistencia: antes de que se confirme la transacción, PieCloudDB verificará si la operación de la transacción cumple con las restricciones y reglas predefinidas para garantizar la consistencia de la base de datos. Una transacción se considera exitosa si la base de datos permanece consistente después de que se completa la transacción.
  • Aislamiento: PieCloudDB admite dos niveles de aislamiento de uso común: lectura confirmada (compromiso de lectura) y lectura repetible (lectura repetible). En el nivel de lectura confirmada, una transacción solo puede ver las modificaciones que han sido confirmadas por otras transacciones, mientras que en el nivel de lectura repetible, una transacción puede ver una instantánea coherente a lo largo de la transacción sin verse afectada por las modificaciones de otras transacciones simultáneas.
  • Durabilidad: PieCloudDB garantiza que una vez que una transacción se haya confirmado con éxito, sus modificaciones en la base de datos se guardarán de forma permanente, incluso si se produce una falla o bloqueo del sistema. Esto se logra registrando el registro de transacciones en un medio de almacenamiento estable para que pueda reproducirse durante la recuperación.

Al brindar soporte completo para las propiedades ACID de las transacciones, PieCloudDB brinda un mecanismo de administración de datos confiable y consistente. Ya sea en un entorno concurrente o ante fallas, PieCloudDB garantiza la integridad y confiabilidad de los datos.

2.4 Elasticidad del clúster de computación extrema

PieCloudDB tiene las últimas capacidades de expansión y contracción de clústeres informáticos, y puede realizar una rápida expansión y contracción de clústeres informáticos. El nodo Executor de PieCloudDB no contiene datos persistentes y las operaciones de expansión y contracción no implican el movimiento de datos. Además, los nodos Executor no acceden directamente a las tablas, transacciones y bloqueos del sistema. Al expandir el clúster informático, PieCloudDB solo necesita implementar el binario en el nuevo nodo de máquina virtual y registrarse con el servicio de metadatos. Este diseño asegura la eficiencia de las operaciones de escalado.

PieCloudDB proporciona a los usuarios un grupo de computación independiente, que está preparado para admitir una escalabilidad rápida. En este grupo informático, PieCloudDB puede lograr operaciones de expansión y contracción de segundo nivel dentro de un cierto rango. Esto significa que cuando los usuarios necesitan aumentar los recursos informáticos, PieCloudDB puede agregar rápidamente nuevos nodos informáticos para que todo el clúster pueda manejar más solicitudes simultáneas. Por el contrario, cuando los usuarios necesitan reducir los recursos informáticos, PieCloudDB también puede reducir rápidamente los nodos informáticos para ahorrar costos y recursos.

2.5 Multiclúster y alta disponibilidad

PieCloudDB admite múltiples clústeres. Los usuarios pueden iniciar varios clústeres en el mismo conjunto de datos. En un entorno de producción, a menudo se encuentra que diferentes departamentos tienen diferentes requisitos para los tamaños de clúster. En este caso, si solo hay un clúster, es necesario crear un clúster de acuerdo con la demanda máxima del clúster, lo que genera un desperdicio de recursos. En un escenario de varios clústeres, diferentes departamentos pueden crear clústeres de diferentes tamaños según sus propias necesidades, y el clúster se puede cerrar al final de la tarea.Múltiples clústeres pueden acceder al mismo conjunto de datos y compartir la misma función ACID.

Dado que PieCloudDB Executor no tiene estado, cuando un Executor falla, el Coordinador ejecutará la siguiente Consulta y los Ejecutores restantes realizarán la tarea. Durante este proceso, los usuarios no tienen percepción y no afectarán los servicios.

A través de estas características, PieCloudDB permite a los usuarios usar PieCloudDB como PostgreSQL en escenarios OLAP. Los usuarios solo pagan por el cómputo y almacenamiento que ya ha ocurrido. Los usuarios pueden iniciar y detener múltiples clústeres de diferentes tamaños a pedido para adaptarse a diferentes tipos de tareas, a fin de lograr un equilibrio entre el rendimiento y la eficiencia del desarrollo.

3. Implementación de la arquitectura nativa de la nube de PieCloudDB

Para adaptarse al entorno de la nube, PieCloudDB implementa las dos principales características nativas de la nube de clústeres y multiclústeres elásticamente escalables, y crea nodos ejecutores completamente sin estado, tablas de sistema independientes y bloqueos distribuidos.

3.1 Almacén de datos virtuales

PieCloudDB separa los datos del usuario en el almacenamiento de objetos para darse cuenta de que no es necesario mover los datos durante el proceso de expansión y contracción. Además, el nodo Ejecutor no almacena tablas del sistema, transacciones ni información de bloqueo, sino que confía en el Coordinador para resolver estos problemas, de modo que el nodo Ejecutor se convierte en un nodo sin estado y realiza un escalado de segundo nivel.

Para implementar la arquitectura multimaestro e implementar nodos coordinadores con estado, PieCloudDB utiliza servicios de metadatos para completar estas funciones. La tabla del sistema se almacena en la base de datos de KV FoundationDB en forma de clave-valor y realiza bloqueos distribuidos y transacciones distribuidas a través de las características de transacción a corto plazo y de pequeño volumen de FoundationDB. De esta forma, PieCloudDB puede manejar bloqueos y transacciones distribuidas en el nodo Coordinador y garantizar la consistencia y confiabilidad del sistema.

A través de esta serie de diseño y operaciones, PieCloudDB ha realizado un almacén de datos virtual completamente sin estado. Los usuarios pueden crear y cerrar almacenes de datos virtuales según sea necesario, sin mover datos durante el proceso de expansión y contracción, y pueden expandir y contraer nodos rápidamente. Esto permite que PieCloudDB se adapte de manera eficiente a las necesidades de diferentes escalas y cargas, y brinde almacenamiento de datos y administración de recursos informáticos flexibles.

  • Tabla del sistema: mStore

PieCloudDB almacena tuplas en forma de clave-valor en FoundationDB y utiliza la clasificación natural de FoundationDB Key para implementar la indexación. En PieCloudDB, cada tupla se codifica como un par clave-valor, donde la clave representa la información de índice de la tupla y el valor contiene el contenido de datos de la tupla. Las consultas de rango y las búsquedas de índice se pueden realizar de manera eficiente al aprovechar el orden natural de las claves de FoundationDB, lo que permite una recuperación y acceso rápidos a los datos.

Para lograr el control de concurrencia de múltiples versiones, PieCloudDB utiliza mecanismos como Xmin, Xmax y cid. Xmin y Xmax registran la información de visibilidad de las transacciones en tuplas, donde Xmin representa la primera transacción visible y Xmax representa la última transacción visible. cid (ID de compromiso) indica el ID de compromiso de la transacción. A través de estos mecanismos, PieCloudDB puede lograr el aislamiento y la consistencia de las transacciones simultáneas y admite consultas de varias versiones y operaciones de reversión.

Al almacenar tuplas como pares clave-valor, usar la clasificación natural de FoundationDB y adoptar el mecanismo MVCC, PieCloudDB puede manejar de manera eficiente el almacenamiento de datos, la indexación y el acceso simultáneo, proporcionando así servicios de base de datos confiables y de alto rendimiento.

  • Hoja de datos: oStore

PieCloudDB utiliza oStore para crear tablas de usuarios en el almacenamiento de objetos separando los datos del almacenamiento de objetos (como S3). Debido a que el almacenamiento de objetos en sí solo admite operaciones de inserción (insertar) y eliminar (eliminar), no admite operaciones de actualización (update) y agregar (adjuntar). PieCloudDB crea tablas auxiliares en mStore para implementar características de MVCC (control de concurrencia de múltiples versiones).

En la tabla auxiliar de mStore, cada tupla corresponde a un bloque de oStore, y una parte de los datos del usuario se almacena en el bloque de oStore. De esta forma, la visibilidad de cada tupla de la tabla auxiliar está asociada a la visibilidad del bloque correspondiente, realizándose así las características de MVCC. Cuando se realiza una operación de actualización (actualización) o eliminación (eliminación), PieCloudDB generará un nuevo bloque, colocará la tupla sin cambios en el nuevo bloque y colocará los datos de usuario actualizados en el nuevo bloque (por ejemplo, después de ejecutar la operación de actualización en el bloque 4, genere un nuevo bloque 5 y coloque los datos de usuario actualizados en el nuevo bloque 5). Finalmente, la mesa auxiliar completará la operación de actualización (update). 

A través de este diseño y operación, PieCloudDB puede implementar funciones de MVCC en el almacenamiento de objetos y administrar la versión y la visibilidad de los datos a través de tablas auxiliares. Esto permite que PieCloudDB admita operaciones de actualización y eliminación mientras mantiene la consistencia de los datos y la corrección del control de concurrencia.

  • Bloqueos y transacciones distribuidos

PieCloudDB utiliza el mecanismo de conflicto de compromiso de transacción de FoundationDB para lograr el acceso correcto al área compartida de bloqueos, realizando así bloqueos distribuidos.

En PieCloudDB, cuando varias transacciones necesitan acceder al área compartida, competirán y se coordinarán a través del mecanismo de transacciones de FoundationDB. Cada transacción intenta adquirir bloqueos y realizar operaciones en recursos compartidos. Si varias transacciones solicitan el mismo bloqueo compartido al mismo tiempo, el mecanismo de conflicto de compromiso de transacción de FoundationDB garantizará que solo una transacción pueda adquirir el bloqueo y operar con éxito, mientras que otras transacciones se bloquearán o revertirán.

Al utilizar el mecanismo de conflicto de confirmación de transacciones de FoundationDB, PieCloudDB puede implementar la gestión de bloqueos distribuidos para garantizar el acceso correcto a las áreas compartidas y la exclusión mutua de recursos. Este mecanismo garantiza el aislamiento y la coherencia entre múltiples transacciones, evita la competencia y los conflictos de datos y proporciona una función de bloqueo distribuido fiable.

Además, PieCloudDB también implementa transacciones distribuidas en FoundationDB y crea una arquitectura distribuida nativa de la nube a través de la implementación de mStore, oStore, bloqueos distribuidos y transacciones. Una arquitectura de este tipo puede proporcionar servicios de base de datos de alto rendimiento y alta confiabilidad, y admitir operaciones y administración de datos distribuidos.

Un excelente diseño arquitectónico es el primer paso para el éxito de un producto de base de datos. El equipo de I+D de OpenPie seguirá iterando en el producto PieCloudDB e introducirá funciones como agregación pushdown, precálculo y salto de bloques para el rendimiento, y pronto lanzará Time Travel. , Branch, Data Sharing y otras series mejoran la experiencia del usuario. PieCloudDB continuará avanzando, y con el apoyo de múltiples tecnologías centrales, como la tecnología de patentes distribuidas eMPP, el cifrado de datos transparente y sin servidor (TDE), construirá un sistema de alta seguridad, alta confiabilidad y alta disponibilidad "tan duro como El almacén de datos virtual nativo de la nube de Panshi ayuda a las empresas a maximizar el valor de los datos. ¡Bienvenido a prestar atención! 

 

 


 

 

 

 

{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/5944765/blog/10085813
Recomendado
Clasificación