Skip to content

Commit a730ae4

Browse files
kbatuigasDeflaimun
authored andcommitted
Initial draft
1 parent c872eba commit a730ae4

1 file changed

Lines changed: 79 additions & 0 deletions

File tree

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
= Query Iceberg Topics using AWS Glue
2+
:description: Add Redpanda topics as Iceberg tables that you can query in from AWS Glue Data Catalog.
3+
:page-categories: Iceberg, Tiered Storage, Management, High Availability, Data Replication, Integration
4+
5+
[NOTE]
6+
====
7+
include::shared:partial$enterprise-license.adoc[]
8+
====
9+
10+
// tag::single-source[]
11+
12+
== Prerequisites
13+
14+
* Redpanda version 25.1.7 or later.
15+
* A database in AWS Glue Data Catalog.
16+
17+
== Limitations
18+
19+
=== Nested partition spec support
20+
21+
Glue does not support partitioning on nested fields. If Redpanda detects that
22+
the default partitioning `(hour(redpanda.timestamp))` is in use, it will instead apply an empty partition spec `()`, which means the table will not be partitioned.
23+
24+
If you want to use partitioning, specify your custom partition spec using your own partition columns (columns thatare not nested).
25+
26+
== Update cluster configuration
27+
28+
=== Enable Iceberg using the Glue REST catalog
29+
30+
Set `iceberg_enabled: true` and for the topic set `redpanda.iceberg.enabled=true`.
31+
32+
Set `iceberg_catalog_type: "rest"` and `iceberg_rest_catalog_endpoint: "https://glue.<region>.amazonaws.com"`.
33+
Make note of the region used in the endpoint, as it must match the region configured for credentials.
34+
35+
=== Configure authentication and credentials
36+
37+
Set `iceberg_rest_catalog_authentication_mode: "aws_sigv4"`, the only value supported for AWS Glue.
38+
39+
There is a configuration property `iceberg_rest_catalog_aws_service_name`. Its default value is `"glue"`. This configuration property exists to reserve configuration in case Redpanda needs to support other services in the future, because knowing the service name is necessary for AWS SigV4 authentication. You do not need to modify this property.
40+
41+
Credentials can be specified in two ways:
42+
43+
* Specify the `cloud_storage_*` credentials as one would for S3, and
44+
then Iceberg will use those same credentials in the same way as object storage
45+
* If you want to configure authentication to AWS Glue differently
46+
than authentication to S3, there are equivalent credential configuration properties named `iceberg_rest_catalog_*`. These credential-related configuration properties only apply to REST catalog authentication, and never to S3 authentication.
47+
48+
* `iceberg_rest_catalog_aws_access_key` overrides `cloud_storage_access_key`
49+
* `iceberg_rest_catalog_aws_secret_key` overrides `cloud_storage_secret_key`
50+
* `iceberg_rest_catalog_aws_region` overrides `cloud_storage_region`
51+
* `iceberg_rest_catalog_aws_credentials_source` overrides `cloud_storage_credentials_source`
52+
53+
=== Special aspects of Glue data catalog
54+
55+
==== Base location
56+
57+
AWS Glue requires you to specify the base location of the catalog. The configuration property `iceberg_rest_catalog_base_location` sets this location. You must use
58+
an S3 URI like `s3://your-bucket/path`.
59+
60+
=== Example minimal valid configuration of Glue as a REST catalog
61+
62+
[,bash]
63+
----
64+
rpk cluster config set \
65+
iceberg_enabled: true \
66+
iceberg_catalog_type: rest \
67+
iceberg_rest_catalog_endpoint: 'https://glue.us-west-2.amazonaws.com/iceberg' \
68+
iceberg_rest_catalog_authentication_mode: 'aws_sigv4' \
69+
iceberg_rest_catalog_aws_region: 'us-west-2' \
70+
// iceberg_rest_catalog_aws_access_key: 'MYACCESSKEY' \ # Redacted
71+
iceberg_rest_catalog_aws_access_key: ${secrets.<aws_access_key>} \
72+
// iceberg_rest_catalog_aws_secret_key: 'MYSECRETKEY' \ # Redacted
73+
iceberg_rest_catalog_aws_secret_key: ${secrets.<aws_secret_key>} \
74+
iceberg_rest_catalog_base_location: 's3://wdberkeley-test'
75+
----
76+
77+
The cloud_storage_* properties are used for Iceberg catalog authentication as well.
78+
79+
// end::single-source[]

0 commit comments

Comments
 (0)