Skip to content

Migrate from external Iceberg sinks to Iceberg topics#1579

Open
kbatuigas wants to merge 6 commits intomainfrom
DOC-1590-migration-guidance-for-existing-iceberg-tables-to
Open

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

Conversation

@kbatuigas
Copy link
Contributor

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).

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

Page previews

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 failed. Why did it fail? →

Name Link
🔨 Latest commit cefd25f
🔍 Latest deploy log https://app.netlify.com/projects/redpanda-docs-preview/deploys/6997a5af5b241f00085fac61

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 20, 2026

📝 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 | ✅ 5
✅ Passed checks (5 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.
Description check ✅ Passed The description follows the template structure with a clear summary of changes and links to related issues, though the Jira ticket placeholder is not filled and page previews section is empty.
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

Tip

Issue Planner is now in beta. Read the docs and try it out! Share your feedback on Discord.


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.

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.

1 participant

Comments