This is an automated email from the ASF dual-hosted git repository.
diwu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-flink-connector.git
The following commit(s) were added to refs/heads/master by this push:
new 7dd8512 [fix]fix SchemaChangeManager cannot do schema change (#241)
7dd8512 is described below
commit 7dd8512ea9ab870147277cd95833068172e85c19
Author: wudongliang <[email protected]>
AuthorDate: Thu Nov 23 16:20:49 2023 +0800
[fix]fix SchemaChangeManager cannot do schema change (#241)
---
.../apache/doris/flink/sink/schema/SchemaChangeManager.java | 11 ++++++-----
.../sink/writer/serializer/JsonDebeziumSchemaSerializer.java | 4 ++--
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git
a/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/schema/SchemaChangeManager.java
b/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/schema/SchemaChangeManager.java
index aff30c9..d9c3345 100644
---
a/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/schema/SchemaChangeManager.java
+++
b/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/schema/SchemaChangeManager.java
@@ -49,7 +49,7 @@ public class SchemaChangeManager implements Serializable {
private static final long serialVersionUID = 1L;
private static final Logger LOG =
LoggerFactory.getLogger(SchemaChangeManager.class);
private static final String CHECK_SCHEMA_CHANGE_API =
"http://%s/api/enable_light_schema_change/%s/%s";
- private static final String SCHEMA_CHANGE_API =
"http://%s/api/query/default_cluster/";
+ private static final String SCHEMA_CHANGE_API =
"http://%s/api/query/default_cluster/%s";
private ObjectMapper objectMapper = new ObjectMapper();
private DorisOptions dorisOptions;
@@ -59,7 +59,7 @@ public class SchemaChangeManager implements Serializable {
public boolean createTable(TableSchema table) throws IOException,
IllegalArgumentException {
String createTableDDL = DorisSystem.buildCreateTableDDL(table);
- return execute(createTableDDL);
+ return execute(createTableDDL, table.getDatabase());
}
public boolean addColumn(String database, String table, FieldSchema field)
throws IOException, IllegalArgumentException {
@@ -82,7 +82,7 @@ public class SchemaChangeManager implements Serializable {
public boolean schemaChange(String database, String table, Map<String,
Object> params, String sql) throws IOException, IllegalArgumentException {
if(checkSchemaChange(database, table, params)){
- return execute(sql);
+ return execute(sql, database);
}
return false;
}
@@ -116,13 +116,14 @@ public class SchemaChangeManager implements Serializable {
/**
* execute sql in doris
*/
- public boolean execute(String ddl) throws IOException,
IllegalArgumentException {
+ public boolean execute(String ddl, String database) throws IOException,
IllegalArgumentException {
if(StringUtils.isNullOrWhitespaceOnly(ddl)){
return false;
}
Map<String, String> param = new HashMap<>();
param.put("stmt", ddl);
- String requestUrl = String.format(SCHEMA_CHANGE_API,
RestService.randomEndpoint(dorisOptions.getFenodes(), LOG));
+ String requestUrl = String.format(SCHEMA_CHANGE_API,
+ RestService.randomEndpoint(dorisOptions.getFenodes(), LOG),
database);
HttpPost httpPost = new HttpPost(requestUrl);
httpPost.setHeader(HttpHeaders.AUTHORIZATION, authHeader());
httpPost.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");
diff --git
a/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/writer/serializer/JsonDebeziumSchemaSerializer.java
b/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/writer/serializer/JsonDebeziumSchemaSerializer.java
index ee4cad3..50ae7fc 100644
---
a/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/writer/serializer/JsonDebeziumSchemaSerializer.java
+++
b/flink-doris-connector/src/main/java/org/apache/doris/flink/sink/writer/serializer/JsonDebeziumSchemaSerializer.java
@@ -198,7 +198,7 @@ public class JsonDebeziumSchemaSerializer implements
DorisRecordSerializer<Strin
DDLSchema ddlSchema = ddlSchemas.get(i);
String ddlSql = ddlSqlList.get(i);
boolean doSchemaChange = checkSchemaChange(ddlSchema);
- status = doSchemaChange && schemaChangeManager.execute(ddlSql);
+ status = doSchemaChange && schemaChangeManager.execute(ddlSql,
database);
LOG.info("schema change status:{}, ddl:{}", status, ddlSql);
}
} catch (Exception ex) {
@@ -268,7 +268,7 @@ public class JsonDebeziumSchemaSerializer implements
DorisRecordSerializer<Strin
return false;
}
boolean doSchemaChange = checkSchemaChange(ddl);
- status = doSchemaChange && schemaChangeManager.execute(ddl);
+ status = doSchemaChange && schemaChangeManager.execute(ddl,
database);
LOG.info("schema change status:{}", status);
} catch (Exception ex) {
LOG.warn("schema change error :", ex);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]