异常信息:
{
"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 为什么这个报错没有呢?
建表语句:
删除时使用的方式为只传入 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);
}