This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-4.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-4.1 by this push:
new eb4b2523902 branch-4.1:[feature](maxcompute) supplement missing writer
auth pick from #60649 (#61717)
eb4b2523902 is described below
commit eb4b25239027c8ce6c7bffa446a8d7ad1ceafe13
Author: daidai <[email protected]>
AuthorDate: Thu Mar 26 09:08:17 2026 +0800
branch-4.1:[feature](maxcompute) supplement missing writer auth pick from
#60649 (#61717)
### What problem does this PR solve?
Issue Number: N/A
Related PR: #60649, #60905
Problem Summary:
#60649 added support for MaxCompute `ram_role_arn` and `ecs_ram_role`
authentication on `master`, and #60905 picked it to `branch-4.0`.
`branch-4.1` is based on `branch-4.0`, but because the MaxCompute write
path differs between branches, part of the write-side adaptation was not
picked over.
As a result, on `branch-4.1`, MaxCompute INSERT/write still relied on
`access_key/secret_key` in some code paths, and could not correctly
reuse the catalog `properties` for `ram_role_arn` or `ecs_ram_role`
authentication.
This PR supplements the missing pick for `branch-4.1`.
---
be/src/exec/sink/writer/maxcompute/vmc_table_writer.cpp | 4 +---
.../org/apache/doris/maxcompute/MaxComputeJniScanner.java | 2 +-
.../org/apache/doris/maxcompute/MaxComputeJniWriter.java | 12 ++++--------
3 files changed, 6 insertions(+), 12 deletions(-)
diff --git a/be/src/exec/sink/writer/maxcompute/vmc_table_writer.cpp
b/be/src/exec/sink/writer/maxcompute/vmc_table_writer.cpp
index 689d212783a..323bbfbe231 100644
--- a/be/src/exec/sink/writer/maxcompute/vmc_table_writer.cpp
+++ b/be/src/exec/sink/writer/maxcompute/vmc_table_writer.cpp
@@ -100,9 +100,7 @@ Status VMCTableWriter::open(RuntimeState* state,
RuntimeProfile* profile) {
}
std::map<std::string, std::string> VMCTableWriter::_build_base_writer_params()
{
- std::map<std::string, std::string> params;
- if (_mc_sink.__isset.access_key) params["access_key"] =
_mc_sink.access_key;
- if (_mc_sink.__isset.secret_key) params["secret_key"] =
_mc_sink.secret_key;
+ auto params = _mc_sink.properties;
if (_mc_sink.__isset.endpoint) params["endpoint"] = _mc_sink.endpoint;
if (_mc_sink.__isset.project) params["project"] = _mc_sink.project;
if (_mc_sink.__isset.table_name) params["table"] = _mc_sink.table_name;
diff --git
a/fe/be-java-extensions/max-compute-connector/src/main/java/org/apache/doris/maxcompute/MaxComputeJniScanner.java
b/fe/be-java-extensions/max-compute-connector/src/main/java/org/apache/doris/maxcompute/MaxComputeJniScanner.java
index 0b196fcb9cd..ce1b3941dca 100644
---
a/fe/be-java-extensions/max-compute-connector/src/main/java/org/apache/doris/maxcompute/MaxComputeJniScanner.java
+++
b/fe/be-java-extensions/max-compute-connector/src/main/java/org/apache/doris/maxcompute/MaxComputeJniScanner.java
@@ -86,7 +86,7 @@ public class MaxComputeJniScanner extends JniScanner {
private TableBatchReadSession scan;
public String sessionId;
- private String project; //final ???
+ private String project;
private String table;
private SplitReader<VectorSchemaRoot> currentSplitReader;
diff --git
a/fe/be-java-extensions/max-compute-connector/src/main/java/org/apache/doris/maxcompute/MaxComputeJniWriter.java
b/fe/be-java-extensions/max-compute-connector/src/main/java/org/apache/doris/maxcompute/MaxComputeJniWriter.java
index daba96d3948..86b849cd627 100644
---
a/fe/be-java-extensions/max-compute-connector/src/main/java/org/apache/doris/maxcompute/MaxComputeJniWriter.java
+++
b/fe/be-java-extensions/max-compute-connector/src/main/java/org/apache/doris/maxcompute/MaxComputeJniWriter.java
@@ -19,11 +19,10 @@ package org.apache.doris.maxcompute;
import org.apache.doris.common.jni.JniWriter;
import org.apache.doris.common.jni.vec.VectorTable;
+import org.apache.doris.common.maxcompute.MCUtils;
import com.aliyun.odps.Odps;
import com.aliyun.odps.OdpsType;
-import com.aliyun.odps.account.Account;
-import com.aliyun.odps.account.AliyunAccount;
import com.aliyun.odps.table.configuration.ArrowOptions;
import com.aliyun.odps.table.configuration.ArrowOptions.TimestampUnit;
import com.aliyun.odps.table.configuration.RestOptions;
@@ -94,8 +93,7 @@ public class MaxComputeJniWriter extends JniWriter {
private static final String READ_TIMEOUT = "read_timeout";
private static final String RETRY_COUNT = "retry_count";
- private final String accessKey;
- private final String secretKey;
+ private final Map<String, String> params;
private final String endpoint;
private final String project;
private final String tableName;
@@ -121,8 +119,7 @@ public class MaxComputeJniWriter extends JniWriter {
public MaxComputeJniWriter(int batchSize, Map<String, String> params) {
super(batchSize, params);
- this.accessKey = Objects.requireNonNull(params.get(ACCESS_KEY),
"required property '" + ACCESS_KEY + "'.");
- this.secretKey = Objects.requireNonNull(params.get(SECRET_KEY),
"required property '" + SECRET_KEY + "'.");
+ this.params = params;
this.endpoint = Objects.requireNonNull(params.get(ENDPOINT), "required
property '" + ENDPOINT + "'.");
this.project = Objects.requireNonNull(params.get(PROJECT), "required
property '" + PROJECT + "'.");
this.tableName = Objects.requireNonNull(params.get(TABLE), "required
property '" + TABLE + "'.");
@@ -139,8 +136,7 @@ public class MaxComputeJniWriter extends JniWriter {
@Override
public void open() throws IOException {
try {
- Account account = new AliyunAccount(accessKey, secretKey);
- Odps odps = new Odps(account);
+ Odps odps = MCUtils.createMcClient(params);
odps.setDefaultProject(project);
odps.setEndpoint(endpoint);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]