1. Home
  2. Data Engineering
  3. Iceberg Catalog Configuration Generator

Iceberg Catalog Configuration Generator

Pick a catalog type, an engine and a storage backend — get a working Apache Iceberg catalog config for Spark, PyIceberg, Flink or Trino, plus a test query to check it against a real table.

6 Catalog Types 4 Engines Runs in Browser Nothing Uploaded
Catalog type
Engine
Storage
Authentication

spark-defaults.conf

spark.sql.extensions org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
spark.sql.catalog.my_catalog org.apache.iceberg.spark.SparkCatalog
spark.sql.catalog.my_catalog.type glue
spark.sql.catalog.my_catalog.warehouse s3://my-bucket/warehouse
spark.sql.catalog.my_catalog.io-impl org.apache.iceberg.aws.s3.S3FileIO
spark.sql.catalog.my_catalog.client.region us-east-1
spark.sql.defaultCatalog my_catalog

Same keys work as --conf "key=value" flags on spark-submit.

Test it — create & query a table

CREATE TABLE my_catalog.db.events (
  id BIGINT,
  event_time TIMESTAMP,
  payload STRING
)
USING iceberg
PARTITIONED BY (days(event_time));

INSERT INTO my_catalog.db.events VALUES (1, TIMESTAMP '2026-09-23 00:00:00', 'hello');

SELECT * FROM my_catalog.db.events;

How to generate an Iceberg catalog config

1

Pick your catalog

Choose Glue, REST, Nessie, Hive Metastore, JDBC or Hadoop — the generator only shows the fields that catalog type needs.

2

Pick your engine and storage

Spark, PyIceberg, Flink or Trino, plus S3, GCS, ADLS or MinIO. The config syntax and I/O implementation update instantly.

3

Copy the config and test it

Paste the generated config into your engine, then run the test CREATE TABLE / query snippet below it to confirm the catalog actually works.

Frequently Asked Questions

What Iceberg catalog types does this generator support?

AWS Glue, a REST catalog (Tabular, Polaris, Lakekeeper or any Iceberg REST-spec server), Project Nessie, a Hive Metastore, a JDBC catalog (Postgres/MySQL-backed) and the path-based Hadoop catalog. Each has its own required properties — the generator only asks for the fields that catalog type actually needs.

Does this work for PyIceberg, not just Spark?

Yes — pick an engine and the same catalog, storage and auth choices render as a spark-defaults.conf block, a ~/.pyiceberg.yaml file, a Flink CREATE CATALOG statement, or a Trino etc/catalog/*.properties file. The underlying catalog properties are the same; only the syntax around them changes per engine.

Can I use this for S3-compatible storage like MinIO?

Yes. Choosing MinIO as the storage backend adds the s3.endpoint and path-style-access properties every S3-compatible store needs, on top of the same S3FileIO implementation AWS S3 uses.

Why does Trino show a note instead of config for the Hadoop catalog?

Trino's Iceberg connector only supports metastore-backed catalogs (Glue, REST, Hive Metastore, JDBC, Nessie) — it has no path-based catalog type. Pick one of those, or query a Hadoop-catalog warehouse from Spark, PyIceberg or Flink instead.

Is my access key or token sent anywhere?

No — this tool runs entirely in your browser. Nothing you type, including credentials, ever leaves the page or reaches SolutionGigs' servers.