This is an automated email from the ASF dual-hosted git repository.
vbalaji pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/hudi.git
The following commit(s) were added to refs/heads/asf-site by this push:
new ac1a2231cbe [HUDI-5856][DOCS] Update SQL in procedures.md (#8004)
ac1a2231cbe is described below
commit ac1a2231cbe5931ea84f65c11606c2bc52a3d2c4
Author: Kunni <[email protected]>
AuthorDate: Tue Mar 28 09:47:12 2023 +0800
[HUDI-5856][DOCS] Update SQL in procedures.md (#8004)
---
website/docs/procedures.md | 1555 ++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 1497 insertions(+), 58 deletions(-)
diff --git a/website/docs/procedures.md b/website/docs/procedures.md
index eb88fa2ccc7..1144efc8d52 100644
--- a/website/docs/procedures.md
+++ b/website/docs/procedures.md
@@ -24,6 +24,32 @@ CALL system.procedure_name(arg_1, arg_2, ... arg_n)
```
*note:* The system here has no practical meaning, the complete procedure name
is system.procedure_name.
+### Help Procedure
+
+Show parameters and outputTypes of a procedure.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description |
+|----------------|--------|----------|---------------|---------------------|
+| cmd | String | N | None | name of a procedure |
+
+**Output**
+
+| Output Name | Type |
+|--------------|--------|
+| result | String |
+
+**Example**x
+
+```
+call help(cmd => 'show_commits');
+```
+
+| result
[...]
+|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[...]
+| parameters: <br/>param type_name
default_value required <br/>table
string None true
<br/>limit integer 10
false <br/>outputType: <br/>name
type_name nullable metadata
<br/>commit_time [...]
+
## Commit management
### show_commits
@@ -110,118 +136,1100 @@ call show_commits_metadata(table => 'test_hudi_table');
|20220109191648181 | commit | dt=2021-05-02 |
b3b32bac-8a44-4c4d-b433-0cb1bf620f23-0 | null | 1 | 1
| 0 | 0 | 0 | 0 | 0
| 0 | 0 | 0
| 435341 |
|20220109191631015 | commit | dt=2021-05-01 |
0d7298b3-6b55-4cff-8d7d-b0772358b78a-0 | null | 1 | 1
| 0 | 0 | 0 | 0 | 0
| 0 | 0 | 0
| 435341 |
-### rollback_to_instant
+### show_commit_extra_metadata
+
+Show commits' extra metadata.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|----------------|--------|----------|---------------|--------------------------------------|
+| table | String | Y | None | Hudi table name
|
+| limit | Int | N | 10 | Max number of records
to be returned |
+| instant_time | String | N | None | Instant time
|
+| metadata_key | String | N | None | Key of metadata
|
+
+**Output**
+
+| Output Name | Type |
+|----------------|--------|
+| instant_time | String |
+| action | String |
+| metadata_key | String |
+| metadata_value | String |
+
+**Example**
+
+```
+call show_commit_extra_metadata(table => 'test_hudi_table');
+```
+
+| instant_time | action | metadata_key | metadata_value
[...]
+|-------------------|-------------|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[...]
+| 20230206174349556 | deltacommit | schema |
{"type":"record","name":"hudi_mor_tbl","fields":[{"name":"_hoodie_commit_time","type":["null","string"],"doc":"","default":null},{"name":"_hoodie_commit_seqno","type":["null","string"],"doc":"","default":null},{"name":"_hoodie_record_key","type":["null","string"],"doc":"","default":null},{"name":"_hoodie_partition_path","type":["null","string"],"doc":"","default":null},{"name":"_hoodie_file_name","type":["null","string"],"doc":"","defau
[...]
+| 20230206174349556 | deltacommit | latest_schema |
{"max_column_id":8,"version_id":20230206174349556,"type":"record","fields":[{"id":0,"name":"_hoodie_commit_time","optional":true,"type":"string","doc":""},{"id":1,"name":"_hoodie_commit_seqno","optional":true,"type":"string","doc":""},{"id":2,"name":"_hoodie_record_key","optional":true,"type":"string","doc":""},{"id":3,"name":"_hoodie_partition_path","optional":true,"type":"string","doc":""},{"id":4,"name":"_hoodie_file_name","optional"
[...]
+
+### show_archived_commits
+
+Show archived commits.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|----------------|--------|----------|---------------|------------------------------------------------|
+| table | String | Y | None | Hudi table name
|
+| limit | Int | N | 10 | Max number of records
to be returned |
+| start_ts | String | N | "" | Start time for commits,
default: now - 10 days |
+| end_ts | String | N | "" | End time for commits,
default: now - 1 day |
+
+**Output**
+
+| Output Name | Type |
+|------------------------------|--------|
+| commit_time | String |
+| total_bytes_written | Long |
+| total_files_added | Long |
+| total_files_updated | Long |
+| total_partitions_written | Long |
+| total_records_written | Long |
+| total_update_records_written | Long |
+| total_errors | Long |
+
+**Example**
+
+```
+call show_archived_commits(table => 'test_hudi_table');
+```
+
+| commit_time | total_bytes_written | total_files_added |
total_files_updated | total_partitions_written | total_records_written |
total_update_records_written | total_errors |
+|-------------------|--------------------------|-------------------|---------------------|--------------------------|-----------------------|------------------------------|--------------|
+| 20220216171049652 | 432653 | 0 | 1
| 1 | 0 | 0
| 0 |
+| 20220216171027021 | 435346 | 1 | 0
| 1 | 1 | 0
| 0 |
+| 20220216171019361 | 435349 | 1 | 0
| 1 | 1 | 0
| 0 |
+
+
+### show_archived_commits_metadata
+
+Show archived commits' metadata.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|----------------|--------|----------|---------------|------------------------------------------------|
+| table | String | Y | None | Hudi table name
|
+| limit | Int | N | 10 | Max number of records
to be returned |
+| start_ts | String | N | "" | Start time for commits,
default: now - 10 days |
+| end_ts | String | N | "" | End time for commits,
default: now - 1 day |
+
+**Output**
+
+| Output Name | Type |
+|---------------------------------|--------|
+| commit_time | String |
+| action | String |
+| partition | String |
+| file_id | String |
+| previous_commit | String |
+| num_writes | Long |
+| num_inserts | Long |
+| num_deletes | Long |
+| num_update_writes | String |
+| total_errors | Long |
+| total_log_blocks | Long |
+| total_corrupt_logblocks | Long |
+| total_rollback_blocks | Long |
+| total_log_records | Long |
+| total_updated_records_compacted | Long |
+| total_bytes_written | Long |
+
+**Example**
+
+```
+call show_archived_commits_metadata(table => 'test_hudi_table');
+```
+
+| commit_time | action | partition | file_id
| previous_commit | num_writes | num_inserts | num_deletes |
num_update_writes | total_errors | total_log_blocks | total_corrupt_logblocks |
total_rollback_blocks | total_log_records | total_updated_records_compacted |
total_bytes_written|
+|-----------------
|---------|---------------|----------------------------------------|-------------------|------------|-------------|-------------|-------------------|--------------|------------------|-------------------------|-----------------------|-------------------|---------------------------------|-------------------
|
+|20220109225319449 | commit | dt=2021-05-03 |
d0073a12-085d-4f49-83e9-402947e7e90a-0 | null | 1 | 1
| 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0
| 435349 |
+|20220109225311742 | commit | dt=2021-05-02 |
b3b32bac-8a44-4c4d-b433-0cb1bf620f23-0 | 20220109214830592 | 1 | 1
| 0 | 0 | 0 | 0 | 0
| 0 | 0 | 0
| 435340 |
+|20220109225301429 | commit | dt=2021-05-01 |
0d7298b3-6b55-4cff-8d7d-b0772358b78a-0 | 20220109214830592 | 1 | 1
| 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0
| 435340 |
+|20220109214830592 | commit | dt=2021-05-01 |
0d7298b3-6b55-4cff-8d7d-b0772358b78a-0 | 20220109191631015 | 0 | 0
| 1 | 0 | 0 | 0 | 0
| 0 | 0 | 0
| 432653 |
+|20220109214830592 | commit | dt=2021-05-02 |
b3b32bac-8a44-4c4d-b433-0cb1bf620f23-0 | 20220109191648181 | 0 | 0
| 1 | 0 | 0 | 0 |
0 | 0 | 0 | 0
| 432653 |
+|20220109191648181 | commit | dt=2021-05-02 |
b3b32bac-8a44-4c4d-b433-0cb1bf620f23-0 | null | 1 | 1
| 0 | 0 | 0 | 0 | 0
| 0 | 0 | 0
| 435341 |
+|20220109191631015 | commit | dt=2021-05-01 |
0d7298b3-6b55-4cff-8d7d-b0772358b78a-0 | null | 1 | 1
| 0 | 0 | 0 | 0 | 0
| 0 | 0 | 0
| 435341 |
+
+
+```
+call show_archived_commits(table => 'test_hudi_table');
+```
+
+| commit_time | total_bytes_written | total_files_added |
total_files_updated | total_partitions_written | total_records_written |
total_update_records_written | total_errors |
+|-------------------|--------------------------|-------------------|---------------------|--------------------------|-----------------------|------------------------------|--------------|
+| 20220216171049652 | 432653 | 0 | 1
| 1 | 0 | 0
| 0 |
+| 20220216171027021 | 435346 | 1 | 0
| 1 | 1 | 0
| 0 |
+| 20220216171019361 | 435349 | 1 | 0
| 1 | 1 | 0
| 0 |
+
+### show_commit_files
+
+Show files of a commit.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|----------------|--------|----------|---------------|--------------------------------------|
+| table | String | Y | None | Hudi table name
|
+| limit | Int | N | 10 | Max number of records
to be returned |
+| instant_time | String | Y | None | Instant time
|
+
+**Output**
+
+| Output Name | Type |
+|-----------------------|--------|
+| action | String |
+| partition_path | String |
+| file_id | String |
+| previous_commit | String |
+| total_records_updated | Long |
+| total_records_written | Long |
+| total_bytes_written | Long |
+| total_errors | Long |
+| file_size | Long |
+
+**Example**
+
+```
+call show_commit_files(table => 'test_hudi_table', instant_time =>
'20230206174349556');
+```
+
+| action | partition_path | file_id
| previous_commit | total_records_updated | total_records_written |
total_bytes_written | total_errors | file_size |
+|-------------|-----------------|----------------------------------------|-----------------|-----------------------|-----------------------|---------------------|--------------|-----------|
+| deltacommit | dt=2021-05-03 | 7fb52523-c7f6-41aa-84a6-629041477aeb-0 |
null | 0 | 1 | 434768
| 0 | 434768 |
+
+### show_commit_partitions
+
+Show partitions of a commit.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|----------------|--------|----------|---------------|--------------------------------------|
+| table | String | Y | None | Hudi table name
|
+| limit | Int | N | 10 | Max number of records
to be returned |
+| instant_time | String | Y | None | Instant time
|
+
+**Output**
+
+| Output Name | Type |
+|------------------------|--------|
+| action | String |
+| partition_path | String |
+| total_files_added | Long |
+| total_files_updated | Long |
+| total_records_inserted | Long |
+| total_records_updated | Long |
+| total_bytes_written | Long |
+| total_errors | Long |
+
+**Example**
+
+```
+call show_commit_partitions(table => 'test_hudi_table', instant_time =>
'20230206174349556');
+```
+
+| action | partition_path | total_files_added
| total_files_updated | total_records_inserted | total_records_updated |
total_bytes_written | total_errors |
+|-------------|-----------------|----------------------------------------|---------------------|------------------------|-----------------------|---------------------|--------------|
+| deltacommit | dt=2021-05-03 | 7fb52523-c7f6-41aa-84a6-629041477aeb-0 | 0
| 1 | 434768 | 0
| 0 |
+
+### show_commit_write_stats
+
+Show write statistics of a commit.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|----------------|--------|----------|---------------|--------------------------------------|
+| table | String | Y | None | Hudi table name
|
+| limit | Int | N | 10 | Max number of records
to be returned |
+| instant_time | String | Y | None | Instant time
|
+
+**Output**
+
+| Output Name | Type |
+|-----------------------|--------|
+| action | String |
+| total_bytes_written | Long |
+| total_records_written | Long |
+| avg_record_size | Long |
+
+**Example**
+
+```
+call show_commit_write_stats(table => 'test_hudi_table', instant_time =>
'20230206174349556');
+```
+
+| action | total_bytes_written | total_records_written | avg_record_size |
+|-------------|---------------------|-----------------------|-----------------|
+| deltacommit | 434768 | 1 | 434768 |
+
+### show_rollbacks
+
+Show rollback commits.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|----------------|--------|----------|---------------|--------------------------------------|
+| table | String | Y | None | Hudi table name
|
+| limit | Int | N | 10 | Max number of records
to be returned |
+
+**Output**
+
+| Output Name | Type |
+|----------------------|--------|
+| instant | String |
+| rollback_instant | String |
+| total_files_deleted | Int |
+| time_taken_in_millis | Long |
+| total_partitions | Int |
+
+**Example**
+
+```
+call show_rollbacks(table => 'test_hudi_table');
+```
+
+| instant | rollback_instant | total_files_deleted | time_taken_in_millis
| time_taken_in_millis |
+|-------------|------------------|---------------------|----------------------|----------------------|
+| deltacommit | 434768 | 1 | 434768
| 2 |
+
+
+### show_rollback_detail
+
+Show details of a rollback commit.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|----------------|--------|----------|---------------|--------------------------------------|
+| table | String | Y | None | Hudi table name
|
+| limit | Int | N | 10 | Max number of records
to be returned |
+| instant_time | String | Y | None | Instant time
|
+
+**Output**
+
+| Output Name | Type |
+|------------------|--------|
+| instant | String |
+| rollback_instant | String |
+| partition | String |
+| deleted_file | String |
+| succeeded | Int |
+
+**Example**
+
+```
+call show_rollback_detail(table => 'test_hudi_table', instant_time =>
'20230206174349556');
+```
+
+| instant | rollback_instant | partition | deleted_file | succeeded |
+|-------------|------------------|-----------|--------------|-----------|
+| deltacommit | 434768 | 1 | 434768 | 2 |
+
+### commits_compare
+
+Compare commit with another path.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description |
+|----------------|--------|----------|---------------|-----------------|
+| table | String | Y | None | Hudi table name |
+| path | String | Y | None | Path of table |
+
+**Output**
+
+| Output Name | Type |
+|----------------|--------|
+| compare_detail | String |
+
+**Example**
+
+```
+call commits_compare(table => 'test_hudi_table', path =>
'hdfs://ns1/hive/warehouse/hudi.db/test_hudi_table');
+```
+
+| compare_detail |
+|------------------------------------------------------------------------|
+| Source test_hudi_table is ahead by 0 commits. Commits to catch up - [] |
+
+### archive_commits
+
+archive commits.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|-----------------|---------|----------|---------------|--------------------------------------------------|
+| table | String | N | None | Hudi table name
|
+| path | String | N | None | Path of table
|
+| min_commits | Int | N | 20 | Configuration as
'hoodie.keep.min.commits' |
+| max_commits | Int | N | 30 | Configuration as
'hoodie.keep.max.commits' |
+| retain_commits | Int | N | 10 | Configuration as
'hoodie.commits.archival.batch' |
+| enable_metadata | Boolean | N | false | Enable the internal
metadata table |
+
+**Output**
+
+| Output Name | Type |
+|-------------|------|
+| result | Int |
+
+**Example**
+
+```
+call archive_commits(table => 'test_hudi_table');
+```
+
+| result |
+|--------|
+| 0 |
+
+### export_instants
+
+extract instants to local folder.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value
| Description |
+|----------------|---------|----------|-----------------------------------------------------|-----------------------------------|
+| table | String | Y | None
| Hudi table name |
+| local_folder | String | Y | None
| Local folder |
+| limit | Int | N | -1
| Number of instants to be exported |
+| actions | String | N |
clean,commit,deltacommit,rollback,savepoint,restore | Commit action
|
+| desc | Boolean | N | false
| Descending order |
+
+**Output**
+
+| Output Name | Type |
+|---------------|--------|
+| export_detail | String |
+
+**Example**
+
+```
+call export_instants(table => 'test_hudi_table', local_folder =>
'/tmp/folder');
+```
+
+| export_detail |
+|:-----------------------------------|
+| Exported 6 Instants to /tmp/folder |
+
+### rollback_to_instant
+
+Rollback a table to the commit that was current at some time.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description |
+|----------------|--------|----------|---------------|-----------------|
+| table | String | Y | None | Hudi table name |
+
+**Output**
+
+| Output Name | Type |
+|-----------------|---------|
+| rollback_result | Boolean |
+
+**Example**
+
+Roll back test_hudi_table to one instant
+```
+call rollback_to_instant(table => 'test_hudi_table', instant_time =>
'20220109225319449');
+```
+
+| rollback_result |
+|:----------------|
+| true |
+
+### create_savepoint
+
+Create a savepoint to hudi's table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description |
+|----------------|--------|----------|---------------|-----------------|
+| table | String | Y | None | Hudi table name |
+| commit_time | String | Y | None | Commit time |
+| user | String | N | "" | User name |
+| comments | String | N | "" | Comments |
+
+**Output**
+
+| Output Name | Type |
+|-------------------------|---------|
+| create_savepoint_result | Boolean |
+
+**Example**
+
+Roll back test_hudi_table to one instant
+```
+call create_savepoint(table => 'test_hudi_table', commit_time =>
'20220109225319449');
+```
+
+| create_savepoint_result |
+|:------------------------|
+| true |
+
+### show_savepoints
+
+Show savepoints.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description |
+|----------------|--------|----------|---------------|-----------------|
+| table | String | Y | None | Hudi table name |
+
+**Output**
+
+| Output Name | Type |
+|----------------|--------|
+| savepoint_time | String |
+
+**Example**
+
+```
+call show_savepoints(table => 'test_hudi_table');
+```
+
+| savepoint_time |
+|:------------------|
+| 20220109225319449 |
+| 20220109225311742 |
+| 20220109225301429 |
+
+### delete_savepoint
+
+Delete a savepoint to hudi's table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description |
+|----------------|--------|----------|---------------|-----------------|
+| table | String | Y | None | Hudi table name |
+| instant_time | String | Y | None | Instant time |
+
+**Output**
+
+| Output Name | Type |
+|-------------------------|---------|
+| delete_savepoint_result | Boolean |
+
+**Example**
+
+Delete a savepoint to test_hudi_table
+```
+call delete_savepoint(table => 'test_hudi_table', instant_time =>
'20220109225319449');
+```
+
+| delete_savepoint_result |
+|:------------------------|
+| true |
+
+### rollback_to_savepoint
+
+Rollback a table to the commit that was current at some time.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description |
+|----------------|--------|----------|---------------|-----------------|
+| table | String | Y | None | Hudi table name |
+| instant_time | String | Y | None | Instant time |
+
+**Output**
+
+| Output Name | Type |
+|---------------------------|---------|
+| rollback_savepoint_result | Boolean |
+
+**Example**
+
+Rollback test_hudi_table to one savepoint
+```
+call rollback_to_savepoint(table => 'test_hudi_table', instant_time =>
'20220109225319449');
+```
+
+| rollback_savepoint_result |
+|:--------------------------|
+| true |
+
+### copy_to_temp_view
+
+copy table to a temporary view.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|---------------------|---------|----------|---------------|-------------------------------------------------|
+| table | String | Y | None | Hudi table name
|
+| query_type | String | N | "snapshot" | Configuration as
'hoodie.datasource.query.type' |
+| view_name | String | Y | None | Name of view
|
+| begin_instance_time | String | N | "" | Begin instance
time |
+| end_instance_time | String | N | "" | End instance time
|
+| as_of_instant | String | N | "" | As of instant
time |
+| replace | Boolean | N | false | Replace an
existed view |
+| global | Boolean | N | false | Global view
|
+
+**Output**
+
+| Output Name | Type |
+|-------------|---------|
+| status | Boolean |
+
+**Example**
+
+```
+call copy_to_temp_view(table => 'test_hudi_table', view_name =>
'copy_view_test_hudi_table');
+```
+
+| status |
+|--------|
+| 0 |
+
+### copy_to_table
+
+copy table to a new table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|---------------------|--------|----------|---------------|-------------------------------------------------|
+| table | String | Y | None | Hudi table name
|
+| query_type | String | N | "snapshot" | Configuration as
'hoodie.datasource.query.type' |
+| new_table | String | Y | None | Name of new table
|
+| begin_instance_time | String | N | "" | Begin instance
time |
+| end_instance_time | String | N | "" | End instance time
|
+| as_of_instant | String | N | "" | As of instant time
|
+| save_mode | String | N | "overwrite" | Save mode
|
+
+**Output**
+
+| Output Name | Type |
+|-------------|---------|
+| status | Boolean |
+
+**Example**
+
+```
+call copy_to_table(table => 'test_hudi_table', new_table =>
'copy_table_test_hudi_table');
+```
+
+| status |
+|--------|
+| 0 |
+
+## Metadata Table management
+
+### create_metadata_table
+
+Create metadata table of a hudi table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description |
+|----------------|--------|----------|---------------|-----------------|
+| table | String | Y | None | Hudi table name |
+
+**Output**
+
+| Output Name | Type |
+|-------------|--------|
+| result | String |
+
+**Example**
+
+```
+call create_metadata_table(table => 'test_hudi_table');
+```
+
+| result
|
+|:------------------------------------------------------------------------------------------------------------------|
+| Created Metadata Table in
hdfs://ns1/hive/warehouse/hudi.db/test_hudi_table/.hoodie/metadata
(duration=2.777secs) |
+
+### init_metadata_table
+
+Init metadata table of a hudi table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description |
+|----------------|---------|----------|---------------|-----------------|
+| table | String | Y | None | Hudi table name |
+| read_only | Boolean | N | false | Read only |
+
+**Output**
+
+| Output Name | Type |
+|-------------|---------|
+| result | String |
+
+**Example**
+
+```
+call init_metadata_table(table => 'test_hudi_table');
+```
+
+| result
|
+|:---------------------------------------------------------------------------------------------------------------------|
+| Initialized Metadata Table in
hdfs://ns1/hive/warehouse/hudi.db/test_hudi_table/.hoodie/metadata
(duration=0.023sec) |
+
+### delete_metadata_table
+
+Delete metadata table of a hudi table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description |
+|----------------|---------|----------|---------------|-----------------|
+| table | String | Y | None | Hudi table name |
+
+**Output**
+
+| Output Name | Type |
+|-------------|---------|
+| result | String |
+
+**Example**
+
+```
+call delete_metadata_table(table => 'test_hudi_table');
+```
+
+| result
|
+|:-----------------------------------------------------------------------------------------------|
+| Removed Metadata Table from
hdfs://ns1/hive/warehouse/hudi.db/test_hudi_table/.hoodie/metadata |
+
+### show_metadata_table_partitions
+
+Show partition of a hudi table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description |
+|----------------|--------|----------|---------------|-----------------|
+| table | String | Y | None | Hudi table name |
+
+**Output**
+
+| Output Name | Type |
+|-------------|---------|
+| partition | String |
+
+**Example**
+
+```
+call show_metadata_table_partitions(table => 'test_hudi_table');
+```
+
+| partition |
+|:--------------|
+| dt=2021-05-01 |
+| dt=2021-05-02 |
+| dt=2021-05-03 |
+
+### show_metadata_table_files
+
+Show files of a hudi table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description |
+|----------------|--------|----------|---------------|-----------------|
+| table | String | Y | None | Hudi table name |
+| partition | String | N | "" | Partition name |
+
+**Output**
+
+| Output Name | Type |
+|-------------|---------|
+| file_path | String |
+
+**Example**
+
+Show files of a hudi table under one partition.
+```
+call show_metadata_table_files(table => 'test_hudi_table', partition =>
'dt=20230220');
+```
+
+| file_path |
+|:--------------------------------------------------------------------------|
+| .d3cdf6ff-250a-4cee-9af4-ab179fdb9bfb-0_20230220190948086.log.1_0-111-123 |
+| d3cdf6ff-250a-4cee-9af4-ab179fdb9bfb-0_0-78-81_20230220190948086.parquet |
+
+### show_metadata_table_stats
+
+Show metadata table stats of a hudi table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description |
+|----------------|--------|----------|---------------|-----------------|
+| table | String | Y | None | Hudi table name |
+
+**Output**
+
+| Output Name | Type |
+|-------------|--------|
+| stat_key | String |
+| stat_value | String |
+
+**Example**
+
+```
+call show_metadata_table_stats(table => 'test_hudi_table');
+```
+
+| stat_key | stat_value |
+|----------------------------------------|------------|
+| dt=2021-05-03.totalBaseFileSizeInBytes | 23142 |
+
+### validate_metadata_table_files
+
+Validate metadata table files of a hudi table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|----------------|---------|----------|---------------|----------------------------|
+| table | String | Y | None | Hudi table name
|
+| verbose | Boolean | N | False | If verbose print all
files |
+
+
+**Output**
+
+| Output Name | Type |
+|------------------------|---------|
+| partition | String |
+| file_name | String |
+| is_present_in_fs | Boolean |
+| is_present_in_metadata | Boolean |
+| fs_size | Long |
+| metadata_size | Long |
+
+**Example**
+
+```
+call validate_metadata_table_files(table => 'test_hudi_table');
+```
+
+| partition | file_name
| is_present_in_fs | is_present_in_metadata | fs_size | metadata_size |
+|---------------|---------------------------------------------------------------------|------------------|------------------------|---------|---------------|
+| dt=2021-05-03 |
ad1e5a3f-532f-4a13-9f60-223676798bf3-0_0-4-4_00000000000002.parquet | true
| true | 43523 | 43523 |
+
+## Table information
+
+### show_table_properties
+
+Show hudi properties of a table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|----------------|--------|----------|---------------|--------------------------------------|
+| table | String | Y | None | Hudi table name
|
+| path | String | N | None | Path of table
|
+| limit | Int | N | 10 | Max number of records
to be returned |
+
+**Output**
+
+| Output Name | Type |
+|-------------|--------|
+| key | String |
+| value | String |
+
+**Example**
+
+```
+call show_table_properties(table => 'test_hudi_table', limit => 10);
+```
+
+| key | value |
+|-------------------------------|-------|
+| hoodie.table.precombine.field | ts |
+| hoodie.table.partition.fields | dt |
+
+### show_fs_path_detail
+
+Show detail of a path.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|----------------|---------|----------|---------------|------------------------|
+| path | String | Y | None | Hudi table name
|
+| is_sub | Boolean | N | false | Whether to list files
|
+| sort | Boolean | N | true | Sorted by storage_size
|
+
+**Output**
+
+| Output Name | Type |
+|--------------------|--------|
+| path_num | Long |
+| file_num | Long |
+| storage_size | Long |
+| storage_size(unit) | String |
+| storage_path | String |
+| space_consumed | Long |
+| quota | Long |
+| space_quota | Long |
+
+**Example**
+
+```
+call show_fs_path_detail(path =>
'hdfs://ns1/hive/warehouse/hudi.db/test_hudi_table');
+```
+
+| path_num | file_num | storage_size | storage_size(unit) | storage_path
| space_consumed | quota | space_quota |
+|----------|----------|--------------|--------------------|---------------------------------------------------|----------------|---------|-------------|
+| 22 | 58 | 2065612 | 1.97MB |
hdfs://ns1/hive/warehouse/hudi.db/test_hudi_table | -1 | 6196836 |
-1 |
+
+### stats_file_sizes
+
+Show file sizes of a table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|----------------|--------|----------|---------------|--------------------------------------|
+| table | String | Y | None | Hudi table name
|
+| partition_path | String | N | "" | Partition path
|
+| limit | Int | N | 10 | Max number of records
to be returned |
+
+**Output**
+
+| Output Name | Type |
+|-------------|--------|
+| commit_time | String |
+| min | Long |
+| 10th | Double |
+| 50th | Double |
+| avg | Double |
+| 95th | Double |
+| max | Long |
+| num_files | Int |
+| std_dev | Double |
+
+**Example**
+
+```
+call stats_file_sizes(table => 'test_hudi_table');
+```
+
+| commit_time | min | 10th | 50th | avg | 95th | max
| num_files | std_dev |
+|-------------------|--------|----------|----------|----------|----------|--------|-----------|---------|
+| 20230205134149455 | 435000 | 435000.0 | 435000.0 | 435000.0 | 435000.0 |
435000 | 1 | 0.0 |
+
+### stats_wa
+
+Show write stats and amplification of a table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|----------------|--------|----------|---------------|--------------------------------------|
+| table | String | Y | None | Hudi table name
|
+| limit | Int | N | 10 | Max number of records
to be returned |
+
+**Output**
+
+| Output Name | Type |
+|----------------------------|--------|
+| commit_time | String |
+| total_upserted | Long |
+| total_written | Long |
+| write_amplification_factor | String |
+
+**Example**
+
+```
+call stats_wa(table => 'test_hudi_table');
+```
+
+| commit_time | total_upserted | total_written | write_amplification_factor |
+|-------------|----------------|---------------|----------------------------|
+| Total | 0 | 0 | 0 |
+
+### show_logfile_records
+
+Show records in logfile of a table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|-----------------------|---------|----------|---------------|--------------------------------------|
+| table | String | Y | None | Hudi table name
|
+| log_file_path_pattern | String | Y | 10 | Pattern of
logfile |
+| merge | Boolean | N | false | Merge results
|
+| limit | Int | N | 10 | Max number of
records to be returned |
+
+**Output**
+
+| Output Name | Type |
+|-------------|--------|
+| records | String |
+
+**Example**
+
+```
+call show_logfile_records(table => 'test_hudi_table', log_file_path_pattern =>
'hdfs://ns1/hive/warehouse/hudi.db/test_hudi_table/*.log*');
+```
-Rollback a table to the commit that was current at some time.
+| records
|
+|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| {"_hoodie_commit_time": "20230205133427059", "_hoodie_commit_seqno":
"20230205133427059_0_10", "_hoodie_record_key": "1", "_hoodie_partition_path":
"", "_hoodie_file_name": "3438e233-7b50-4eff-adbb-70b1cd76f518-0", "id": 1,
"name": "a1", "price": 40.0, "ts": 1111} |
+
+### show_logfile_metadata
+
+Show metadatas in logfile of a table.
**Input**
-| Parameter Name | Type | Required | Default Value | Description |
-|----------------|--------|----------|---------------|-----------------|
-| table | String | Y | None | Hudi table name |
+| Parameter Name | Type | Required | Default Value | Description
|
+|-----------------------|---------|----------|---------------|--------------------------------------|
+| table | String | Y | None | Hudi table name
|
+| log_file_path_pattern | String | Y | 10 | Pattern of
logfile |
+| merge | Boolean | N | false | Merge results
|
+| limit | Int | N | 10 | Max number of
records to be returned |
**Output**
-| Output Name | Type |
-|-----------------|---------|
-| rollback_result | Boolean |
+| Output Name | Type |
+|-----------------|--------|
+| instant_time | String |
+| record_count | Int |
+| block_type | String |
+| header_metadata | String |
+| footer_metadata | String |
**Example**
-Roll back test_hudi_table to one instant
```
-call rollback_to_instant(table => 'test_hudi_table', instant_time =>
'20220109225319449');
+call show_logfile_metadata(table => 'hudi_mor_tbl', log_file_path_pattern =>
'hdfs://ns1/hive/warehouse/hudi.db/hudi_mor_tbl/*.log*');
```
-| rollback_result |
-| :---------------|
-| true |
+| instant_time | record_count | block_type | header_metadata
[...]
+|-------------------|--------------|-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[...]
+| 20230205133427059 | 1 | AVRO_DATA_BLOCK |
{"INSTANT_TIME":"20230205133427059","SCHEMA":"{\"type\":\"record\",\"name\":\"hudi_mor_tbl_record\",\"namespace\":\"hoodie.hudi_mor_tbl\",\"fields\":[{\"name\":\"_hoodie_commit_time\",\"type\":[\"null\",\"string\"],\"doc\":\"\",\"default\":null},{\"name\":\"_hoodie_commit_seqno\",\"type\":[\"null\",\"string\"],\"doc\":\"\",\"default\":null},{\"name\":\"_hoodie_record_key\",\"type\":[\"null\",\"string\"],\"doc\":\"\",\"default\":null}
[...]
-### create_savepoints
+### show_invalid_parquet
-Create a savepoint to hudi's table.
+Show invalid parquet files of a table.
**Input**
-| Parameter Name | Type | Required | Default Value | Description |
-|----------------|--------|----------|---------------|-----------------|
-| table | String | Y | None | Hudi table name |
-| commit_Time | String | Y | None | Commit time |
-| user | String | N | "" | User name |
-| comments | String | N | "" | Comments |
+| Parameter Name | Type | Required | Default Value | Description
|
+|----------------|---------|----------|---------------|--------------------------------------|
+| Path | String | Y | None | Hudi table name
|
**Output**
-| Output Name | Type |
-|-------------------------|---------|
-| create_savepoint_result | Boolean |
+| Output Name | Type |
+|-------------|--------|
+| Path | String |
**Example**
-Roll back test_hudi_table to one instant
```
-call create_savepoints(table => 'test_hudi_table', instant_time =>
'20220109225319449');
+call show_invalid_parquet(path =>
'hdfs://ns1/hive/warehouse/hudi.db/test_hudi_table');
```
-| create_savepoint_result |
-|:------------------------|
-| true |
+| Path
|
+|----------------------------------------------------------------------------------------------------------------------------|
+|
hdfs://ns1/hive/warehouse/hudi.db/test_hudi_table/7fb52523-c7f6-41aa-84a6-629041477aeb-0_0-92-99_20230205133532199.parquet
|
-### delete_savepoints
+### show_fsview_all
-Delete a savepoint to hudi's table.
+Show file system views of a table.
**Input**
-| Parameter Name | Type | Required | Default Value | Description |
-|----------------|--------|----------|---------------|-----------------|
-| table | String | Y | None | Hudi table name |
-| instant_time | String | Y | None | Instant time |
+| Parameter Name | Type | Required | Default Value | Description
|
+|--------------------|---------|----------|---------------|--------------------------------------|
+| table | String | Y | None | Hudi table name
|
+| max_instant | String | N | "" | Max instant time
|
+| include_max | Boolean | N | false | Include max
instant |
+| include_in_flight | Boolean | N | false | Include in flight
|
+| exclude_compaction | Boolean | N | false | Exclude compaction
|
+| limit | Int | N | 10 | Max number of
records to be returned |
+| path_regex | String | N | "*/*/*" | Pattern of path
|
**Output**
-| Output Name | Type |
-|-------------------------|---------|
-| delete_savepoint_result | Boolean |
+| Output Name | Type |
+|-----------------------|--------|
+| partition | String |
+| file_id | String |
+| base_instant | String |
+| data_file | String |
+| data_file_size | Long |
+| num_delta_files | Long |
+| total_delta_file_size | Long |
+| delta_files | String |
**Example**
-Delete a savepoint to test_hudi_table
```
-call delete_savepoints(table => 'test_hudi_table', instant_time =>
'20220109225319449');
+call show_fsview_all(table => 'test_hudi_table');
```
-| delete_savepoint_result |
-|:------------------------|
-| true |
+| partition | file_id | base_instant |
data_file |
data_file_size | num_delta_files | total_delta_file_size | delta_files
|
+|---------------|----------------------------------------|-------------------|--------------------------------------------------------------------------|----------------|-----------------|-----------------------|-------------------------------------------------------------------------|
+| dt=2021-05-03 | d0073a12-085d-4f49-83e9-402947e7e90a-0 | 20220109225319449 |
7fb52523-c7f6-41aa-84a6-629041477aeb-0_0-92-99_20220109225319449.parquet |
5319449 | 1 | 213193 |
.7fb52523-c7f6-41aa-84a6-629041477aeb-0_20230205133217210.log.1_0-60-63 |
-### rollback_savepoints
+### show_fsview_latest
-Rollback a table to the commit that was current at some time.
+Show latest file system view of a table.
**Input**
-| Parameter Name | Type | Required | Default Value | Description |
-|----------------|--------|----------|---------------|-----------------|
-| table | String | Y | None | Hudi table name |
-| instant_time | String | Y | None | Instant time |
+| Parameter Name | Type | Required | Default Value | Description
|
+|--------------------|---------|----------|---------------|--------------------------------------|
+| table | String | Y | None | Hudi table name
|
+| max_instant | String | N | "" | Max instant time
|
+| include_max | Boolean | N | false | Include max
instant |
+| include_in_flight | Boolean | N | false | Include in flight
|
+| exclude_compaction | Boolean | N | false | Exclude compaction
|
+| partition_path | String | Y | "" | Partition path
|
+| merge | Boolean | N | false | Merge results
|
**Output**
-| Output Name | Type |
-|---------------------------|---------|
-| rollback_savepoint_result | Boolean |
+| Output Name | Type |
+|--------------------------------------------|--------|
+| partition | String |
+| file_id | String |
+| base_instant | String |
+| data_file | String |
+| data_file_size | Long |
+| num_delta_files | Long |
+| total_delta_file_size | Long |
+| delta_size_compaction_scheduled | Long |
+| delta_size_compaction_unscheduled | Long |
+| delta_to_base_radio_compaction_scheduled | Double |
+| delta_to_base_radio_compaction_unscheduled | Double |
+| delta_files_compaction_scheduled | String |
+| delta_files_compaction_unscheduled | String |
**Example**
-Rollback test_hudi_table to one savepoint
```
-call rollback_savepoints(table => 'test_hudi_table', instant_time =>
'20220109225319449');
+call show_fsview_latest(table => 'test_hudi_table');
```
-| rollback_savepoint_result |
-|:--------------------------|
-| true |
+| partition | file_id | base_instant |
data_file |
data_file_size | num_delta_files | total_delta_file_size | delta_files
|
+|---------------|----------------------------------------|-------------------|--------------------------------------------------------------------------|----------------|-----------------|-----------------------|-------------------------------------------------------------------------|
+| dt=2021-05-03 | d0073a12-085d-4f49-83e9-402947e7e90a-0 | 20220109225319449 |
7fb52523-c7f6-41aa-84a6-629041477aeb-0_0-92-99_20220109225319449.parquet |
5319449 | 1 | 213193 |
.7fb52523-c7f6-41aa-84a6-629041477aeb-0_20230205133217210.log.1_0-60-63 |
## Optimization table
@@ -449,4 +1457,435 @@ call show_compaction(table => 'test_hudi_table', limit
=> 1)
```
| timestamp | action | size |
|-------------------|------------|---------|
-| 20220408153707928 | compaction | 10 |
\ No newline at end of file
+| 20220408153707928 | compaction | 10 |
+
+### delete_marker
+
+Delete marker files of a hudi table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description |
+|----------------|--------|----------|---------------|-----------------|
+| table | String | Y | None | Hudi table name |
+| instant_time | String | Y | None | Instant name |
+
+**Output**
+
+| Output Name | Type |
+|----------------------|---------|
+| delete_marker_result | Boolean |
+
+**Example**
+
+```
+call delete_marker(table => 'test_hudi_table', instant_time =>
'20230206174349556');
+```
+
+| delete_marker_result |
+|:---------------------|
+| true |
+
+### sync_validate
+
+Validate sync procedure.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description |
+|-----------------|--------|----------|---------------|-------------------|
+| src_table | String | Y | None | Source table name |
+| dst_table | String | Y | None | Target table name |
+| mode | String | Y | "complete" | Mode |
+| hive_server_url | String | Y | None | Hive server url |
+| hive_pass | String | Y | None | Hive password |
+| src_db | String | N | "rawdata" | Source database |
+| target_db | String | N | dwh_hoodie" | Target database |
+| partition_cnt | Int | N | 5 | Partition count |
+| hive_user | String | N | "" | Hive user name |
+
+**Output**
+
+| Output Name | Type |
+|-------------|--------|
+| result | String |
+
+**Example**
+
+```
+ call sync_validate(hive_server_url=>'jdbc:hive2://localhost:10000/default',
src_table => 'test_hudi_table_src', dst_table=> 'test_hudi_table_dst',
mode=>'complete', hive_pass=>'', src_db=> 'default', target_db=>'default');
+```
+
+### hive_sync
+
+Sync the table's latest schema to Hive metastore.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|---------------------------|--------|----------|---------------|--------------------------------------------------------------------------|
+| table | String | Y | None | Hudi table
name |
+| metastore_uri | String | N | "" |
Metastore_uri |
+| username | String | N | "" | User name
|
+| password | String | N | "" | Password
|
+| use_jdbc | String | N | "" | Configration
as 'hoodie.datasource.hive_sync.use_jdbc' |
+| mode | String | N | "" |
Configuration as 'hoodie.datasource.hive_sync.mode' |
+| partition_fields | String | N | "" |
Configuration as 'hoodie.datasource.hive_sync.partition_fields' |
|
+| partition_extractor_class | String | N | "" |
Configuration as 'hoodie.datasource.hive_sync.partition_extractor_class' |
+| strategy | String | N | "" |
Configuration as 'hoodie.datasource.hive_sync.table.strategy' |
+
+**Output**
+
+| Output Name | Type |
+|-------------|--------|
+| result | String |
+
+**Example**
+
+```
+call hive_sync(table => 'test_hudi_table');
+```
+
+| result |
+|:-------|
+| true |
+
+### hdfs_parquet_import
+
+add parquet files to a hudi table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|------------------|--------|----------|---------------|--------------------------------------------|
+| table | String | Y | None | Hudi table name
|
+| table_type | String | Y | "" | Table type,
MERGE_ON_READ or COPY_ON_WRITE |
+| src_path | String | Y | "" | Source path
|
+| target_path | String | Y | "" | target path
|
+| row_key | String | Y | "" | Primary key
|
+| partition_key | String | Y | "" | Partition key
|
+| schema_file_path | String | Y | "" | Path of Schema file
|
+| format | String | N | "parquet" | File format
|
+| command | String | N | "insert" | Import command
|
+| retry | Int | N | 0 | Retry times
|
+| parallelism | Int | N | None | Parallelism
|
+| props_file_path | String | N | "" | Path of properties
file |
+
+**Output**
+
+| Output Name | Type |
+|---------------|------|
+| import_result | Int |
+
+**Example**
+
+```
+call hdfs_parquet_import(table => 'test_hudi_table', table_type =>
'COPY_ON_WRITE', src_path => '', target_path => '', row_key => 'id',
partition_key => 'dt', schema_file_path => '');
+```
+
+| import_result |
+|:--------------|
+| 0 |
+
+
+### repair_add_partition_meta
+
+Repair add partition for a hudi table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description |
+|----------------|---------|----------|---------------|-----------------|
+| table | String | Y | None | Hudi table name |
+| dry_run | Boolean | N | true | Dry run |
+
+**Output**
+
+| Output Name | Type |
+|---------------------|--------|
+| partition_path | String |
+| metadata_is_present | String |
+| action | String |
+
+**Example**
+
+```
+call repair_add_partition_meta(table => 'test_hudi_table');
+```
+
+| partition_path | metadata_is_present | action |
+|----------------|---------------------|--------|
+| dt=2021-05-03 | Yes | None |
+
+### repair_corrupted_clean_files
+
+Repair corrupted clean files for a hudi table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|---------------------|---------|----------|---------------|--------------------|
+| table | String | Y | None | Hudi table name
|
+
+**Output**
+
+| Output Name | Type |
+|-------------|---------|
+| result | Boolean |
+
+**Example**
+
+```
+call repair_corrupted_clean_files(table => 'test_hudi_table');
+```
+
+| result |
+|--------|
+| true |
+
+### repair_deduplicate
+
+Repair deduplicate records for a hudi table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|---------------------------|---------|----------|---------------|---------------------------|
+| table | String | Y | None | Hudi table
name |
+| duplicated_partition_path | String | Y | None | Duplicated
partition path |
+| repaired_output_path | String | Y | None | Repaired
output path |
+| dry_run | Boolean | N | true | Dry run
|
+| dedupe_type | String | N | "insert_type" | Dedupe type
|
+
+**Output**
+
+| Output Name | Type |
+|-------------|--------|
+| result | String |
+
+**Example**
+
+```
+call repair_deduplicate(table => 'test_hudi_table', duplicated_partition_path
=> 'dt=2021-05-03', repaired_output_path => 'dt=2021-05-04');
+```
+
+| result |
+|----------------------------------------------|
+| Reduplicated files placed in: dt=2021-05-04. |
+
+### repair_migrate_partition_meta
+
+downgrade a hudi table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description |
+|----------------|---------|----------|---------------|-----------------|
+| table | String | Y | None | Hudi table name |
+| dry_run | Boolean | N | true | Dry run |
+
+**Output**
+
+| Output Name | Type |
+|-----------------------|--------|
+| partition_path | String |
+| text_metafile_present | String |
+| base_metafile_present | String |
+| action | String |
+
+**Example**
+
+```
+call repair_migrate_partition_meta(table => 'test_hudi_table');
+```
+
+### repair_overwrite_hoodie_props
+
+overwrite a hudi table properties.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|---------------------|--------|----------|---------------|------------------------|
+| table | String | Y | None | Hudi table name
|
+| new_props_file_path | String | Y | None | Path of new
properties |
+
+**Output**
+
+| Output Name | Type |
+|-------------|--------|
+| property | String |
+| old_value | String |
+| new_value | String |
+
+**Example**
+
+```
+call repair_overwrite_hoodie_props(table => 'test_hudi_table',
new_props_file_path = > '/tmp/props');
+```
+
+| property | old_value | new_value |
+|--------------------------|-----------|-----------|
+| hoodie.file.index.enable | true | false |
+
+## Bootstrap
+
+### run_bootstrap
+
+Convert an existing table to Hudi.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value
| Description
|
+|-------------------------------|---------|----------|-------------------------------------------------------------------------------|--------------------------------------------|
+| table | String | Y | None
| Name of table to be
clustered |
+| table_type | String | Y | None
| Table type,
MERGE_ON_READ or COPY_ON_WRITE |
+| bootstrap_path | String | Y | None
| Bootstrap path
|
+| base_path | String | Y | None
| Base path
|
+| rowKey_field | String | Y | None
| Primary key field
|
+| base_file_format | String | N | "PARQUET"
| Format of base file
|
+| partition_path_field | String | N | ""
| Partitioned column
field |
+| bootstrap_index_class | String | N |
"org.apache.hudi.common.bootstrap.index.HFileBootstrapIndex" |
Class of bootstrap index |
+| selector_class | String | N |
"org.apache.hudi.client.bootstrap.selector.MetadataOnlyBootstrapModeSelector" |
Class of selector |
+| key_generator_class | String | N |
"org.apache.hudi.keygen.SimpleKeyGenerator" |
Class of key generator |
+| full_bootstrap_input_provider | String | N |
"org.apache.hudi.bootstrap.SparkParquetBootstrapDataProvider" |
Class of full bootstrap input provider |
+| schema_provider_class | String | N | ""
| Class of schema
provider |
+| payload_class | String | N |
"org.apache.hudi.common.model.OverwriteWithLatestAvroPayload" |
Class of payload |
+| parallelism | Int | N | 1500
| Parallelism
|
+| enable_hive_sync | Boolean | N | false
| Whether to enable hive
sync |
+| props_file_path | String | N | ""
| Path of properties file
|
+| bootstrap_overwrite | Boolean | N | false
| Overwrite bootstrap
path |
+
+**Output**
+
+| Output Name | Type |
+|-------------|---------|
+| status | Boolean |
+
+**Example**
+
+```
+call run_bootstrap(table => 'test_hudi_table', table_type => 'COPY_ON_WRITE',
bootstrap_path => 'hdfs://ns1/hive/warehouse/hudi.db/test_hudi_table',
base_path => 'hdfs://ns1//tmp/hoodie/test_hudi_table', rowKey_field => 'id',
partition_path_field => 'dt',bootstrap_overwrite => true);
+```
+
+| status |
+|--------|
+| 0 |
+
+### show_bootstrap_mapping
+
+Show mapping files of a bootstrap table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|----------------|---------|----------|---------------|--------------------------------------|
+| table | String | Y | None | Name of table to be
clustered |
+| partition_path | String | N | "" | Partition path
|
+| file_ids | String | N | "" | File ids
|
+| limit | Int | N | 10 | Max number of records
to be returned |
+| sort_by | String | N | "partition" | Sort by columns
|
+| desc | Boolean | N | false | Descending order
|
+
+**Output**
+
+| Parameter Name | Type |
+|------------------|--------|
+| partition | String |
+| file_id | Int |
+| source_base_path | String |
+| source_partition | Int |
+| source_file | String |
+
+**Example**
+
+```
+call show_bootstrap_mapping(table => 'test_hudi_table')
+```
+
+| partition | file_id | source_base_path
| source_partition | source_file
|
+|---------------|----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|------------------|--------------------------------------------|
+| dt=2021-05-03 | d0073a12-085d-4f49-83e9-402947e7e90a-0 |
hdfs://ns1/hive/warehouse/hudi.db/test_hudi_table/dt=2021-05-03/d0073a12-085d-4f49-83e9-402947e7e90a-0_0-2-2_00000000000002.parquet
| dt=2021-05-03 | hdfs://ns1/tmp/dt=2021-05-03/00001.parquet |
+
+
+### show_bootstrap_partitions
+
+Show partitions of a bootstrap table.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|----------------|--------|----------|---------------|--------------------------------------|
+| table | String | Y | None | Name of table to be
clustered |
+
+**Output**
+
+| Parameter Name | Type |
+|--------------------|--------|
+| indexed_partitions | String |
+
+**Example**
+
+```
+call show_bootstrap_partitions(table => 'test_hudi_table')
+```
+
+| indexed_partitions |
+|--------------------|
+| dt=2021-05-03 |
+
+## Version management
+
+### upgrade_table
+
+upgrade a hudi table to a specific version.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|----------------|--------|----------|---------------|-------------------------|
+| table | String | Y | None | Hudi table name
|
+| to_version | String | Y | None | Version of hoodie table
|
+
+**Output**
+
+| Output Name | Type |
+|-------------|---------|
+| result | Boolean |
+
+**Example**
+
+```
+call upgrade_table(table => 'test_hudi_table', to_version => 'FIVE');
+```
+
+| result |
+|--------|
+| true |
+
+### downgrade_table
+
+downgrade a hudi table to a specific version.
+
+**Input**
+
+| Parameter Name | Type | Required | Default Value | Description
|
+|----------------|--------|----------|---------------|-------------------------|
+| table | String | Y | None | Hudi table name
|
+| to_version | String | Y | None | Version of hoodie table
|
+
+**Output**
+
+| Output Name | Type |
+|-------------|---------|
+| result | Boolean |
+
+**Example**
+
+```
+call downgrade_table(table => 'test_hudi_table', to_version => 'FOUR');
+```
+
+| result |
+|--------|
+| true |
\ No newline at end of file