selectdb 执行删除操作时抛出抛出异常,应如何排查异常原因

Viewed 74

异常信息:
{
"TxnId": 5973465,
"Label": "label_table_TRAKGDB_DPL_un_sett_fee_1720782298172_b97f015468b947a288956f189f3285f0",
"Comment": "",
"TwoPhaseCommit": "false",
"Status": "Fail",
"Message": "[DATA_QUALITY_ERROR]too many filtered rows",
"NumberTotalRows": 6810,
"NumberLoadedRows": 6683,
"NumberFilteredRows": 127,
"NumberUnselectedRows": 0,
"LoadBytes": 447300,
"LoadTimeMs": 170,
"BeginTxnTimeMs": 0,
"StreamLoadPutTimeMs": 0,
"ReadDataTimeMs": 0,
"WriteDataTimeMs": 168,
"CommitAndPublishTimeMs": 0
}

正常情况下,返回的异常信息中应该有一个详情日志的 url 为什么这个报错没有呢?

建表语句:
image.png

删除时使用的方式为只传入 key 列的值,代码如下:

public DmlResult streamLoadDelete(LoadMessage loadMessage, String label, String schema)
throws IOException, URISyntaxException {
List lines = realDelLines(loadMessage);
// List realSinkColumns = realColumns(loadMessage);
final String loadUrl =
String.format(
STREAM_LOAD_URL,
dorisClient.getStreamLoadHost(),
schema,
loadMessage.getSinkEntity().getEntity().getName());

HttpPut put = new HttpPut(loadUrl);
StringEntity entity = new StringEntity(ObjectConvert.getJsonString(lines), "UTF-8");
put.setHeader(HttpHeaders.EXPECT, HTTP_EXPECT);
put.setHeader(HttpHeaders.AUTHORIZATION, basicAuthHeader(getSqlNodeConfig()));
put.setHeader(LABEL, label);
put.setHeader("strip_outer_array", "true");
put.setHeader("format", "JSON");
put.setHeader("strict_mode", "true");
put.setHeader("partial_columns", "true");
put.setHeader("columns", String.join(",", loadMessage.getPkNames(true)));
put.setHeader("merge_type", "DELETE");
put.setEntity(entity);

String result = sendHttpRequest(put, 1);
LOGGER.info(
    "Stream load result entity = {}, result = {}",
    loadMessage.getSinkEntityInfo().getFullName(),
    result);
return new DmlResult(false);

}

2 Answers

具体是2.0的哪个版本呢?这个问题比较奇怪,这个是稳定复现的吗?您看看设置下max_filter_ratio(最大容忍率)后看看能否输出errUrl呢?


帖子由于长时间没回复,先close,有问题可以先按照楼下方式试试

curl -X PUT --location-trusted -u root:*** -H "strip_outer_array:true" -H "format:JSON" -H "strict_mode:true" -H "merge_type:DELETE" -T data.json http://10****:8888/api/test_db/agent_agreement/_stream_load

改成这种模式试试