Skip to content

[Docs][Connector-V2] Improve OceanBase connector docs#11385

Draft
DanielCarter-stack wants to merge 1 commit into
apache:devfrom
DanielCarter-stack:docs/oceanbase-docs-20260709
Draft

[Docs][Connector-V2] Improve OceanBase connector docs#11385
DanielCarter-stack wants to merge 1 commit into
apache:devfrom
DanielCarter-stack:docs/oceanbase-docs-20260709

Conversation

@DanielCarter-stack

Copy link
Copy Markdown
Contributor

Summary

  • Improve OceanBase source and sink documentation in English and Chinese.
  • Add missing source options for table path, table list, split tuning, regex matching, and type narrowing.
  • Add missing sink options for generated SQL, save modes, XA exactly-once, timed flushing, CDC/upsert, and multi-table writes.
  • Add OceanBase MySQL and Oracle compatible mode examples for source and sink usage.

Verification

  • Ran git diff --check.
  • Ran a markdown table column-count check for the updated OceanBase docs.
  • Checked recent PRs mentioning OceanBase docs to avoid duplicating another docs PR.

@DanielLeens DanielLeens left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks for working on this. I re-reviewed the latest head 3ec8ffb856f1 from scratch.

What this PR fixes

  • User pain: the OceanBase source/sink pages had fallen behind the current JDBC implementation, especially around exactly-once, timer-based flushing, multi-table read/write, table_list / table_path, save modes, and the mysql-vs-oracle compatibility split.
  • Fix approach: update both the EN and ZH OceanBase source/sink docs so they describe the current JDBC-backed capability surface much more completely.
  • One-line summary: after tracing the new claims back to the real JDBC source/sink code paths, I do not see a new accuracy blocker in the current version.

Full call path I checked

OceanBase source docs
  -> source { Jdbc { ... compatible_mode = "mysql"/"oracle" ... } }
      -> JdbcSourceFactory.optionRule()
      -> JdbcSourceConfig.of()
      -> JdbcSourceTableConfig.of()
      -> JdbcSource
          -> JdbcCatalogUtils.getTables(...)

OceanBase sink docs
  -> sink { jdbc { ... } }
      -> JdbcSinkFactory.optionRule()
          -> BATCH_INTERVAL_MS
          -> IS_EXACTLY_ONCE / XA_DATA_SOURCE_CLASS_NAME
          -> MULTI_TABLE_SINK_REPLICA
          -> schema/data save mode
      -> JdbcSink
          -> SupportMultiTableSink
      -> JdbcExactlyOnceSinkWriter (XA path)

That is the important framing here: these OceanBase pages are really documenting the OceanBase usage profile of the Jdbc connector, so the correctness check is whether the new option/feature claims actually exist on the JDBC source/sink path. The main ones added in this PR do line up with the current code path.

Findings

I did not find a new blocker in the current version.

The bigger doc claims I explicitly cross-checked were:

  • source-side table_path / table_list / where_condition / split options
  • sink-side batch_interval_ms
  • sink-side exactly-once via is_exactly_once + xa_data_source_class_name
  • multi-table write/read claims
  • mysql-compatible vs oracle-compatible mode guidance

Those all map back to real JDBC source/sink options or interfaces in the current codebase, so I’m comfortable with the updated docs.

Review conclusion

Conclusion: can merge

  1. Blocking items
  • None from my side.
  1. Non-blocking suggestions
  • None that I would hold the merge for in this round.

Overall this is a good docs catch-up pass for OceanBase, and it is much closer to the real capability surface now. Happy to approve.

@DanielLeens

Copy link
Copy Markdown
Contributor

Rechecked the latest head: the source-level blocker from my previous Daniel round is still closed for me, and the current Build gate is now green on this unchanged head.

At this point I do not see a new code-side blocker from Daniel on this revision. For queue bookkeeping, this branch is still diverged against the latest dev (ahead_by=1, behind_by=12), but because the required Build signal is green now, I am not asking for a sync-only retry from Daniel's side here.

If the repository still needs a write-capable maintainer to refresh the formal review state or dismiss an older visible changes requested entry, that final gate may need to be handled separately from Daniel's source-level recheck.

@SEZ9 SEZ9 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks for working on this. I re-reviewed the latest head 3ec8ffb856f1 from scratch.

Review conclusion

Conclusion: LGTM, can merge

Nice work — thanks again for the contribution. Happy to discuss any of the above.

@DanielLeens

Copy link
Copy Markdown
Contributor

Thanks @SEZ9 for the rereview. I rechecked the same unchanged head and I also do not see a reopened Daniel-side source blocker here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants