Skip to content

Commit 5b4b7e4

Browse files
kbatuigasmicheleRP
authored andcommitted
Partition evolution supported in Unity Catalog (#1163)
Co-authored-by: Michele Cyran <michele@redpanda.com>
1 parent 952e587 commit 5b4b7e4

File tree

4 files changed

+40
-18
lines changed

4 files changed

+40
-18
lines changed

modules/manage/pages/iceberg/iceberg-topics-databricks-unity.adoc

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,9 @@ endif::[]
2727
* Workspace admin privileges to complete the steps to create a Unity Catalog storage credential and external location that connects your cluster's Tiered Storage bucket to Databricks.
2828

2929
== Limitations
30+
31+
The following data types are not currently supported for managed Iceberg tables:
3032

31-
* Databricks Managed Iceberg tables do not currently support partition evolution. If you define a xref:manage:iceberg/about-iceberg-topics.adoc#use-custom-partitioning[custom partitioning] scheme for an Iceberg topic, you must not change it later.
32-
+
33-
The cluster property config_ref:iceberg_default_partition_spec,true,properties/cluster-properties[`iceberg_default_partition_spec`] defines the cluster-wide partitioning scheme, by default configured to `(hour(redpanda.timestamp))`. To use a different cluster-wide default, configure this property before creating any Iceberg-enabled topics. You must only override the default partitioning scheme on the topic level for new Iceberg topics that do not yet contain data.
34-
* The following data types are not currently supported for managed Iceberg tables:
35-
+
36-
--
3733
|===
3834
| Iceberg type | Equivalent Avro type
3935

@@ -42,8 +38,7 @@ The cluster property config_ref:iceberg_default_partition_spec,true,properties/c
4238
| time | time-millis, time-micros
4339

4440
|===
45-
--
46-
+
41+
4742
There are no limitations for Protobuf types.
4843

4944
== Create a Unity Catalog storage credential

modules/manage/partials/iceberg/use-iceberg-catalogs.adoc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ To connect to a REST catalog, set the following cluster configuration properties
6060
* config_ref:iceberg_catalog_type,true,properties/cluster-properties[`iceberg_catalog_type`]: `rest`
6161
* config_ref:iceberg_rest_catalog_endpoint,true,properties/cluster-properties[`iceberg_rest_catalog_endpoint`]: The endpoint URL for your Iceberg catalog, which you either manage directly, or is managed by an external catalog service.
6262
* config_ref:iceberg_rest_catalog_authentication_mode,true,properties/cluster-properties[`iceberg_rest_catalog_authentication_mode`]: The authentication mode to use for the REST catalog. Choose from `oauth2`, `bearer`, or `none` (default).
63+
ifdef::env-cloud[]
64+
+
65+
Redpanda recommends using `oauth2`.
66+
67+
endif::[]
6368
** For `oauth2`, also configure the following properties:
6469
+
6570
--
@@ -111,6 +116,11 @@ Run the following `rpk` command:
111116
----
112117
rpk security secret create --name <secret-name> --value <secret-value> --scopes redpanda_cluster
113118
----
119+
120+
Replace the placeholders with your own values:
121+
122+
- `<secret-name>`: The name of the secret you want to add. The secret name is also its ID. Use only the following characters: `^[A-Z][A-Z0-9_]*$`.
123+
- `<secret-value>`: The value of the secret.
114124
--
115125
116126
Cloud API::

modules/reference/pages/properties/cluster-properties.adoc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2066,7 +2066,11 @@ endif::[]
20662066
// tag::iceberg_rest_catalog_authentication_mode[]
20672067
=== iceberg_rest_catalog_authentication_mode
20682068

2069-
The authentication mode for client requests made to the Iceberg catalog. Choose from: `none`, `bearer`, and `oauth2`. In `bearer` mode, the token specified in `iceberg_rest_catalog_token` is used unconditionally, and no attempts are made to refresh the token. In `oauth2` mode, the credentials specified in `iceberg_rest_catalog_client_id` and `iceberg_rest_catalog_client_secret` are used to obtain a bearer token from the URI defined by `iceberg_rest_catalog_oauth2_server_uri.`.
2069+
The authentication mode for client requests made to the Iceberg catalog. Choose from: `none`, `bearer`, and `oauth2`. In `oauth2` mode, the credentials specified in `iceberg_rest_catalog_client_id` and `iceberg_rest_catalog_client_secret` are used to obtain a bearer token from the URI defined by `iceberg_rest_catalog_oauth2_server_uri.`. In `bearer` mode, the token specified in `iceberg_rest_catalog_token` is used unconditionally, and no attempts are made to refresh the token.
2070+
2071+
ifdef::env-cloud[]
2072+
Redpanda recommends using `oauth2`.
2073+
endif::[]
20702074

20712075
*Requires restart:* Yes
20722076

modules/reference/pages/properties/topic-properties.adoc

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,7 @@ Enable the Iceberg integration for the topic. You can choose one of four modes.
544544

545545
**Related topics**:
546546

547+
- xref:manage:iceberg/choose-iceberg-mode.adoc[]
547548
- xref:manage:iceberg/about-iceberg-topics.adoc[]
548549

549550
---
@@ -560,6 +561,23 @@ Whether the corresponding Iceberg table is deleted upon deleting the topic.
560561

561562
---
562563

564+
==== redpanda.iceberg.invalid.record.action
565+
566+
Whether to write invalid records to a dead-letter queue (DLQ).
567+
568+
**Default**: `dlq_table`
569+
570+
**Values**:
571+
572+
- `drop`: Disable the DLQ and drop invalid records.
573+
- `dlq_table`: Write invalid records to a separate DLQ Iceberg table.
574+
575+
**Related topics**:
576+
577+
- xref:manage:iceberg/about-iceberg-topics.adoc#manage-dead-letter-queue[Manage dead-letter queue]
578+
579+
---
580+
563581
==== redpanda.iceberg.partition.spec
564582

565583
The https://iceberg.apache.org/docs/nightly/partitioning/[partitioning^] specification for the Iceberg table.
@@ -568,20 +586,15 @@ The https://iceberg.apache.org/docs/nightly/partitioning/[partitioning^] specifi
568586

569587
**Related topics**:
570588

571-
- xref:manage:iceberg/about-iceberg-topics.adoc[]
589+
- xref:manage:iceberg/about-iceberg-topics.adoc#use-custom-partitioning[Use custom partitioning]
572590

573591
---
574592

575-
==== redpanda.iceberg.invalid.record.action
576-
577-
Whether to write invalid records to a dead-letter queue (DLQ).
578-
579-
**Default**: `dlq_table`
593+
==== redpanda.iceberg.target.lag.ms
580594

581-
**Values**:
595+
Controls how often the data in the Iceberg table is refreshed with new data from the topic. Redpanda attempts to commit all data produced to the topic within the lag target, subject to resource availability.
582596

583-
- `drop`: Disable the DLQ and drop invalid records.
584-
- `dlq_table`: Write invalid records to a separate DLQ Iceberg table.
597+
**Default**: `60000`
585598

586599
**Related topics**:
587600

0 commit comments

Comments
 (0)