Skip to main content

What is a Catalog?

A catalog in Apache Iceberg is a fundamental abstraction that provides:
  • Table Discovery: Listing and locating tables within namespaces
  • Metadata Management: Tracking table metadata and schema evolution
  • Atomic Operations: Ensuring ACID guarantees for table commits
  • Namespace Organization: Hierarchical organization of tables

How Catalogs Work

Iceberg catalogs implement the Catalog interface, which provides core operations:

Available Catalog Implementations

Iceberg provides several catalog implementations for different use cases:

Hive Metastore

Use existing Hive metastore infrastructure

AWS Glue

Native AWS Glue catalog integration

JDBC

Store metadata in any relational database

Nessie

Git-like operations with multi-table transactions

REST

Language-agnostic REST catalog service

Hadoop

File system-based catalog for development

Catalog vs TableOperations

While catalogs handle table discovery and high-level operations, TableOperations handle the low-level metadata read/write operations:

Choosing a Catalog

Consider these factors when selecting a catalog:

Namespace Management

Catalogs that implement SupportsNamespaces provide hierarchical organization:

Catalog Properties

Common catalog properties across implementations:

Security Considerations

When working with encrypted tables, catalogs must:
  • Store encryption key metadata securely
  • Ensure key rotation is properly tracked
  • Maintain audit logs for key access
  • Implement proper access controls
See the Encryption documentation for detailed requirements.

Next Steps

Build Custom Catalog

Learn how to implement your own catalog

JDBC Catalog

Use relational databases for metadata

Nessie Integration

Git-like versioning for your data lake

Storage Configuration

Configure storage backends