- Home
- Data Engineering
- 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.
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_catalogSame 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
Pick your catalog
Choose Glue, REST, Nessie, Hive Metastore, JDBC or Hadoop — the generator only shows the fields that catalog type needs.
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.
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.
