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 37042edde6..03eac33ab5 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 class HMSExternalTable extends ExternalTable implements MTMVRelatedTableI 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 14d8c35ff7..6eac0c2b81 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 @@ -63,6 +63,9 @@ public final class GlobalVariable { public static final String DEFAULT_USING_META_CACHE_FOR_EXTERNAL_CATALOG = "default_using_meta_cache_for_external_catalog"; + 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; @@ -155,6 +158,12 @@ public final class GlobalVariable { "Only for compatibility with MySQL ecosystem, no practical meaning"}) public static boolean super_read_only = true; + @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() { }