Skip to main content

JDBC Catalog

writer.json
{
"type": "ICEBERG",
"writer": {
"catalog_type": "jdbc",
"jdbc_url": "jdbc:postgresql://host.docker.internal:5432/iceberg",
"jdbc_username": "iceberg",
"jdbc_password": "password",
"normalization": false,
"iceberg_s3_path": "s3a://warehouse",
"s3_endpoint": "http://host.docker.internal:9000",
"s3_use_ssl": false,
"s3_path_style": true,
"aws_access_key": "admin",
"aws_region": "ap-south-1",
"aws_secret_key": "password",
"iceberg_db": "ICEBERG_DATABASE_NAME"
}
}

JDBC Configuration Parameters

ParameterSample ValueDescription
catalog_typejdbcType of catalog. Use jdbc for a PostgreSQL-based catalog tests.
jdbc_urljdbc:postgresql://host.docker.internal:5432/icebergJDBC URL for connecting to the PostgreSQL catalog.
jdbc_usernameicebergUsername for the PostgreSQL catalog.
jdbc_passwordpasswordPassword for the PostgreSQL catalog.
normalizationfalseFlag to enable or disable data normalization.
iceberg_s3_paths3a://warehouseS3 path where the Iceberg data/metadata files will be stored.
s3_endpointhttp://host.docker.internal:9000Endpoint for the S3 service (Minio in this case).
s3_use_sslfalseBoolean flag to determine if SSL should be used when connecting to S3.
s3_path_styletrueUse path-style addressing for the S3 API.
aws_access_keyadminAWS access key (or Minio key for local testing).
aws_secret_keypasswordAWS secret key (or Minio secret for local testing).
iceberg_dbolake_icebergName of the database to be created in the Iceberg catalog.

You can query the data via:

SELECT * FROM CATALOG_NAME.ICEBERG_DATABASE_NAME.TABLE_NAME;
  • CATALOG_NAME can be: jdbc_catalog, hive_catalog, rest_catalog, etc.
  • ICEBERG_DATABASE_NAME is the name of the Iceberg database you created / added as a value in writer.json file.

If you are build olake locally (using ./build.sh command), change the config to:

  1. jdbc_url": "jdbc:postgresql://localhost:5432/iceberg"
  2. s3_endpoint": "http://localhost:9000"

For S3 related permissions which is needed to write data to S3, refer to the AWS S3 Permissions documentation.


Need Assistance?

If you have any questions or uncertainties about setting up OLake, contributing to the project, or troubleshooting any issues, we’re here to help. You can:

  • Email Support: Reach out to our team at hello@olake.io for prompt assistance.
  • Join our Slack Community: where we discuss future roadmaps, discuss bugs, help folks to debug issues they are facing and more.
  • Schedule a Call: If you prefer a one-on-one conversation, schedule a call with our CTO and team.

Your success with OLake is our priority. Don’t hesitate to contact us if you need any help or further clarification!