@@ -71,15 +71,27 @@ def create_and_dry_run_partition(cls, user: str, create_data: Dict):
71
71
@param user: 操作者
72
72
@param create_data: 分区策略数据
73
73
"""
74
-
74
+ # 针对直接调用接口做规则检查
75
+ # 不符合规则的抛出异常,配置不会写入分区配置表
76
+ cls .verify_partition_field (
77
+ bk_biz_id = create_data ["bk_biz_id" ],
78
+ cluster_id = create_data ["cluster_id" ],
79
+ dblikes = create_data ["dblikes" ],
80
+ tblikes = create_data ["tblikes" ],
81
+ partition_column = create_data ["partition_column" ],
82
+ partition_column_type = create_data ["partition_column_type" ],
83
+ )
75
84
# 创建分区策略
76
85
try :
77
86
partition = DBPartitionApi .create_conf (params = create_data )
78
87
except (ApiRequestError , ApiResultError ) as e :
79
88
raise DBPartitionCreateException (_ ("分区管理创建失败,创建参数:{}, 错误信息: {}" ).format (create_data , e ))
80
89
81
90
# 如果不需要分区执行的数据,则默认直接返回分区创建数据
82
- need_dry_run = create_data .pop ("need_dry_run" , True )
91
+ # need_dry_run = create_data.pop("need_dry_run", True)
92
+ create_data .pop ("need_dry_run" , True )
93
+ # 默认创建分区配置就立即初始化 此处用编码为True
94
+ need_dry_run = True
83
95
if not need_dry_run :
84
96
return partition
85
97
@@ -98,6 +110,8 @@ def create_and_dry_run_partition(cls, user: str, create_data: Dict):
98
110
for res in results :
99
111
config__id_result .update (res )
100
112
113
+ # 创建分区配置立即初始化,硬编码为True
114
+ create_data ["auto_commit" ] = True
101
115
# 如果不需要创建分区单据,则返回分区执行数据
102
116
if not create_data ["auto_commit" ]:
103
117
return config__id_result
0 commit comments