From e39ab9d1ba056d749db9fbbc75b450be56a6c48e Mon Sep 17 00:00:00 2001 From: Jibing Li Date: Thu, 27 Jun 2024 17:07:35 +0800 Subject: [PATCH] Disable fetch stats for iceberg table through Iceberg api by default. --- .../apache/doris/datasource/hive/HMSExternalTable.java | 8 ++++++-- .../main/java/org/apache/doris/qe/GlobalVariable.java | 9 +++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalTable.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalTable.java index 2c879fba503814..1720ed1f0559b5 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalTable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalTable.java @@ -573,10 +573,14 @@ public Optional getColumnStatistic(String colName) { case HIVE: return getHiveColumnStats(colName); case ICEBERG: - return StatisticsUtil.getIcebergColumnStats(colName, + if (GlobalVariable.enableFetchIcebergStats) { + return StatisticsUtil.getIcebergColumnStats(colName, Env.getCurrentEnv().getExtMetaCacheMgr().getIcebergMetadataCache().getIcebergTable( - catalog, dbName, name + catalog, dbName, name )); + } else { + break; + } default: LOG.warn("get column stats for dlaType {} is not supported.", dlaType); } diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/GlobalVariable.java b/fe/fe-core/src/main/java/org/apache/doris/qe/GlobalVariable.java index 855d65d410c231..ec660d05cca480 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/GlobalVariable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/GlobalVariable.java @@ -66,6 +66,9 @@ public final class GlobalVariable { public static final String PARTITION_ANALYZE_BATCH_SIZE = "partition_analyze_batch_size"; public static final String HUGE_PARTITION_LOWER_BOUND_ROWS = "huge_partition_lower_bound_rows"; + public static final String ENABLE_FETCH_ICEBERG_STATS = "enable_fetch_iceberg_stats"; + + @VariableMgr.VarAttr(name = VERSION_COMMENT, flag = VariableMgr.READ_ONLY) public static String versionComment = "Doris version " + Version.DORIS_BUILD_VERSION + "-" + Version.DORIS_BUILD_SHORT_HASH; @@ -170,6 +173,12 @@ public final class GlobalVariable { "This defines the lower size bound for large partitions, which will skip auto partition analyze."}) public static long hugePartitionLowerBoundRows = 100000000L; + @VariableMgr.VarAttr(name = ENABLE_FETCH_ICEBERG_STATS, flag = VariableMgr.GLOBAL, + description = { + "当HMS catalog中的Iceberg表没有统计信息时,是否通过Iceberg Api获取统计信息", + "Enable fetch stats for HMS Iceberg table when it's not analyzed."}) + public static boolean enableFetchIcebergStats = false; + // Don't allow creating instance. private GlobalVariable() { }