更新时间:2025-08-29 GMT+08:00
分享

修改StarRocks数据同步配置

功能介绍

修改StarRocks数据同步配置。

调用方法

请参见如何调用API

URI

PUT /v3/{project_id}/instances/{instance_id}/starrocks/databases/replication

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释

租户在某一Region下的project ID。

获取方法请参见获取项目ID

约束限制

不涉及。

取值范围

只能由英文字母、数字组成,且长度为32个字符。

默认取值

不涉及。

instance_id

String

参数解释

StarRocks实例ID,严格匹配UUID规则。

约束限制

不涉及。

取值范围

只能由英文字母、数字组成,后缀为in17,且长度为36个字符。

默认取值

不涉及。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

参数解释

用户Token。 通过调用IAM服务获取用户Token接口获取。

请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。

约束限制

不涉及。

取值范围

不涉及。

默认取值

不涉及。

X-Language

String

参数解释

请求语言类型。

约束限制

不涉及。

取值范围

  • en-us

  • zh-cn

默认取值

en-us。

Content-Type

String

参数解释

内容类型。

约束限制

不涉及。

取值范围

application/json。

默认取值

application/json。

表3 请求Body参数

参数

是否必选

参数类型

描述

source_instance_id

String

参数解释

TaurusDB实例ID。

约束限制

不涉及。

取值范围

只能由英文字母、数字组成,后缀为in07,长度为36个字符。

默认取值

不涉及。

source_node_id

String

参数解释

TaurusDB只读节点ID。

约束限制

不涉及。

取值范围

只能由英文字母、数字组成,后缀为no07,长度为36个字符。

默认取值

不涉及。

source_database_name

String

参数解释

TaurusDB数据库名。

约束限制

不涉及。

取值范围

字符长度限制3~1024位,仅支持英文大小写字母、数字以及下划线。

默认取值

不涉及。

task_name

String

参数解释

数据同步任务名称。

约束限制

不涉及。

取值范围

长度限制3~128位,仅支持英文大小写字母、数字以及下划线。

默认取值

不涉及。

db_configs

Array of DbConfig objects

参数解释

库配置列表。

约束限制

不涉及。

取值范围

不涉及。

默认取值

不涉及。

tables_configs

Array of TablesConfig objects

参数解释

表配置信息。

约束限制

不涉及。

取值范围

不涉及。

默认取值

不涉及。

table_repl_config

TableReplConfig object

参数解释

表同步配置信息。

约束限制

不涉及。

取值范围

不涉及。

默认取值

不涉及。

target_database_name

String

参数解释

目标数据库名。

约束限制

不涉及。

取值范围

长度限制3~128位,仅支持英文大小写字母、数字以及下划线。

默认取值

不涉及。

is_instance_level_sync

String

参数解释

是否支持实例级同步。

约束限制

不涉及。

取值范围

  • true:是

  • false:否

默认取值

false。

database_repl_scope

String

参数解释

库同步范围。

约束限制

不涉及。

取值范围

  • all:全部库同步

  • part:部分库同步

默认取值

part。

is_support_reg_exp

String

参数解释

是否支持通配符。

约束限制

不涉及。

取值范围

  • true:是

  • false:否

默认取值

false。

表4 DbConfig

参数

是否必选

参数类型

描述

param_name

String

参数解释

参数名。

取值范围

不涉及。

value

String

参数解释

参数值。

取值范围

不涉及。

表5 TablesConfig

参数

是否必选

参数类型

描述

table_name

String

表名。

table_config

String

表配置值。

表6 TableReplConfig

参数

是否必选

参数类型

描述

repl_type

String

参数解释

表同步类型。

取值范围

  • include_tables:白名单。

  • exclude_tables:黑名单。

repl_scope

String

参数解释

表同步范围。

取值范围

  • all:全量同步。

  • part:部分同步。

tables

Array of strings

参数解释

白名单或黑名单的表范围。

响应参数

状态码:200

表7 响应Body参数

参数

参数类型

描述

source_database_name

String

参数解释

TaurusDB数据库名。

取值范围

长度限制3~1024位,仅支持英文大小写字母、数字以及下划线。

target_database_name

String

参数解释

目标数据库名。

取值范围

长度限制3~1024位,仅支持英文大小写字母、数字以及下划线。

source_db_config_check_results

Array of DbConfigCheckResult objects

参数解释

TaurusDB数据库配置检查结果。

取值范围

不涉及。

tbl_config_check_results

Array of TableConfigCheckResult objects

参数解释

表配置检查结果。

取值范围

不涉及。

task_name

String

参数解释

同步任务名称。

取值范围

长度限制3~128位,仅支持英文大小写字母、数字以及下划线。

job_id

String

参数解释

修改同步配置工作流ID。

取值范围

不涉及。

表8 DbConfigCheckResult

参数

参数类型

描述

param_name

String

参数解释

参数名。

取值范围

字符长度限制3~128位。

value

String

参数解释

参数值。

取值范围

字符长度限制1~64位。

check_result

String

参数解释

校验结果。

取值范围

  • success:成功。

  • fail:失败。

表9 TableConfigCheckResult

参数

参数类型

描述

table_name

String

参数解释

表名。

取值范围

不涉及。

table_config

String

参数解释

表配置项。

取值范围

不涉及。

check_result

String

参数解释

校验结果。

取值范围

success/failed。

状态码:400

表10 响应Body参数

参数

参数类型

描述

error_code

String

参数解释

错误码

取值范围

不涉及。

error_msg

String

参数解释

错误描述

取值范围

不涉及。

状态码:500

表11 响应Body参数

参数

参数类型

描述

error_code

String

参数解释

错误码

取值范围

不涉及。

error_msg

String

参数解释

错误描述

取值范围

不涉及。

请求示例

PUT https://{localhost}/v3/{project_id}/instances/{instance_id}/starrocks/databases/replication

{
  "source_database_name" : "source_database_name",
  "target_database_name" : "target_database_name",
  "db_configs" : [ {
    "param_name" : "enable_chunk_level_dump",
    "value" : "false"
  }, {
    "param_name" : "snapshot_with_lock",
    "value" : "true"
  }, {
    "param_name" : "sync_commit_interval_ms",
    "value" : "5000"
  }, {
    "param_name" : "max_sync_commit_rows",
    "value" : "500000"
  }, {
    "param_name" : "max_sync_commit_bytes",
    "value" : "268435456"
  }, {
    "param_name" : "max_full_sync_task_threads_num",
    "value" : "1"
  }, {
    "param_name" : "max_rows_per_chunk",
    "value" : "0"
  }, {
    "param_name" : "max_bytes_per_chunk",
    "value" : "268435456"
  }, {
    "param_name" : "binlog_expire_logs_seconds",
    "value" : "0"
  } ],
  "table_repl_config" : {
    "repl_type" : "include_tables",
    "repl_scope" : "all",
    "tables" : [ ]
  },
  "tables_configs" : {
    "table_name" : "tableName",
    "table_config" : "tableConfig"
  },
  "source_instance_id" : "source_instance_id",
  "is_create_task" : "true",
  "source_node_id" : "source_node_id"
}

响应示例

状态码:200

Success.

{
  "source_database_name" : "source_database_name",
  "target_database_name" : "target_database_name",
  "job_id" : "job_id",
  "task_name" : "task",
  "tbl_config_check_results" : [ {
    "table_name" : "table",
    "table_config" : "order by id",
    "check_result" : "success"
  } ],
  "source_db_config_check_results" : [ {
    "param_name" : "enable_chunk_level_dump",
    "value" : "false",
    "check_result" : "success"
  }, {
    "param_name" : "snapshot_with_lock",
    "value" : "true",
    "check_result" : "success"
  } ]
}

状态码:400

Client error.

{
  "error_code" : "DBS.200022",
  "error_msg" : "实例不存在"
}

SDK代码示例

SDK代码示例如下。

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.gaussdb.v3.region.GaussDBRegion;
import com.huaweicloud.sdk.gaussdb.v3.*;
import com.huaweicloud.sdk.gaussdb.v3.model.*;

import java.util.List;
import java.util.ArrayList;

public class ModifyDataSyncSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        String projectId = "{project_id}";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        GaussDBClient client = GaussDBClient.newBuilder()
                .withCredential(auth)
                .withRegion(GaussDBRegion.valueOf("<YOUR REGION>"))
                .build();
        ModifyDataSyncRequest request = new ModifyDataSyncRequest();
        request.withInstanceId("{instance_id}");
        ModifyDataSyncConfigRequestV3 body = new ModifyDataSyncConfigRequestV3();
        TableReplConfig tableReplConfigbody = new TableReplConfig();
        tableReplConfigbody.withReplType(TableReplConfig.ReplTypeEnum.fromValue("include_tables"))
            .withReplScope(TableReplConfig.ReplScopeEnum.fromValue("all"));
        List<DbConfig> listbodyDbConfigs = new ArrayList<>();
        listbodyDbConfigs.add(
            new DbConfig()
                .withParamName("enable_chunk_level_dump")
                .withValue("false")
        );
        listbodyDbConfigs.add(
            new DbConfig()
                .withParamName("snapshot_with_lock")
                .withValue("true")
        );
        listbodyDbConfigs.add(
            new DbConfig()
                .withParamName("sync_commit_interval_ms")
                .withValue("5000")
        );
        listbodyDbConfigs.add(
            new DbConfig()
                .withParamName("max_sync_commit_rows")
                .withValue("500000")
        );
        listbodyDbConfigs.add(
            new DbConfig()
                .withParamName("max_sync_commit_bytes")
                .withValue("268435456")
        );
        listbodyDbConfigs.add(
            new DbConfig()
                .withParamName("max_full_sync_task_threads_num")
                .withValue("1")
        );
        listbodyDbConfigs.add(
            new DbConfig()
                .withParamName("max_rows_per_chunk")
                .withValue("0")
        );
        listbodyDbConfigs.add(
            new DbConfig()
                .withParamName("max_bytes_per_chunk")
                .withValue("268435456")
        );
        listbodyDbConfigs.add(
            new DbConfig()
                .withParamName("binlog_expire_logs_seconds")
                .withValue("0")
        );
        body.withTargetDatabaseName("target_database_name");
        body.withTableReplConfig(tableReplConfigbody);
        body.withDbConfigs(listbodyDbConfigs);
        body.withSourceDatabaseName("source_database_name");
        body.withSourceNodeId("source_node_id");
        body.withSourceInstanceId("source_instance_id");
        request.withBody(body);
        try {
            ModifyDataSyncResponse response = client.modifyDataSync(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkgaussdb.v3.region.gaussdb_region import GaussDBRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkgaussdb.v3 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId)

    client = GaussDBClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(GaussDBRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ModifyDataSyncRequest()
        request.instance_id = "{instance_id}"
        tableReplConfigbody = TableReplConfig(
            repl_type="include_tables",
            repl_scope="all"
        )
        listDbConfigsbody = [
            DbConfig(
                param_name="enable_chunk_level_dump",
                value="false"
            ),
            DbConfig(
                param_name="snapshot_with_lock",
                value="true"
            ),
            DbConfig(
                param_name="sync_commit_interval_ms",
                value="5000"
            ),
            DbConfig(
                param_name="max_sync_commit_rows",
                value="500000"
            ),
            DbConfig(
                param_name="max_sync_commit_bytes",
                value="268435456"
            ),
            DbConfig(
                param_name="max_full_sync_task_threads_num",
                value="1"
            ),
            DbConfig(
                param_name="max_rows_per_chunk",
                value="0"
            ),
            DbConfig(
                param_name="max_bytes_per_chunk",
                value="268435456"
            ),
            DbConfig(
                param_name="binlog_expire_logs_seconds",
                value="0"
            )
        ]
        request.body = ModifyDataSyncConfigRequestV3(
            target_database_name="target_database_name",
            table_repl_config=tableReplConfigbody,
            db_configs=listDbConfigsbody,
            source_database_name="source_database_name",
            source_node_id="source_node_id",
            source_instance_id="source_instance_id"
        )
        response = client.modify_data_sync(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    gaussdb "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/gaussdb/v3"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/gaussdb/v3/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/gaussdb/v3/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    projectId := "{project_id}"

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        Build()

    client := gaussdb.NewGaussDBClient(
        gaussdb.GaussDBClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ModifyDataSyncRequest{}
	request.InstanceId = "{instance_id}"
	replTypeTableReplConfig:= model.GetTableReplConfigReplTypeEnum().INCLUDE_TABLES
	replScopeTableReplConfig:= model.GetTableReplConfigReplScopeEnum().ALL
	tableReplConfigbody := &model.TableReplConfig{
		ReplType: &replTypeTableReplConfig,
		ReplScope: &replScopeTableReplConfig,
	}
	paramNameDbConfigs:= "enable_chunk_level_dump"
	valueDbConfigs:= "false"
	paramNameDbConfigs1:= "snapshot_with_lock"
	valueDbConfigs1:= "true"
	paramNameDbConfigs2:= "sync_commit_interval_ms"
	valueDbConfigs2:= "5000"
	paramNameDbConfigs3:= "max_sync_commit_rows"
	valueDbConfigs3:= "500000"
	paramNameDbConfigs4:= "max_sync_commit_bytes"
	valueDbConfigs4:= "268435456"
	paramNameDbConfigs5:= "max_full_sync_task_threads_num"
	valueDbConfigs5:= "1"
	paramNameDbConfigs6:= "max_rows_per_chunk"
	valueDbConfigs6:= "0"
	paramNameDbConfigs7:= "max_bytes_per_chunk"
	valueDbConfigs7:= "268435456"
	paramNameDbConfigs8:= "binlog_expire_logs_seconds"
	valueDbConfigs8:= "0"
	var listDbConfigsbody = []model.DbConfig{
        {
            ParamName: &paramNameDbConfigs,
            Value: &valueDbConfigs,
        },
        {
            ParamName: &paramNameDbConfigs1,
            Value: &valueDbConfigs1,
        },
        {
            ParamName: &paramNameDbConfigs2,
            Value: &valueDbConfigs2,
        },
        {
            ParamName: &paramNameDbConfigs3,
            Value: &valueDbConfigs3,
        },
        {
            ParamName: &paramNameDbConfigs4,
            Value: &valueDbConfigs4,
        },
        {
            ParamName: &paramNameDbConfigs5,
            Value: &valueDbConfigs5,
        },
        {
            ParamName: &paramNameDbConfigs6,
            Value: &valueDbConfigs6,
        },
        {
            ParamName: &paramNameDbConfigs7,
            Value: &valueDbConfigs7,
        },
        {
            ParamName: &paramNameDbConfigs8,
            Value: &valueDbConfigs8,
        },
    }
	targetDatabaseNameModifyDataSyncConfigRequestV3:= "target_database_name"
	sourceDatabaseNameModifyDataSyncConfigRequestV3:= "source_database_name"
	sourceNodeIdModifyDataSyncConfigRequestV3:= "source_node_id"
	sourceInstanceIdModifyDataSyncConfigRequestV3:= "source_instance_id"
	request.Body = &model.ModifyDataSyncConfigRequestV3{
		TargetDatabaseName: &targetDatabaseNameModifyDataSyncConfigRequestV3,
		TableReplConfig: tableReplConfigbody,
		DbConfigs: &listDbConfigsbody,
		SourceDatabaseName: &sourceDatabaseNameModifyDataSyncConfigRequestV3,
		SourceNodeId: &sourceNodeIdModifyDataSyncConfigRequestV3,
		SourceInstanceId: &sourceInstanceIdModifyDataSyncConfigRequestV3,
	}
	response, err := client.ModifyDataSync(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

Success.

400

Client error.

500

Server error.

错误码

请参见错误码

相关文档