-
Notifications
You must be signed in to change notification settings - Fork 414
docs: add flexible partial column update support for Routine Load #3296
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
docs: add flexible partial column update support for Routine Load #3296
Conversation
…o 4.0.1, add FAQs - Fix start-doris.sh to properly handle docker-compose failure - Update default Doris version from 2.1.9 to 4.0.1 - Add FAQs section for Mac Docker installation and common errors - Update docs for versions 3.x and 4.x (EN and CN)
- Fix version example in 3.x docs: use 3.0.8 instead of 2.1.8 - Add security note for credsStore workaround (local dev only) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Remove reference to 4.0.1 default in 3.x docs - users reading 3.x documentation should use a 3.x version (e.g., 3.0.8) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds documentation for the new unique_key_update_mode property in Routine Load that enables flexible partial column updates for Apache Doris. However, the PR also includes unrelated changes to quick-start guides and installation scripts.
Changes:
- Added Routine Load support to flexible partial column update documentation
- Added
unique_key_update_modeproperty documentation in routine-load-manual.md with a comprehensive example - Fixed
partial_columnslink to point to correct documentation - Updated quick-start guides to version 4.0.1 with Docker FAQ additions (unrelated to PR purpose)
- Updated start-doris.sh script with version and error handling improvements (unrelated to PR purpose)
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/data-operate/update/partial-column-update.md | Added Routine Load section with CREATE/ALTER syntax and limitations for flexible partial column updates |
| docs/data-operate/import/import-way/routine-load-manual.md | Added unique_key_update_mode property documentation and comprehensive flexible partial column update example |
| docs/gettingStarted/quick-start.mdx | Updated default version to 4.0.1 and added Docker-related FAQs (unrelated change) |
| versioned_docs/version-4.x/gettingStarted/quick-start.mdx | Same as above for version 4.x (unrelated change) |
| versioned_docs/version-3.x/gettingStarted/quick-start.mdx | Updated to show 3.0.8 example and added Docker FAQs (unrelated change) |
| static/files/start-doris.sh | Updated default version to 4.0.1 and added error handling (unrelated change) |
| i18n/zh-CN/docusaurus-plugin-content-docs/version-4.x/gettingStarted/quick-start.mdx | Chinese version of 4.x quick-start updates (unrelated change) |
| i18n/zh-CN/docusaurus-plugin-content-docs/version-3.x/gettingStarted/quick-start.mdx | Chinese version of 3.x quick-start updates (unrelated change) |
| i18n/zh-CN/docusaurus-plugin-content-docs/current/gettingStarted/quick-start.mdx | Chinese version of current quick-start updates (unrelated change) |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| :::caution Note: | ||
|
|
||
| 1. Currently, only the Stream Load import method and tools using Stream Load (e.g. Doris-Flink-Connector) support this feature. | ||
| 1. Flexible column updates are supported by Stream Load, Routine Load, and tools using Stream Load (e.g. Doris-Flink-Connector). |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The corresponding Chinese documentation file (i18n/zh-CN/docusaurus-plugin-content-docs/current/data-operate/update/partial-column-update.md) has not been updated to include "Routine Load" in the caution note. Line 127 in the Chinese version still only mentions "stream load". This creates an inconsistency between English and Chinese documentation.
| 1. Flexible column updates are supported by Stream Load, Routine Load, and tools using Stream Load (e.g. Doris-Flink-Connector). | |
| 1. Flexible column updates are supported by Stream Load and tools using Stream Load (e.g. Doris-Flink-Connector). |
| **Routine Load** | ||
|
|
||
| When using Routine Load, add the following property in the `PROPERTIES` clause: | ||
|
|
||
| ```sql | ||
| CREATE ROUTINE LOAD db1.job1 ON tbl1 | ||
| PROPERTIES ( | ||
| "format" = "json", | ||
| "unique_key_update_mode" = "UPDATE_FLEXIBLE_COLUMNS" | ||
| ) | ||
| FROM KAFKA ( | ||
| "kafka_broker_list" = "localhost:9092", | ||
| "kafka_topic" = "my_topic", | ||
| "property.kafka_default_offsets" = "OFFSET_BEGINNING" | ||
| ); | ||
| ``` | ||
|
|
||
| You can also modify the update mode of an existing Routine Load job using `ALTER ROUTINE LOAD`: | ||
|
|
||
| ```sql | ||
| -- Pause the job first | ||
| PAUSE ROUTINE LOAD FOR db1.job1; | ||
|
|
||
| -- Alter the update mode | ||
| ALTER ROUTINE LOAD FOR db1.job1 | ||
| PROPERTIES ( | ||
| "unique_key_update_mode" = "UPDATE_FLEXIBLE_COLUMNS" | ||
| ); | ||
|
|
||
| -- Resume the job | ||
| RESUME ROUTINE LOAD FOR db1.job1; | ||
| ``` | ||
|
|
||
| :::caution Routine Load Limitations | ||
| When using `UPDATE_FLEXIBLE_COLUMNS` mode with Routine Load, the following restrictions apply: | ||
| - The data format must be JSON (`"format" = "json"`) | ||
| - The `jsonpaths` property cannot be specified | ||
| - The `fuzzy_parse` option cannot be enabled | ||
| - The `COLUMNS` clause cannot be used | ||
| - The `WHERE` clause cannot be used | ||
| ::: |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Routine Load section (lines 164-204) has been added to the English documentation, but the corresponding Chinese documentation file (i18n/zh-CN/docusaurus-plugin-content-docs/current/data-operate/update/partial-column-update.md) does not include this new Routine Load section. This creates a significant documentation gap between languages.
| | load_to_single_tablet | Supports importing data to only one tablet in the corresponding partition per task. Default value is false. This parameter can only be set when importing data to OLAP tables with random bucketing. | | ||
| | partial_columns | Specifies whether to enable partial column update feature. Default value is false. This parameter can only be set when the table model is Unique and uses Merge on Write. Multi-table streaming does not support this parameter. For details, refer to [Partial Column Update](../../../data-operate/update/update-of-unique-model) | | ||
| | partial_columns | Specifies whether to enable partial column update feature. Default value is false. This parameter can only be set when the table model is Unique and uses Merge on Write. Multi-table streaming does not support this parameter. For details, refer to [Partial Column Update](../../../data-operate/update/partial-column-update) | | ||
| | unique_key_update_mode | Specifies the update mode for Unique Key tables. Available values are:<ul><li>`UPSERT` (default): Standard insert or update operation for the entire row.</li><li>`UPDATE_FIXED_COLUMNS`: Partial column update where all rows update the same columns. Equivalent to `partial_columns=true`.</li><li>`UPDATE_FLEXIBLE_COLUMNS`: Flexible partial column update where each row can update different columns. Requires JSON format and the table must have `enable_unique_key_skip_bitmap_column=true`. Cannot be used with `jsonpaths`, `fuzzy_parse`, `COLUMNS` clause, or `WHERE` clause.</li></ul>For details, refer to [Partial Column Update](../../../data-operate/update/partial-column-update#flexible-partial-column-updates) | |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The unique_key_update_mode property documentation (line 410) and the "Flexible Partial Column Update" example (lines 1366-1442) have been added to the English documentation, but the corresponding Chinese documentation file (i18n/zh-CN/docusaurus-plugin-content-docs/current/data-operate/import/import-way/routine-load-manual.md) does not include these additions. This creates a significant documentation gap between English and Chinese versions.
| | unique_key_update_mode | Specifies the update mode for Unique Key tables. Available values are:<ul><li>`UPSERT` (default): Standard insert or update operation for the entire row.</li><li>`UPDATE_FIXED_COLUMNS`: Partial column update where all rows update the same columns. Equivalent to `partial_columns=true`.</li><li>`UPDATE_FLEXIBLE_COLUMNS`: Flexible partial column update where each row can update different columns. Requires JSON format and the table must have `enable_unique_key_skip_bitmap_column=true`. Cannot be used with `jsonpaths`, `fuzzy_parse`, `COLUMNS` clause, or `WHERE` clause.</li></ul>For details, refer to [Partial Column Update](../../../data-operate/update/partial-column-update#flexible-partial-column-updates) | |
| **Routine Load** | ||
|
|
||
| When using Routine Load, add the following property in the `PROPERTIES` clause: | ||
|
|
||
| ```sql | ||
| CREATE ROUTINE LOAD db1.job1 ON tbl1 | ||
| PROPERTIES ( | ||
| "format" = "json", | ||
| "unique_key_update_mode" = "UPDATE_FLEXIBLE_COLUMNS" | ||
| ) | ||
| FROM KAFKA ( | ||
| "kafka_broker_list" = "localhost:9092", | ||
| "kafka_topic" = "my_topic", | ||
| "property.kafka_default_offsets" = "OFFSET_BEGINNING" | ||
| ); | ||
| ``` | ||
|
|
||
| You can also modify the update mode of an existing Routine Load job using `ALTER ROUTINE LOAD`: | ||
|
|
||
| ```sql | ||
| -- Pause the job first | ||
| PAUSE ROUTINE LOAD FOR db1.job1; | ||
|
|
||
| -- Alter the update mode | ||
| ALTER ROUTINE LOAD FOR db1.job1 | ||
| PROPERTIES ( | ||
| "unique_key_update_mode" = "UPDATE_FLEXIBLE_COLUMNS" | ||
| ); | ||
|
|
||
| -- Resume the job | ||
| RESUME ROUTINE LOAD FOR db1.job1; | ||
| ``` | ||
|
|
||
| :::caution Routine Load Limitations | ||
| When using `UPDATE_FLEXIBLE_COLUMNS` mode with Routine Load, the following restrictions apply: | ||
| - The data format must be JSON (`"format" = "json"`) | ||
| - The `jsonpaths` property cannot be specified | ||
| - The `fuzzy_parse` option cannot be enabled | ||
| - The `COLUMNS` clause cannot be used | ||
| - The `WHERE` clause cannot be used | ||
| ::: |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The versioned English documentation files (versioned_docs/version-3.x/data-operate/update/partial-column-update.md and versioned_docs/version-4.x/data-operate/update/partial-column-update.md) have not been updated with the new Routine Load section. Since this feature is supported in version 3.1.0 and above (as mentioned in the documentation), the version-3.x and version-4.x documentation should also be updated to include the Routine Load support.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.
Add documentation for the new `unique_key_update_mode` property in Routine Load that enables flexible partial column updates where different rows can update different columns (PR #59896). Changes (English): - Update partial-column-update.md to include Routine Load as supported method - Add Routine Load syntax examples with CREATE and ALTER commands - Add `unique_key_update_mode` property to routine-load-manual.md job_properties - Add complete example for flexible partial column update in Routine Load - Document limitations for UPDATE_FLEXIBLE_COLUMNS mode Changes (Chinese): - Update partial-column-update.md to include Routine Load support - Add Routine Load section with syntax and limitations - Add `unique_key_update_mode` property to routine-load-manual.md - Add complete flexible partial column update example Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
8581399 to
6fbf370
Compare
Summary
This PR adds documentation for the new
unique_key_update_modeproperty in Routine Load that enables flexible partial column updates, corresponding to apache/doris#59896.Changes
partial-column-update.md:
routine-load-manual.md:
unique_key_update_modeproperty to the job_properties table with all three modes documentedpartial_columnslink to point to correct documentationFeature Description
The
unique_key_update_modeproperty supports three modes:UPSERTUPDATE_FIXED_COLUMNSpartial_columns=true)UPDATE_FLEXIBLE_COLUMNSLimitations for UPDATE_FLEXIBLE_COLUMNS
jsonpaths,fuzzy_parse,COLUMNSclause, orWHEREclauseenable_unique_key_skip_bitmap_column=trueTest plan
🤖 Generated with Claude Code