You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by jo...@apache.org on 2025/05/08 20:04:15 UTC

(impala) 03/03: IMPALA-14033: Document the integration of Iceberg ScanMetrics in the query profile

This is an automated email from the ASF dual-hosted git repository.

joemcdonnell pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git

commit eb79fbea2b452f09e0e04edc4be274942423d498
Author: Daniel Becker <db...@apache.org>
AuthorDate: Tue May 6 17:09:22 2025 +0200

    IMPALA-14033: Document the integration of Iceberg ScanMetrics in the query profile
    
    This change documents the integration of Iceberg ScanMetrics into
    Impala query profiles.
    
    Change-Id: I49d27ecd0f37ffed58afb8abea04bf592d68f11c
    Reviewed-on: http://gerrit.cloudera.org:8080/22859
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
    Reviewed-by: Zoltan Borok-Nagy <bo...@cloudera.com>
---
 docs/topics/impala_iceberg.xml | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/docs/topics/impala_iceberg.xml b/docs/topics/impala_iceberg.xml
index c22f32259..e49133ddb 100644
--- a/docs/topics/impala_iceberg.xml
+++ b/docs/topics/impala_iceberg.xml
@@ -210,6 +210,36 @@ CREATE TABLE ice_ctas_part_spec PARTITIONED BY SPEC (truncate(3, s)) STORED AS I
     </conbody>
   </concept>
 
+  <concept id="iceberg_scan_metrics">
+    <title>Iceberg Scan Metrics</title>
+    <conbody>
+      <p>
+        When Impala runs queries on Iceberg tables, sometimes it uses Iceberg's
+        'planFiles()' API during planning. As it is an expensive call, Impala avoids it
+        when possible, but it is necessary in the following cases:
+          - if one or more predicates are pushed down to Iceberg
+          - if there is time travel.
+
+        The call to 'planFiles()', on the other hand, also collects metrics, e.g. the
+        total Iceberg planning time, the number of data/delete files and manifests and how
+        many of these can be skipped.
+
+        These metrics are integrated into the query profile under the "Frontend" section.
+        As they are per-table, if multiple tables are scanned for the query, there will be
+        multiple sections in the profile.
+
+        Note that for Iceberg tables where Iceberg's 'planFiles()' API was not used in
+        planning, the metrics are not available and the profile will contain a short note
+        describing this.
+
+        To facilitate pairing the metrics with scans, the metrics header
+        references the plan node responsible for the scan. This will always be
+        the top level node for the scan, so it can be a SCAN node, a JOIN node
+        or a UNION node depending on whether the table has delete files.
+      </p>
+    </conbody>
+  </concept>
+
   <concept id="iceberg_v2">
     <title>Iceberg V2 tables</title>
     <conbody>