10000 feat(iceberg): support alter iceberg table connector with by xxhZs · Pull Request #22040 · risingwavelabs/risingwave · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

feat(iceberg): support alter iceberg table connector with #22040

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

xxhZs
Copy link
Contributor
@xxhZs xxhZs commented May 28, 2025

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.

Previously, we implemented the ALTER SINK CONNECTOR syntax, but it lacked support for directly modifying Iceberg tables. Since Iceberg table definitions are not stored via Sink statements, attempts to alter them using Sink syntax would inevitably fail. ​This PR introduces ALTER TABLE support for Iceberg tables, enabling direct modifications to their associated Sink configurations.

Previously, we synchronized configurations by pulling the full config from the Meta service and dispatching it to the Sink. However, we observed that the Meta-stored configurations were incomplete. ​This PR refactors the mechanism to incremental updates: only modified configurations are pushed to Compute Nodes and dynamically merged with the Sink's existing configurations.

Checklist

  • I have written necessary rustdoc comments.
  • I have added necessary unit tests and integration tests.
  • I have added test labels as necessary.
  • I have added fuzzing tests or opened an issue to track them.
  • My PR contains breaking changes.
  • My PR changes performance-critical code, so I will run (micro) benchmarks and present the results.
  • I have checked the Release Timeline and Currently Supported Versions to determine which release branches I need to cherry-pick this PR into.

Documentation

  • My PR needs documentation updates.
Release note

Comment on lines +354 to +357
oneof object_type {
AlterConnectorPropsObject alter_connector_props_object = 6;
AlterIcebergTablePropsObject alter_iceberg_table_props_object = 7;
}
Copy link
Contributor
@chenzl25 chenzl25 May 30, 2025

Choose a reason for hiding this comment

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

We'd better use a new RPC instead of reusing the altering sink RPC to reduce the coupling. Current implementation is a bit invasive. Use one RPC is ok, however, for the caller side and the RPC implementation, we'd better handle sink and iceberg table separately.

@@ -1311,13 +1311,14 @@ impl MetaClient {
changed_props: BTreeMap<String, String>,
changed_secret_refs: BTreeMap<String, PbSecretRef>,
connector_conn_ref: Option<u32>,
object_type: ObjectType,
Copy link
Contributor

Choose a reason for hiding this comment

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

We should use a new method like alter_iceberg_table instead of alter_sink

Comment on lines 34 to 38
pub async fn handle_alter_sink_props(
handler_args: HandlerArgs,
table_name: ObjectName,
alter_sink_object: AlterSinkObject,
changed_props: Vec<SqlOption>,
) -> Result<RwPgResponse> {
Copy link
Contributor

Choose a reason for hiding this comment

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

we should have a new method handle_alter_iceberg_table

@@ -1612,6 +1613,7 @@ impl CatalogController {
&self,
sink_id: SinkId,
props: BTreeMap<String, String>,
object_type: risingwave_pb::meta::alter_connector_props_request::ObjectType,
Copy link
Contributor

Choose a reason for hiding this comment

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

This method is update_sink_props_by_sink_id, if we need to change iceberg table properies, we'd better use a new method.

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.

2 participants
0