Ctrl K
ComunidadGuías…
Apache Cloudberry (Incubating)
✓ ficha editorial verificadaCaibig-dataccloudberry

Apache Cloudberry (Incubating) - MPP Database Open Source

Apache Cloudberry es una base de datos MPP open source avanzada derivada de Greenplum Database 7 pero construida sobre kernel PostgreSQL moderno. Ofrece procesamiento paralelo distribuido, soporte para PostGIS y Apache MADlib para machine learning in-database, cifrado transparente de datos, políticas de contraseñas robustas y motor híbrido PAX. Compatible con migración desde Greenplum usando gpbackup/cbcopy. Soporta despliegue en on-premise (RPM/DEB) y nube pública (AWS/Azure/GCP). Arquitectura MPP shared-nothing con coordinator node y segment nodes distribuidos, MVCC para consistencia, Interconnect UDP/TCP. Requiere x86_64/AARCH64, 16+ cores, 32+ GB RAM, 10 Gbps NIC, filesystem XFS. Herramientas oficiales: gpbackup/gprestore (backup paralelo), cbcopy (migración). Gobernanza Apache Software Foundation bajo licencia Apache-2.0.

Apache Cloudberry (Incubating)

Base de datos MPP de código abierto avanzada derivada de Greenplum con kernel PostgreSQL moderno, para analítica distribuida y cargas de trabajo AI/ML a escala petabyte.

¿Qué es Apache Cloudberry?

Apache Cloudberry es una base de datos MPP (Massively Parallel Processing) de código abierto avanzada y madura, derivada del código fuente de Greenplum Database 7 pero construida sobre un kernel PostgreSQL más moderno. Es un proyecto incubado en la Apache Software Foundation bajo el modelo Apache-2.0, garantizando gobernanza neutral y toma de decisiones basada en mérito.

Cloudberry puede servir como data warehouse y también para cargas de trabajo de analítica a gran escala e IA/ML. Soporta desde terabytes hasta petabytes de datos sobre hardware commodity, máquinas virtuales o nube pública.

¿Para quién es?

  • Organizaciones que migran desde Greenplum Database y buscan compatibilidad operativa
  • Equipos de analítica que requieren procesamiento paralelo distribuido
  • Proyectos de IA/ML que necesitan machine learning in-database con Apache MADlib
  • Entornos empresariales que valoran gobernanza Apache y neutralidad vendor
  • Plataformas cloud (AWS, Azure, GCP) con despliegue en VMs o contenedores

Casos de uso principales

  1. Data Warehouse MPP: Almacenamiento y consulta distribuida de grandes volúmenes de datos con procesamiento paralelo.
  2. Analítica OLAP: Consultas complejas sobre datasets masivos con ejecución paralela en segmentos.
  3. Machine Learning In-Database: Uso de Apache MADlib para algoritmos ML directamente en la base de datos.
  4. Análisis Espacial: Extensiones PostGIS para consultas geoespaciales distribuidas.
  5. Migración desde Greenplum: Migración sencilla usando herramientas oficiales como cbcopy y gpbackup.

Arquitectura MPP

Apache Cloudberry utiliza arquitectura MPP (shared-nothing) con múltiples hosts que trabajan conjuntamente. Cada nodo tiene su propio procesador, memoria, disco y sistema operativo.

Nodos del sistema:

  • Coordinator Node: Puerta de entrada que acepta conexiones de clientes y consultas SQL, asigna tareas a nodos de datos. Contiene tablas de sistema con metadatos pero NO almacena datos de usuario.
  • Segment Nodes: Procesos Postgres individuales que almacenen porciones de los datos y ejecutan partes de las consultas. Típicamente 2-8 segmentos por host segment.
  • Interconnect: Capa de red usando UDP con control de flujo (UDPIFC) por defecto, con verificación de paquetes que supera el alcance de UDP para equivalencia a TCP en fiabilidad.

El sistema utiliza Multiversion Concurrency Control (MVCC) para consistencia de datos y minimiza contention de locks. Los segmentos se distribuyen equitativamente para optimizar rendimiento.

Requisitos del Sistema

ComponenteEntorno DesarrolloEntorno Producción
CPU4 cores16+ cores
Memoria8 GB32+ GB
DiscoSSDSSD con RAID recomendado
Red10 Gbps NIC (2 preferido)10 Gbps NIC (2 preferido)
Sistema OperativoRocky Linux 8/9, Ubuntu 22.04/24.04, RHEL 8/9Mismo que desarrollo
FilesystemXFSXFS obligatorio

Soporte de arquitectura: x86_64 (disponible desde 2.1+) y AARCH64 (planificado para 2.2).

Instalación y Despliegue

Vía RPM/DEB:

La instalación automática resuelve dependencias como bash, openssh, rsync, perl, python3, libcurl, libevent, libidn2, libselinux, libstdc++, libuuid, libuv, libxml2, libyaml, libzstd, lz4, openldap, openssl, pam, readline, pcre2, xz para RHEL/Rocky Linux.

Compilación desde fuente:

git clone https://github.com/apache/cloudberry.git
cd cloudberry
make
make install

Docker (desarrollo/testing):

Existen imágenes Docker comunitarias en woblerr/docker-cloudberry para despliegues single-node y multi-node, aptas para desarrollo, testing y aprendizaje.

Persistencia de Datos

  • Los datos se almacenan exclusivamente en nodos segment, NO en el coordinator
  • Recomendado: 2 discos SAS independientes RAID1 para sistema + 10 discos SAS RAID5 para datos
  • Usar LVM para gestión flexible de discos con volumes lógicos consecutivos (/data0, /data1, etc.)
  • Capacidad máxima al 70% para archivos temporales y evitar degradación de rendimiento
  • Network file systems NO soportados; storage compartido debe presentarse como block device

Configuración de Red

  • Datos exchange network: 2 NICs de 10 Gbps con bonding (BONDING_OPTS='mode=4 miimon=100 xmit_hash_policy=layer3+4')
  • Gateway por defecto debe usar bond0 del data exchange network
  • TCP idle connection > 12 horas entre management console y database host
  • Switch convergence ratio recomendado: 4:1 (saturación significativa a 6:1)
  • Soporta IPv4 e IPv6

Seguridad

Cifrado de Datos:

Transparent Data Encryption (TDE) para proteger datos en reposo y en tránsito.

Autenticación:

  • Passwords guardados como MD5 o SCRAM-SHA-256 hashes en pgauthid
  • PermitEmptyPasswords deshabilitado por defecto
  • UseDNS deshabilitado para evitar resolución DNS lenta

Auditoría:

Log auditing para detectar amenazas de seguridad.

Row-Level Security:

Políticas RLS permiten definir acceso a filas específicas por usuario.

Password Profiles:

Controlan políticas de contraseñas: bloqueo tras fallos de login, reutilización limitada.

Nota sobre endpoint security software: Software antivirus/protección puede interferir con operaciones. Testear en entorno no-producción.

Backup y Restauración

gpbackup/gprestore (paralelo):

  • Usa ACCESS SHARE locks en lugar de EXCLUSIVE, permitiendo DDL durante backups
  • Escala independientemente del número de segmentos
  • Cada segment host escribe a disco local simultáneamente
  • Archivos diseñados para restauración granular futura con dependencias

pg_dump/pg_restore (no-paralelo):

Solo para casos especiales. Más lento porque todos los datos pasan por el coordinator. Requiere modificar CREATE TABLE statements para incluir DISTRIBUTED clause.

# Backup paralelo completo
gpbackup -d postgresql://gpadmin@localhost:5432/postgres

# Restauración completa
gprestore -d postgresql://gpadmin@localhost:5432/postgres

Migración y Actualización

cbcopy (herramienta oficial):

Utilidad poderosa para migración eficiente entre Greenplum 6.x/7.x → Cloudberry y actualizaciones 1.x → 2.x.

# Migrar metadata
cbcopy --source-host=127.0.0.1 --source-port=15432 \
    --source-user=gpadmin --dest-host=127.0.0.1 \
    --dest-port=25432 --dest-user=gpadmin \
    --full --metadata-only --with-global-metadata

# Migrar datos
cbcopy --source-host=127.0.0.1 --source-port=15432 \
    --source-user=gpadmin --dest-host=127.0.0.1 \
    --dest-port=25432 --dest-user=gpadmin \
    --full --data-only --truncate --copy-jobs=8

Modos: --full, --dbname, --schema, --include-table, --append, --truncate.

Ventajas

  • Kernel PostgreSQL moderno: Leverages upstream features y rich PostgreSQL ecosystem
  • Compatibilidad Greenplum: Migración sencilla con gpbackup/cbcopy
  • Vendor-neutral: Gobernanza Apache, decisiones merit-based
  • Rendimiento escalable: Parallel query execution e incremental materialized views
  • Multicarga de trabajo: PostGIS + MADlib en single MPP engine
  • Seguridad empresarial: TDE, password policies, PAX storage engine, dynamic tables

Limitaciones

  • No soporta network file systems (solo block devices presentados)
  • Docker/Compose oficial no documentado; imágenes comunitarias solo para desarrollo/testing
  • Requiere configuración manual de kernel parameters, SELinux, firewall, NTP
  • Hyperthreading debe deshabilitarse en BIOS Intel para mejor isolation entre resource groups
  • cbcopy es contribución comunitaria, no mantenido oficialmente por Apache

Preguntas Frecuentes

¿Puedo usar Cloudberry para reemplazar clusters Greenplum existentes?

Sí. Uno de los objetivos es compatibilidad con Greenplum. Migrar usando gpbackup o cbcopy.

¿Cuál es la diferencia con Greenplum Database?

Cloudberry toma el codebase de Greenplum 7 pero tiene kernel PostgreSQL más nuevo y moderno, con más features.

¿Soporta Docker Compose oficial?

No hay documentación oficial para Docker Compose. Existen imágenes comunitarias en woblerr/docker-cloudberry para desarrollo/testing.

¿Qué versiones de Java soporta?

Open JDK 8/11/17 y Oracle JDK 8/11/17 para PL/Java y PXF (AdoptOpenJDK recomendado).

¿Cómo validar una migración con cbcopy?

cbcopy valida automáticamente comparando row counts entre source y target. Logs de error en $USER/gpAdminLogs/cbcopy_$timestamp.log.

Relacionado en HostingByte

Alternativas y comparativas · Guías de HostingByte

Fuentes verificadas

Fuentes y verificación
Quality gate 100/100 · información trazable para SEO/GEO
Fuente 1 ↗Fuente 2 ↗Fuente 3 ↗Fuente 4 ↗Fuente 5 ↗Fuente 6 ↗Fuente 7 ↗Fuente 8 ↗Fuente 9 ↗Fuente 10 ↗
Citación para IA y agentes
Resumen citable, canonical y fuentes verificadas en texto plano.
llms.txt de esta ficha →