Vai al contenuto principale

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 / AspettoCatalogo Hive (impostazione predefinita)Catalogo Nessie (opzionale)Unity Catalog (Optional)DuckLake (Default for DuckDB)
PersistenzaYes – table metadata stored in Hive MetastoreYes – versioned metadata via Nessie serviceYes – metadata stored in Unity Catalog metastoreYes - metadata stored in attached metadata DB
Controllo della versioneNoYes – supports branches, tags, mergesNo – rely on table format featuresYes - supports time-travel and schema evolution
Transazioni multi-tabellaNoYes – atomic changes across multiple tablesNoYes - has concurrent access over multi-table operations
Abilitato per impostazione predefinitaNo (facoltativo, deve essere configurato manualmente)No (facoltativo, deve essere configurato manualmente)Yes (for DuckDB)
Supporto del formatoParquet, ORC, Delta, Iceberg (tramite cataloghi esterni)IcebergIceberg, Delta Lake, ParquetParquet
MinIO Support✅ Yes✅ Yes⚠️ Limited (known compatibility issues)✅ Yes
Ideale perSchemi stabili, analisi SQL, data lakehouse tradizionaleRami sperimentali, governance, flussi di lavoro di promozione dei datiCentralized governance, audit trails, multi-workspace controlMulti-user workloads on DuckDB
CompatibilitàAmpiamente supportato da Spark, Hive, Trino, Superset, ecc.Supportato in Spark, Flink, TrinoSupported in Spark, Delta Lake, various cloud platformsDuckDB only
Integrazione in IlumCompletamente automatizzato, configurato immediatamenteRichiede il servizio Nessie esterno e la configurazione di SparkRequires Unity Catalog service and Spark configConfigured automatically

Guida alla selezione del catalogo

Caso d'usoCatalogo HiveCatalogo NessieCatalogo di UnityDuckLake
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


Passaggi successivi