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 2019/11/20 21:59:55 UTC

[impala] 01/02: IMPALA-9090: Add name of table being scanned in scan node 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

View the commit online:
https://github.com/apache/impala/commit/6b6e15b08ef799bbbb916c553b013dcd88ffb055

commit 6b6e15b08ef799bbbb916c553b013dcd88ffb055
Author: xiaomeng <xi...@cloudera.com>
AuthorDate: Mon Nov 4 14:46:59 2019 -0800

    IMPALA-9090: Add name of table being scanned in scan node profile
    
    Before this change, the only way to figure out the table being scanned
    by a scan node in the profile is to pull the string out of the explain
    plan or execsummary. This is awkward, both for manual and automated
    analysis of the profiles. We should include the table name as a string
    in the SCAN_NODE implementation.
    
    After this change, a new line "Table Name: database.table" will be added
    in first line of scan node profile.
    
    Also fix a bug that frontend pass hbase and kudu table name incorrectly
    to thrift. Before this change, native name of hbase and kudu table are
    passed in and there is no way to get hms table name from TableDescriptor
    in backend.
    
    After this change, for HBaseTableDescriptor and KuduTableDescriptor,
    function name() would return hms table name, function table_name()
    would return hbase or kudu native table name.
    
    Manually tested on mini-cluster with:
    1. hdfs and s3 table with file format text and parquet.
    2. hbase table.
    3. kudu table.
    
    Change-Id: If5da1112bcf38ae55b89eccfd7c7fad860819a99
    Reviewed-on: http://gerrit.cloudera.org:8080/14660
    Reviewed-by: Impala Public Jenkins <im...@cloudera.com>
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
 be/src/exec/hbase-scan-node.cc                             | 1 +
 be/src/exec/hbase-table-writer.cc                          | 4 ++--
 be/src/exec/hdfs-scan-node-base.cc                         | 1 +
 be/src/exec/kudu-scan-node-base.cc                         | 2 ++
 fe/src/main/java/org/apache/impala/catalog/HBaseTable.java | 2 +-
 fe/src/main/java/org/apache/impala/catalog/KuduTable.java  | 2 +-
 6 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/be/src/exec/hbase-scan-node.cc b/be/src/exec/hbase-scan-node.cc
index a794f45..c9380d8 100644
--- a/be/src/exec/hbase-scan-node.cc
+++ b/be/src/exec/hbase-scan-node.cc
@@ -115,6 +115,7 @@ Status HBaseScanNode::Prepare(RuntimeState* state) {
       sr.set_stop_key(key_range.stopKey);
     }
   }
+  runtime_profile_->AddInfoString("Table Name", hbase_table->fully_qualified_name());
   return Status::OK();
 }
 
diff --git a/be/src/exec/hbase-table-writer.cc b/be/src/exec/hbase-table-writer.cc
index 0120eab..9d75b7c 100644
--- a/be/src/exec/hbase-table-writer.cc
+++ b/be/src/exec/hbase-table-writer.cc
@@ -54,8 +54,8 @@ HBaseTableWriter::HBaseTableWriter(HBaseTableDescriptor* table_desc,
     runtime_profile_(profile) { }
 
 Status HBaseTableWriter::Init(RuntimeState* state) {
-  RETURN_IF_ERROR(ExecEnv::GetInstance()->htable_factory()->GetTable(table_desc_->name(),
-      &table_));
+  RETURN_IF_ERROR(ExecEnv::GetInstance()->htable_factory()->GetTable(
+      table_desc_->table_name(), &table_));
   encoding_timer_ = ADD_TIMER(runtime_profile_, "EncodingTimer");
   htable_put_timer_ = ADD_TIMER(runtime_profile_, "HTablePutTimer");
 
diff --git a/be/src/exec/hdfs-scan-node-base.cc b/be/src/exec/hdfs-scan-node-base.cc
index d81d817..e755ff6 100644
--- a/be/src/exec/hdfs-scan-node-base.cc
+++ b/be/src/exec/hdfs-scan-node-base.cc
@@ -270,6 +270,7 @@ Status HdfsScanNodeBase::Prepare(RuntimeState* state) {
   stringstream str;
   UpdateHdfsSplitStats(*scan_range_params_, &per_volume_stats);
   PrintHdfsSplitStats(per_volume_stats, &str);
+  runtime_profile()->AddInfoString("Table Name", hdfs_table_->fully_qualified_name());
   runtime_profile()->AddInfoString(HDFS_SPLIT_STATS_DESC, str.str());
   state->CheckAndAddCodegenDisabledMessage(runtime_profile());
   return Status::OK();
diff --git a/be/src/exec/kudu-scan-node-base.cc b/be/src/exec/kudu-scan-node-base.cc
index 35bd2c1..1bae536 100644
--- a/be/src/exec/kudu-scan-node-base.cc
+++ b/be/src/exec/kudu-scan-node-base.cc
@@ -107,6 +107,8 @@ Status KuduScanNodeBase::Open(RuntimeState* state) {
 
   KUDU_RETURN_IF_ERROR(client_->OpenTable(table_desc->table_name(), &table_),
       "Unable to open Kudu table");
+
+  runtime_profile_->AddInfoString("Table Name", table_desc->fully_qualified_name());
   return Status::OK();
 }
 
diff --git a/fe/src/main/java/org/apache/impala/catalog/HBaseTable.java b/fe/src/main/java/org/apache/impala/catalog/HBaseTable.java
index 9e62459..4da0371 100644
--- a/fe/src/main/java/org/apache/impala/catalog/HBaseTable.java
+++ b/fe/src/main/java/org/apache/impala/catalog/HBaseTable.java
@@ -163,7 +163,7 @@ public class HBaseTable extends Table implements FeHBaseTable {
       Set<Long> referencedPartitions) {
     TTableDescriptor tableDescriptor =
         new TTableDescriptor(tableId, TTableType.HBASE_TABLE, getTColumnDescriptors(),
-            numClusteringCols_, hbaseTableName_, db_.getName());
+            numClusteringCols_, name_, db_.getName());
     tableDescriptor.setHbaseTable(Util.getTHBaseTable(this));
     return tableDescriptor;
   }
diff --git a/fe/src/main/java/org/apache/impala/catalog/KuduTable.java b/fe/src/main/java/org/apache/impala/catalog/KuduTable.java
index af9b680..9c5b3a6 100644
--- a/fe/src/main/java/org/apache/impala/catalog/KuduTable.java
+++ b/fe/src/main/java/org/apache/impala/catalog/KuduTable.java
@@ -463,7 +463,7 @@ public class KuduTable extends Table implements FeKuduTable {
   public TTableDescriptor toThriftDescriptor(int tableId,
       Set<Long> referencedPartitions) {
     TTableDescriptor desc = new TTableDescriptor(tableId, TTableType.KUDU_TABLE,
-        getTColumnDescriptors(), numClusteringCols_, kuduTableName_, db_.getName());
+        getTColumnDescriptors(), numClusteringCols_, name_, db_.getName());
     desc.setKuduTable(getTKuduTable());
     return desc;
   }