Noticias

Juguemos: Splintered Big Data PostgreSQL

Todo el mundo sabe que necesita Apache Hadoop cuando tiene grandes cantidades de datos, ¿verdad? Es una plataforma informática de clúster asequible y escalable horizontalmente, ideal para casos de uso de almacenamiento de datos. Y talego de quicio a los sistemas clásicos de administración de bases de datos relacionales como PostgreSQL, que al punto que pueden seguir el ritmo cuando se juega con un terabyte de datos, y mucho menos con un petabyte. ¿Ley? Quizás. Echemos otro vistazo a PostgreSQL y veamos qué puede hacer.

¿Qué tal una buena GPU?

Los procesadores gráficos (GPU) son la piedra angular de la revolución de la inteligencia sintético (IA). Las GPU se caracterizan por operaciones aritméticas paralelas y proporcionan una gran potencia informática a un costo relativamente bajo, lo que las hace ideales para operaciones intensivas desde el punto de perspectiva computacional (a diferencia de las E / S), como el entrenamiento de redes neuronales artificiales. Todavía son congruo buenos para cargas de trabajo de computación intensivas como almacenamiento de datos y examen. Combinada con operaciones vectorizadas y bibliotecas de E / S directas para SSD NVMe, la gran densidad de núcleo de una GPU moderna de nivel de servidor puede ofrecer básicamente tanto rendimiento en un solo chasis de servidor de 4U como un gran clúster de servidores Hadoop normales.

¿Qué significa eso? Bueno, PostgreSQL es en extremo desplegable por diseño, y una de esas extensiones del núcleo de PostgreSQL es HeteroDB PG-Stream. PG-Strom es una extensión de código libre que permite a PostgreSQL usar las GPU de Nvidia para acelerar consultas analíticas voluminosas y complejas. HeteroDB cree que PG-Strom puede habilitar un único servidor de cojín de datos PostgreSQL mejorado con múltiples GPU instaladas para manejar hasta rodeando de 100 TB de datos con un rendimiento de consultas de rodeando de 40 GB / s.

No vamos a pugnar el solaz de remisión, pero las estadísticas de rendimiento como esta son congruo impresionantes en comparación con Hadoop, que generalmente requiere rodeando de 28 servidores agrupados para manejar una carga de trabajo similar, basada en una configuración típica de 20TB de medios de almacenamiento por host y replicación de HDFS 3x. más gastos generales. Es probable que 28 piezas de hierro de tamaño prolijo (normalmente se esperan Hadoop reciente de 128-256 GB de RAM por host y normalmente 16-32 núcleos de CPU por sistema) tengan un costo total de propiedad levemente superior al de una sola caja subida con algunos Nvidia Tesla GPU, incluso si se alquilan desde la cirro de su computadora preferida, en comparación con las compradas y operadas en las instalaciones.

Dos pueden pugnar el solaz

Escucho lo que dices: “Tengo un poco al septentrión de un petabyte de datos, no un poco al sur de 100 terabytes, y un servidor PostgreSQL simplemente no lo hará por mí, sin importar cuán impresionantes sean las estadísticas. Por otra parte, la caja podría fracasar, ¿y luego qué? Toda mi infraestructura de informes y examen habría fallado «. No te preocupes. PostgreSQL lo tiene cubierto. PostgreSQL interpretación 11 y posteriores tienen un soporte nativo congruo impresionante para la fragmentación a través de las funciones de superficie de datos externos y particionamiento. Básicamente, declaras una tabla con particionamiento basado en la organización de partición de tu sufragio y luego delegas las particiones de la tabla a tablas remotas en otros servidores PostgreSQL usando la función de contenedor de datos externos postgres_fdw. Al realizar la partición, puede designar entre las estrategias de partición RANGE, LIST o HASH.

Una superioridad de este enfoque es que el cliente no necesita retener nadie sobre la ubicación de los datos, solo necesita consultar la tabla en el nodo principal, que luego subconsulta las particiones remotas y usa el predicado para compendiar los resultados, pushdowns y otras funciones agradables ejecutan las consultas de la forma más valioso posible. Esto todavía se aplica a las consultas INSERT y UPDATE, combinaciones de tablas cruzadas, subconsultas correlacionadas, etc. Otro beneficio es que todas las consultas, incluidas las consultas INSERT y UPDATE, son completamente ácidas (atómicas, consistentes, aisladas y persistentes) transaccionales, incluso consultas distribuidas son varios servidores de bases de datos fragmentados. Esto ofrece otros beneficios de la inmediatez de los datos que son difíciles de alcanzar con soluciones como Apache Hive.

«Sí Sí»Te escucho bramar «Pero los procesos de escritura entrantes afectarían demasiado a este nodo principal y las consultas de leída analíticas del mismo nodo, eso simplemente no es factible para mis deyección».. Bueno, PostgreSQL todavía tiene algunas características de replicación muy buenas. La replicación de transmisión de PostgreSQL le permite configurar uno o más servidores de replicación de destinatarios. Los servidores de destinatarios de replicación pueden ser opcionalmente síncronos, es proponer, las transacciones no se comprometen hasta que sean confirmadas por los servidores de destinatarios involucrados. Con una combinación de replicación sincrónica y asincrónica, que posiblemente incluya relés en cascada, debería poder proporcionar una configuración que se adapte a sus deyección en la que las escrituras van al perito pero leen consultas en instancias de réplica.

Por otra parte, una configuración de PostgreSQL aceptablemente coordinada en una configuración de detención paralelo generalmente puede aventajar a los motores de laguna de datos como Apache Hive y SparkSQL, que pueden desmoronarse con más de una docena de consultas simultáneas.

¿Demasiado complicado a la medio?

«Suena complicado de configurar y sostener» tu dices. Bueno, hay algunos parámetros para configurar y todavía algunas consideraciones importantes para la suscripción disponibilidad. En comparación con los fielmente miles de parámetros de configuración y ajuste que necesita conocer para configurar y sostener un clúster Hadoop estable y de detención rendimiento, una configuración de Shard PostgreSQL es objetivamente menos compleja.

«Está aceptablemente, pero – Hadoop tiene conectividad de tienda de blobs, lo que significa que puedo juntar y lograr a mis datos en un sistema de almacenamiento financiero como Amazon S3, Azure Blob Store o Google Cloud Storage». Bueno aqui me tienes Si necesita una posibilidad de almacenamiento de datos que se ejecute al beocio costo de almacenamiento posible, es posible que en verdad esté mejor con Apache Hive, Presto / Trino o similares. Si su sistema de datos no tiene que estar en itinerario todo el tiempo, un entorno Apache Hadoop o Spark basado en la cirro y de corta duración compatible con la plataforma de almacenamiento de blobs de su proveedor de servicios en la cirro todavía puede tener sentido comercial para usted. ¡OXO!

Sin requisa, si su objetivo es un gran rendimiento y suscripción disponibilidad conexo con una escalabilidad flexible a un precio controlado, un clúster de PostgreSQL aceptablemente estructurado y de gran barriguita que ejecute la extensión de GPU PG Stream de HeteroDB podría ser una buena posibilidad para usted.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba