2011-03-15 11 views
9

¿Cuáles son los argumentos a favor y en contra de usar Greenplum en lugar de PostgreSQL en un entorno de aplicación web (django)?Greenplum vs PostgreSQL

Mi reacción es preferir el enfoque de código abierto de PostgreSQL y una gran base de conocimiento.

Mi configuración (aunque me gustaría saber acerca de cualquier otra configuración) es una empresa mediana con 2 servidores web y (actualmente) 2 servidores de bases de datos.

Las áreas de contraste son binarias data crunching, número de nodos en el replication y mi favorito personal: communitiy support y soporte técnico calificado.

¿Cuáles son los pros y los contras de utilizar Greenplum en lugar de PostgreSQL?

+0

¿Debería ser 'comunidad wiki'? –

+1

Greenplum ahora es de código abierto: http://greenplum.org/ –

Respuesta

9

No sé mucho sobre Greenplum, a excepción de rozar rápidamente el enlace que envía. Un almacén de datos no es lo mismo que un almacén de datos operativos transaccionales. El primero es para consultas ad hoc, análisis estadísticos, análisis dimensional, acceso de lectura en su mayoría a datos históricos. El último es para datos de lectura/escritura en tiempo real. Ellos son complementarios.

Supongo que quieres PostgreSQL.

¿Quién está presionando a Greenplum y por qué? Si se presenta como una alternativa, profundizaría y rebatiría el argumento.

+6

Tiene razón en que un almacén de datos no es lo mismo que un almacén de datos transaccional/operacional, pero Greenplum resulta ser ambos. La característica principal de Greenplum es que paraleliza el almacenamiento y el cálculo en múltiples instancias de (una versión patentada de) PostgreSQL en servidores físicos separados. Esto proporciona beneficios para cargas de trabajo analíticas y transaccionales. GP también tiene características adicionales para almacenamiento de datos (almacenamiento de columnas y compresión), pero también está diseñado para manejar el procesamiento transaccional de forma simultánea. Sin embargo, puede ser peor que PostgreSQL. – goodside

2

Creo que Greenplum aprovecha mejor el procesamiento paralelo. Está basado en PostgreSQL, sin embargo.

Greenplum tiene un free community edition. Siempre puede descargar y probar en su propio entorno.

3

Dado que Greenplum utiliza el procesamiento en paralelo, habrá una sobrecarga con la ejecución de muchas consultas de lectura pequeñas ya que el nodo maestro necesita comunicarse con los nodos de datos subyacentes para recuperar las respuestas a todas estas consultas. Para una consulta que toma milisegundos, se espera un orden de magnitud de rendimiento más lento para Greenplum.

3

Si está buscando una solución de almacenamiento de datos basada en PostgreSQL, también vería GridSQL. Es una capa de paralelización sobre múltiples instancias de PostgreSQL, y es de código abierto y gratuito.

Como se menciona en otros comentarios, no funcionará bien para muchas consultas de milisegundos pequeños, pero lo ayudará enormemente en consultas de larga ejecución. GridSQL tampoco incluirá las optimizaciones de DW, como el almacenamiento en columnas que tiene Greenplum, pero puede aprovechar el particionamiento de exclusión de restricciones (por ejemplo, subtablas por rango de fechas) combinado con el paralelismo para obtener los resultados de su consulta más rápido.

También puede usarlo en un único servidor multinúcleo, ya que PostgreSQL solo usará un único núcleo cuando procese una consulta.

1

Si el procesamiento de datos demora más de una hora, obtendrá aumentos de rendimiento lineal para cada núcleo que agregue. Realmente no vale la pena el esfuerzo por algo que toma menos tiempo para atravesar.

7

Greenplum es una adaptación MPP de PostgreSQL. Está optimizado para almacenamiento y/o análisis en grandes conjuntos de datos y no funcionaría tan bien en un entorno transaccional. Si necesita un entorno DW grande, mire Greenplum. Si necesita OLTP o tamaños de base de datos más pequeños (menos de 10 TB), consulte PostgreSQL.

3

Greenplum es un DBMS analítico (OLAP) DBMS. PostgreSQL es un OLTP DBMS. Y, en general, no hay una sola solución en el mercado que pueda ser buena tanto en OLAP como OLTP, al mismo tiempo, puede encontrar mis pensamientos en ella here

El backend de WebApp siempre creará cargas de trabajo OLTP. Greenplum tiene una gran sobrecarga para el procesamiento de transacciones, ya que es un sistema distribuido, así que no esperes que esto te brinde más de 500-600 TPS. Postgres en contraste puede ir a cientos de miles de TPS con el ajuste correcto.

Por el contrario, cuando necesita una carga de trabajo OLAP, Postgres puede ofrecerle solo un único procesamiento de host, sin particiones con eliminación de partición dinámica, sin compresión, sin almacenamiento de columnas. Mientras Greenplum podría crunch sus datos en paralelo en el clúster.

Así que la solución que está buscando es un caso típico de almacenamiento de datos - utilizar la solución OLTP para alta carga de trabajo transaccional, extraer los datos para el DWH con ETL/ELT y ejecute datos complejos crujido consultas sobre ella

Por el momento, tanto PostgreSQL como Greenplum son productos de código abierto, por lo que puede elegir cualquiera de ellos, pero la causa es que la comunidad PostgreSQL es más grande ATM