Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add read support for S3 Tables in Iceberg #24815

Merged
merged 3 commits into from
Feb 6, 2025
Merged

Conversation

ebyhr
Copy link
Member

@ebyhr ebyhr commented Jan 28, 2025

Description

Supporting only read operations because Iceberg REST catalog in Glue doesn't support stage-create option Trino Iceberg connector depends on.
This PR adds support for SigV4. Also, make view-endpoints-supported configurable because S3 Tables doesn't support view endpoints.

Fixes #24679

Release notes

## Iceberg
* Add support for reading [S3 Tables](https://aws.amazon.com/s3/features/tables/). ({issue}`24815`)

@cla-bot cla-bot bot added the cla-signed label Jan 28, 2025
@github-actions github-actions bot added the iceberg Iceberg connector label Jan 28, 2025
@ebyhr ebyhr force-pushed the ebi/iceberg-s3-tables branch from 74bf75c to f74a78e Compare January 28, 2025 23:31
@ebyhr ebyhr changed the title Add support for SigV4 in Iceberg Add support for S3 Tables in Iceberg Jan 28, 2025
@ebyhr ebyhr force-pushed the ebi/iceberg-s3-tables branch from f74a78e to 18c568e Compare January 31, 2025 05:42
@ebyhr ebyhr changed the title Add support for S3 Tables in Iceberg Add read support for S3 Tables in Iceberg Jan 31, 2025
@ebyhr ebyhr force-pushed the ebi/iceberg-s3-tables branch from 18c568e to a661bf4 Compare January 31, 2025 06:23
@ebyhr ebyhr force-pushed the ebi/iceberg-s3-tables branch from a661bf4 to f543bc5 Compare February 5, 2025 06:14
@ebyhr ebyhr marked this pull request as ready for review February 5, 2025 06:15
@ebyhr ebyhr added the needs-docs This pull request requires changes to the documentation label Feb 5, 2025
Copy link
Contributor

@mayankvadariya mayankvadariya left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good overall.

# Iceberg Connector Developer Notes

Steps to create TPCH tables on S3 Tables:
1. Set `AWS_REGION`, `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` environment variables.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we want to document how to set up S3 table user, lake formation permissions etc.? at least some docs to follow in to set up the environment.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, but it's purely AWS setup information, not specific to our test. It would nice to add a link to the official documentation once AWS publishes it.

Comment on lines 33 to 34
.put("rest.access-key-id", s3Config.getAwsAccessKey())
.put("rest.secret-access-key", s3Config.getAwsSecretKey())
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

S3FileSystemConfig allows providing IAM role without requiring IAM user keys. But seems S3 table doesn't support Iam role, right?(please confirm) hence confirming if keys are provided.

requireNonNull(s3Config.getAwsAccessKey(), ...)
requireNonNull(s3Config.getAwsSecretKey(), ...)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For iam role possibly here we need to assume the role and get the access key, secret access key and session token from there and pass it along to Iceberg lib.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume we verified that IAM role is not supported.

@ebyhr ebyhr force-pushed the ebi/iceberg-s3-tables branch from 45ccb7b to f575137 Compare February 6, 2025 09:42
@ebyhr ebyhr merged commit 622f01c into master Feb 6, 2025
106 of 107 checks passed
@ebyhr ebyhr deleted the ebi/iceberg-s3-tables branch February 6, 2025 12:36
@github-actions github-actions bot added this to the 471 milestone Feb 6, 2025
return sigV4Enabled;
}

@Config("iceberg.rest-catalog.sigv4-enabled")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume there would be a separate ticket for updating the docs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla-signed iceberg Iceberg connector needs-docs This pull request requires changes to the documentation
Development

Successfully merging this pull request may close these issues.

Support AWS S3 Tables in Iceberg
3 participants