Skip to content

Migrate from external Iceberg sinks to Iceberg topics#1579

Merged
kbatuigas merged 16 commits intomainfrom
DOC-1590-migration-guidance-for-existing-iceberg-tables-to
Feb 28, 2026
Merged

Migrate from external Iceberg sinks to Iceberg topics#1579
kbatuigas merged 16 commits intomainfrom
DOC-1590-migration-guidance-for-existing-iceberg-tables-to

Conversation

@kbatuigas
Copy link
Contributor

@kbatuigas kbatuigas commented Feb 20, 2026

Description

Adds a new migration guide for existing Iceberg pipelines (such as with Kafka Connect Iceberg Sink) to Iceberg topics, including some guidance on migrating multi-table fanout (covered in more detail in #1563).

PR to add doc in Cloud: redpanda-data/cloud-docs#511

Resolves https://redpandadata.atlassian.net/browse/
Review deadline: 27 Feb

Page previews

Self-managed: https://deploy-preview-1579--redpanda-docs-preview.netlify.app/current/manage/iceberg/migrate-to-iceberg-topics/
Cloud: https://deploy-preview-1579--redpanda-docs-preview.netlify.app/redpanda-cloud/manage/iceberg/migrate-to-iceberg-topics/

Checks

  • New feature
  • Content gap
  • Support Follow-up
  • Small fix (typos, links, copyedits, etc)

@kbatuigas kbatuigas requested a review from a team as a code owner February 20, 2026 00:07
@netlify
Copy link

netlify bot commented Feb 20, 2026

Deploy Preview for redpanda-docs-preview ready!

Name Link
🔨 Latest commit ea93e96
🔍 Latest deploy log https://app.netlify.com/projects/redpanda-docs-preview/deploys/69a260ad2e9f3a0008d36589
😎 Deploy Preview https://deploy-preview-1579--redpanda-docs-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 20, 2026

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR adds comprehensive migration guidance documentation for transitioning existing Iceberg integrations to Redpanda Iceberg Topics. The changes include a new documentation page detailing migration prerequisites, phased migration steps, data merge strategies, multi-table patterns, validation procedures, and cutover guidance. The navigation structure is updated to include this new topic, and an existing documentation page is cross-referenced to the new migration guide.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

Possibly related PRs

Suggested reviewers

  • mattschumpert
  • rockwotj
  • Feediver1
  • micheleRP
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description covers the main purpose and includes page previews, but is missing key template details: the Jira ticket reference is incomplete, the review deadline is blank, and none of the classification checkboxes are checked. Complete the Jira ticket reference, fill in the review deadline (noted as '27 Feb'), and check the appropriate classification checkbox(es) - likely 'Content gap' or 'New feature'.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Migrate from external Iceberg sinks to Iceberg topics' accurately and concisely summarizes the main change—adding a migration guide for existing Iceberg pipelines to Iceberg topics.
Linked Issues check ✅ Passed The PR fully addresses DOC-1590 objectives by adding comprehensive migration guidance for existing Iceberg pipelines to Iceberg Topics, covering multi-table fanout scenarios.
Out of Scope Changes check ✅ Passed All changes are in scope—adding the new migration guide documentation, updating navigation, and linking from related documentation pages align with the stated objectives.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch DOC-1590-migration-guidance-for-existing-iceberg-tables-to

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (4)
modules/manage/pages/iceberg/migrate-to-iceberg-topics.adoc (2)

229-233: Resolve the TODO for metrics.

Leaving the metrics section empty blocks users from validating health during migration. Either add the specific metrics or link to an existing metrics page.

Do you want me to draft a short metrics section or open an issue to track it?

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@modules/manage/pages/iceberg/migrate-to-iceberg-topics.adoc` around lines 229
- 233, Replace the "TODO: Add specific metrics" placeholder under the "Monitor
Iceberg topic metrics" section by either (A) adding a concise list of concrete,
actionable metrics to monitor (e.g., topic partition counts, consumer lag,
message publish rate, error rates, compaction success/failure, iceberg table
snapshot counts and age, metadata store latency) or (B) inserting a link to the
existing metrics/reference page that documents these metrics; locate the
"Monitor Iceberg topic metrics" heading and the TODO string in the
migrate-to-iceberg-topics.adoc and update that block so users have immediate,
testable metrics to validate migration health rather than an empty TODO.

55-63: Use empty-bracket xref syntax for link text.

Several xref links include hard-coded link text; use xref:...[] so titles render automatically. As per the docs-wide AsciiDoc linking guideline.

🔧 Example fix
-* xref:manage:tiered-storage.adoc[Tiered Storage] enabled.
+* xref:manage:tiered-storage.adoc[] enabled.
...
-* xref:manage:iceberg/about-iceberg-topics.adoc[Iceberg Topics] enabled on your Redpanda cluster.
+* xref:manage:iceberg/about-iceberg-topics.adoc[] enabled on your Redpanda cluster.
...
-* For migrating multi-table fan-out patterns, xref:develop:data-transforms/deploy.adoc[data transforms] enabled on your cluster.
+* For migrating multi-table fan-out patterns, xref:develop:data-transforms/deploy.adoc[] enabled on your cluster.
...
-See xref:manage:iceberg/specify-iceberg-schema.adoc[] to learn more about the different Iceberg modes.
+See xref:manage:iceberg/specify-iceberg-schema.adoc[] to learn more about the different Iceberg modes.
...
-IMPORTANT: If using the `value_schema_id_prefix` mode, schema subjects must use the `<topic-name>-value` xref:manage:schema-reg/schema-id-validation.adoc#set-subject-name-strategy-per-topic[naming convention] (TopicNameStrategy).
+IMPORTANT: If using the `value_schema_id_prefix` mode, schema subjects must use the `<topic-name>-value` xref:manage:schema-reg/schema-id-validation.adoc#set-subject-name-strategy-per-topic[] (TopicNameStrategy).
...
-See xref:manage:iceberg/about-iceberg-topics.adoc#troubleshoot-errors[Troubleshoot errors] for steps to inspect and reprocess DLQ records.
+See xref:manage:iceberg/about-iceberg-topics.adoc#troubleshoot-errors[] for steps to inspect and reprocess DLQ records.

As per coding guidelines: “AsciiDoc linking: prefer using xref links with empty brackets… Avoid hard-coding link text.”
[scratchpad_end] -->

Also applies to: 158-168, 475-475

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@modules/manage/pages/iceberg/migrate-to-iceberg-topics.adoc` around lines 55
- 63, Replace hard-coded xref link text with empty-bracket xref syntax so
AsciiDoc titles render automatically: change occurrences like
xref:manage:tiered-storage.adoc[Tiered Storage] to
xref:manage:tiered-storage.adoc[],
xref:manage:iceberg/about-iceberg-topics.adoc[Iceberg Topics] to
xref:manage:iceberg/about-iceberg-topics.adoc[], and
xref:develop:data-transforms/deploy.adoc[data transforms] to
xref:develop:data-transforms/deploy.adoc[] (and update any other xref:...[…]
instances in this document to use empty brackets).
modules/manage/pages/iceberg/about-iceberg-topics.adoc (1)

454-456: Use empty-bracket xref syntax.

Replace the hard-coded link text with xref:...[] so the title renders automatically. As per the docs-wide AsciiDoc linking guideline.

🔧 Example fix
-* xref:manage:iceberg/migrate-to-iceberg-topics.adoc[Migrate existing Iceberg integrations to Iceberg Topics]
+* xref:manage:iceberg/migrate-to-iceberg-topics.adoc[]

As per coding guidelines: “AsciiDoc linking: prefer using xref links with empty brackets… Avoid hard-coding link text.”
[scratchpad_end] -->

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@modules/manage/pages/iceberg/about-iceberg-topics.adoc` around lines 454 -
456, Replace the hard-coded link text on the second xref in
about-iceberg-topics.adoc: change the xref reference
xref:manage:iceberg/migrate-to-iceberg-topics.adoc[Migrate existing Iceberg
integrations to Iceberg Topics] to use empty-bracket syntax
xref:manage:iceberg/migrate-to-iceberg-topics.adoc[] so the title renders
automatically (leave the first xref:manage:iceberg/use-iceberg-catalogs.adoc[]
as-is).
modules/ROOT/nav.adoc (1)

193-195: Use empty-bracket xref syntax in nav.

Use xref:...[] so the title is pulled from the target document.

🔧 Example fix
-*** xref:manage:iceberg/migrate-to-iceberg-topics.adoc[Migrate to Iceberg Topics]
+*** xref:manage:iceberg/migrate-to-iceberg-topics.adoc[]

As per coding guidelines: “AsciiDoc linking: prefer using xref links with empty brackets… Avoid hard-coding link text.”
[scratchpad_end] -->

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@modules/ROOT/nav.adoc` around lines 193 - 195, The nav entries currently
hard-code link text (e.g., xref:manage:iceberg/query-iceberg-topics.adoc[Query
Iceberg Topics], xref:manage:iceberg/migrate-to-iceberg-topics.adoc[Migrate to
Iceberg Topics], xref:manage:schema-reg/index.adoc[Schema Registry]); change
each to use empty-bracket xref syntax (xref:...[]) so the title is pulled from
the target document, preserving the same target paths and removing the bracketed
text.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@modules/manage/pages/iceberg/about-iceberg-topics.adoc`:
- Around line 454-456: Replace the hard-coded link text on the second xref in
about-iceberg-topics.adoc: change the xref reference
xref:manage:iceberg/migrate-to-iceberg-topics.adoc[Migrate existing Iceberg
integrations to Iceberg Topics] to use empty-bracket syntax
xref:manage:iceberg/migrate-to-iceberg-topics.adoc[] so the title renders
automatically (leave the first xref:manage:iceberg/use-iceberg-catalogs.adoc[]
as-is).

In `@modules/manage/pages/iceberg/migrate-to-iceberg-topics.adoc`:
- Around line 229-233: Replace the "TODO: Add specific metrics" placeholder
under the "Monitor Iceberg topic metrics" section by either (A) adding a concise
list of concrete, actionable metrics to monitor (e.g., topic partition counts,
consumer lag, message publish rate, error rates, compaction success/failure,
iceberg table snapshot counts and age, metadata store latency) or (B) inserting
a link to the existing metrics/reference page that documents these metrics;
locate the "Monitor Iceberg topic metrics" heading and the TODO string in the
migrate-to-iceberg-topics.adoc and update that block so users have immediate,
testable metrics to validate migration health rather than an empty TODO.
- Around line 55-63: Replace hard-coded xref link text with empty-bracket xref
syntax so AsciiDoc titles render automatically: change occurrences like
xref:manage:tiered-storage.adoc[Tiered Storage] to
xref:manage:tiered-storage.adoc[],
xref:manage:iceberg/about-iceberg-topics.adoc[Iceberg Topics] to
xref:manage:iceberg/about-iceberg-topics.adoc[], and
xref:develop:data-transforms/deploy.adoc[data transforms] to
xref:develop:data-transforms/deploy.adoc[] (and update any other xref:...[…]
instances in this document to use empty brackets).

In `@modules/ROOT/nav.adoc`:
- Around line 193-195: The nav entries currently hard-code link text (e.g.,
xref:manage:iceberg/query-iceberg-topics.adoc[Query Iceberg Topics],
xref:manage:iceberg/migrate-to-iceberg-topics.adoc[Migrate to Iceberg Topics],
xref:manage:schema-reg/index.adoc[Schema Registry]); change each to use
empty-bracket xref syntax (xref:...[]) so the title is pulled from the target
document, preserving the same target paths and removing the bracketed text.


ifdef::env-cloud[]

Monitor Iceberg Topics health by viewing topics metrics in the Redpanda Cloud UI.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Which metrics can we recommend?

Copy link
Contributor

Choose a reason for hiding this comment

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

There are lag metrics we can recommend

@kbatuigas kbatuigas requested a review from rockwotj February 20, 2026 17:14
Comment on lines 41 to 44
| Latency
| Low-medium (external service)
| Very low (in-broker)

Copy link
Contributor

Choose a reason for hiding this comment

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

Please please remove this - it's not actually true and the story here is actually very complex and full of tradeoffs.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@rockwotj Will remove - is this the right doc or place to present those tradeoffs to users?

Copy link
Contributor

Choose a reason for hiding this comment

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

I don't know there is a lot to work through and is nuanced, it should probably be a dedicated document if we want to present this well.

Comment on lines 45 to 47
| Setup time
| Medium (deploy connector)
| Fast (enable topic property)
Copy link
Contributor

Choose a reason for hiding this comment

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

and post schema


ifdef::env-cloud[]

Monitor Iceberg Topics health by viewing topics metrics in the Redpanda Cloud UI.
Copy link
Contributor

Choose a reason for hiding this comment

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

There are lag metrics we can recommend

@kbatuigas kbatuigas requested a review from rockwotj February 25, 2026 22:53

* `redpanda_transform_processor_lag`: Records pending processing in transform input topic

For a complete list of Iceberg metrics, see xref:reference:public-metrics-reference.adoc[Iceberg metrics reference].
Copy link
Contributor

Choose a reason for hiding this comment

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

you could point direct to #iceberg-metrics

Co-authored-by: Michele Cyran <michele@redpanda.com>
@kbatuigas kbatuigas requested a review from micheleRP February 27, 2026 23:51
Copy link
Contributor

@micheleRP micheleRP left a comment

Choose a reason for hiding this comment

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

very nice Kat!

@kbatuigas kbatuigas merged commit 649f739 into main Feb 28, 2026
7 checks passed
@kbatuigas kbatuigas deleted the DOC-1590-migration-guidance-for-existing-iceberg-tables-to branch February 28, 2026 04:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants