Skip to content

Commit 157499b

Browse files
Yulei-Yangdataroaring
authored andcommitted
[Improvement](profile) add catalog info in profile (#38283)
add `Default Catalog` column in load/query profile summary
1 parent 903caa2 commit 157499b

File tree

4 files changed

+40
-2
lines changed

4 files changed

+40
-2
lines changed

fe/fe-core/src/main/java/org/apache/doris/common/profile/SummaryProfile.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ public class SummaryProfile {
4949
public static final String TOTAL_TIME = "Total";
5050
public static final String TASK_STATE = "Task State";
5151
public static final String USER = "User";
52+
public static final String DEFAULT_CATALOG = "Default Catalog";
5253
public static final String DEFAULT_DB = "Default Db";
5354
public static final String SQL_STATEMENT = "Sql Statement";
5455
public static final String IS_CACHED = "Is Cached";
@@ -117,7 +118,7 @@ public class SummaryProfile {
117118
// a column, so that should not
118119
// add many columns here. Add to ExecutionSummary list.
119120
public static final ImmutableList<String> SUMMARY_CAPTIONS = ImmutableList.of(PROFILE_ID, TASK_TYPE,
120-
START_TIME, END_TIME, TOTAL_TIME, TASK_STATE, USER, DEFAULT_DB, SQL_STATEMENT);
121+
START_TIME, END_TIME, TOTAL_TIME, TASK_STATE, USER, DEFAULT_CATALOG, DEFAULT_DB, SQL_STATEMENT);
121122
public static final ImmutableList<String> SUMMARY_KEYS = new ImmutableList.Builder<String>()
122123
.addAll(SUMMARY_CAPTIONS)
123124
.add(PHYSICAL_PLAN)
@@ -618,6 +619,11 @@ public SummaryBuilder user(String val) {
618619
return this;
619620
}
620621

622+
public SummaryBuilder defaultCatalog(String val) {
623+
map.put(DEFAULT_CATALOG, val);
624+
return this;
625+
}
626+
621627
public SummaryBuilder defaultDb(String val) {
622628
map.put(DEFAULT_DB, val);
623629
return this;

fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BrokerLoadJob.java

+2
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import org.apache.doris.common.util.MetaLockUtils;
4343
import org.apache.doris.common.util.ProfileManager.ProfileType;
4444
import org.apache.doris.common.util.TimeUtils;
45+
import org.apache.doris.datasource.InternalCatalog;
4546
import org.apache.doris.datasource.property.constants.S3Properties;
4647
import org.apache.doris.load.BrokerFileGroup;
4748
import org.apache.doris.load.BrokerFileGroupAggInfo.FileGroupAggKey;
@@ -400,6 +401,7 @@ private Map<String, String> getSummaryInfo(boolean isFinished) {
400401
}
401402
builder.taskState(isFinished ? "FINISHED" : "RUNNING");
402403
builder.user(getUserInfo() != null ? getUserInfo().getQualifiedUser() : "N/A");
404+
builder.defaultCatalog(InternalCatalog.INTERNAL_CATALOG_NAME);
403405
builder.defaultDb(getDefaultDb());
404406
builder.sqlStatement(getOriginStmt().originStmt);
405407
return builder.build();

fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java

+1
Original file line numberDiff line numberDiff line change
@@ -401,6 +401,7 @@ private Map<String, String> getSummaryInfo(boolean isFinished) {
401401
}
402402
builder.taskState(taskState);
403403
builder.user(context.getQualifiedUser());
404+
builder.defaultCatalog(context.getCurrentCatalog().getName());
404405
builder.defaultDb(context.getDatabase());
405406
builder.workloadGroup(context.getWorkloadGroupName());
406407
builder.sqlStatement(originStmt.originStmt);

regression-test/suites/query_profile/test_profile.groovy

+30-1
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,34 @@ suite('test_profile') {
5151
def notExistingProfileString = getProfile("-100")
5252
logger.info("notExistingProfileString:{}", notExistingProfileString)
5353
def json2 = new JsonSlurper().parseText(notExistingProfileString)
54-
assertEquals("ID -100 does not exist", json2.data)
54+
assertEquals("Profile -100 not found", json2.data)
55+
56+
sql """
57+
CREATE TABLE if not exists `test_profile` (
58+
`id` INT,
59+
`name` varchar(32)
60+
)ENGINE=OLAP
61+
UNIQUE KEY(`id`)
62+
DISTRIBUTED BY HASH(`id`) BUCKETS 10
63+
PROPERTIES (
64+
"replication_allocation" = "tag.location.default: 1"
65+
);
66+
"""
67+
68+
sql "set enable_profile=true"
69+
def simpleSql = "select count(*) from test_profile"
70+
sql "${simpleSql}"
71+
def isRecorded = false
72+
def wholeString = getProfileList()
73+
List profileData = new JsonSlurper().parseText(wholeString).data.rows
74+
for (final def profileItem in profileData) {
75+
if (profileItem["Sql Statement"].toString() == simpleSql) {
76+
isRecorded = true
77+
assertEquals("internal", profileItem["Default Catalog"].toString())
78+
}
79+
}
80+
assertTrue(isRecorded)
81+
82+
sql """ SET enable_profile = false """
83+
sql """ DROP TABLE IF EXISTS test_profile """
5584
}

0 commit comments

Comments
 (0)