Cataloghi dati
Catalogs provide persistent metadata layers that let Ilum's execution engines (Spark, Trino, DuckDB, and Flink) share table definitions across sessions, jobs, and engines. Ilum supports four catalogs: Hive Metastore, Progetto Nessie, Catalogo di Unitye DuckLake. Each is integrated with workloads, data storage, and session management, enabling reliable and collaborative data workflows. Tables defined once are queryable from every engine that can connect to the same catalog.
Cataloghi supportati
Catalogo Hive (impostazione predefinita)
- Catalogo Hive sfrutta il metastore Apache Hive per archiviare i metadati delle tabelle in modo permanente.
- Lo è abilitato per impostazione predefinita in Ilum e utilizzato automaticamente per tutte le operazioni Spark SQL.
- No additional setup is required. Ilum configures Hive Metastore and integrates it with Spark, Trino, storage, and the Table Explorer UI.
- Ideale per i classici scenari di data lakehouse in cui la durabilità dei metadati, l'individuazione degli schemi e la compatibilità con strumenti come Trino, Hive o Superset sono fondamentali.
Catalogo Nessie (opzionale)
- Catalogo Nessie Integra Progetto Nessieabilitante Controllo della versione simile a Git per il tuo data lake.
- Ti permette di ramo, cartellinoe fondersi modifiche nel catalogo dati, portando flussi di lavoro collaborativi e verificabili nelle tabelle.
- Nessie è opzionale a Ilum e richiede una configurazione aggiuntiva. Una volta configurato, si integra con Spark tramite Apache Iceberg.
- Ideale per analisi con versione, sperimentazione dei dati, pipeline CI/CD e scenari che richiedono un rollback completo a livello di catalogo o ambienti isolati.
Unity Catalog (Optional)
- Unity Catalog OSS is an open-source data catalog for lakehouse architectures, providing a unified metadata layer with built-in governance features.
- It uses a three-level namespace (catalog → schema → table) for better data organization and provides comprehensive audit logging and data lineage.
- Unity Catalog is opzionale in Ilum and requires configuration. It offers fine-grained access control and centralized governance across workspaces.
- ⚠️ Known Limitation: Unity Catalog OSS currently has compatibility issues with MinIO. For production use, AWS S3, GCS, or ADLS are recommended.
- Best suited for organizations needing centralized governance, detailed audit trails, and fine-grained access control for their data lakehouse.
DuckLake (Default for DuckDB)
- DuckLake is a catalog built to bring concurrent capabilities to DuckDB.
- It is based on the parquet format and supports multiple backends.
- It supports time travel queries, schema evolution, and partitioning.
- Lo è abilitato per impostazione predefinita in Ilum and used automatically for all DuckDB operations, but can’t be integrated with anything else than DuckDB.
Confronto delle funzionalità
| Caratteristica / Aspetto | Catalogo Hive (impostazione predefinita) | Catalogo Nessie (opzionale) | Unity Catalog (Optional) | DuckLake (Default for DuckDB) |
|---|---|---|---|---|
| Persistenza | Yes – table metadata stored in Hive Metastore | Yes – versioned metadata via Nessie service | Yes – metadata stored in Unity Catalog metastore | Yes - metadata stored in attached metadata DB |
| Controllo della versione | No | Yes – supports branches, tags, merges | No – rely on table format features | Yes - supports time-travel and schema evolution |
| Transazioni multi-tabella | No | Yes – atomic changes across multiple tables | No | Yes - has concurrent access over multi-table operations |
| Abilitato per impostazione predefinita | Sì | No (facoltativo, deve essere configurato manualmente) | No (facoltativo, deve essere configurato manualmente) | Yes (for DuckDB) |
| Supporto del formato | Parquet, ORC, Delta, Iceberg (tramite cataloghi esterni) | Iceberg | Iceberg, Delta Lake, Parquet | Parquet |
| MinIO Support | ✅ Yes | ✅ Yes | ⚠️ Limited (known compatibility issues) | ✅ Yes |
| Ideale per | Schemi stabili, analisi SQL, data lakehouse tradizionale | Rami sperimentali, governance, flussi di lavoro di promozione dei dati | Centralized governance, audit trails, multi-workspace control | Multi-user workloads on DuckDB |
| Compatibilità | Ampiamente supportato da Spark, Hive, Trino, Superset, ecc. | Supportato in Spark, Flink, Trino | Supported in Spark, Delta Lake, various cloud platforms | DuckDB only |
| Integrazione in Ilum | Completamente automatizzato, configurato immediatamente | Richiede il servizio Nessie esterno e la configurazione di Spark | Requires Unity Catalog service and Spark config | Configured automatically |
Guida alla selezione del catalogo
| Caso d'uso | Catalogo Hive | Catalogo Nessie | Catalogo di Unity | DuckLake |
|---|---|---|---|---|
| Conservazione a lungo termine dei tavoli | ✅ | ✅ | ✅ | (if using DuckDB) |
| Ramificazione/tagging dei dati simile a Git | ✅ | |||
| Pipeline transazionali multi-tabella | ✅ | ✅ | ||
| Analisi SQL tradizionale + BI | ✅ | ✅ | ✅ | |
| Development → Staging → Prod workflows | ✅ | ✅ | ✅ | |
| Verificabilità e rollback | ✅ | ✅ | ✅ | |
| Facile compatibilità con Trino/Superset | ✅ | (indiretto) | (indiretto) |
Come funzionano i cataloghi in Ilum
- Catalogo Hive è integrato direttamente in Ilum Core. Viene fornito con un metastore Hive pre-distribuito ed è connesso allo storage Ilum predefinito (ad esempio, MinIO o S3).
- Catalogo Nessie è configurato dall'utente. È necessario distribuire un servizio Nessie e configurare le sessioni Spark per connettersi a esso utilizzando le proprietà del catalogo Iceberg.
- Catalogo di Unity is user-configured. You must enable the Unity Catalog service via Helm and configure your metastore type. Note the MinIO compatibility limitation for production deployments.
- DuckLake is automatically set up in DuckDB workloads.
- Table Explorer in Ilum automatically lists Hive tables. Nessie and Unity Catalog tables can also be made visible with proper catalog configuration in Spark jobs.
Per informazioni dettagliate sulla distribuzione e l'abilitazione di componenti opzionali come Nessie, visitare:
👉 Guida all'implementazione di Ilum