<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="disable_hbase_num_rows_estimate">

  <title>DISABLE_HBASE_NUM_ROWS_ESTIMATE Query Option</title>

  <titlealts audience="PDF">

    <navtitle>DISABLE_HBASE_NUM_ROWS_ESTIMATE</navtitle>

  </titlealts>

  <prolog>
    <metadata>
      <data name="Category" value="Impala"/>
      <data name="Category" value="Impala Query Options"/>
      <data name="Category" value="Performance"/>
    </metadata>
  </prolog>

  <conbody>

    <p>
      Use the <codeph>DISABLE_HBASE_NUM_ROWS_ESTIMATE</codeph> query option to disable key
      sampling of HBase tables in row count and row size estimation.
    </p>

    <p>
      While generating a plan for an HBase query, the planner samples the underlying HBase
      tables to estimate their row count and row size, and the sampling can negatively impact
      the planning time. When the HBase table stats does not change much in short time, disable
      the sampling by setting the <codeph>DISABLE_HBASE_NUM_ROWS_ESTIMATE</codeph> query option
      to <codeph>TRUE</codeph>. And Impala planner will fall back to using Hive Metastore (HMS)
      table stats instead.
    </p>

    <p>
      When <codeph>DISABLE_HBASE_NUM_ROWS_ESTIMATE</codeph> query option is set to
      <codeph>TRUE</codeph>, you need to update the HMS table stats by running <codeph>COMPUTE
      STATS</codeph>. Alternatively, you can manually set table statistics by running
      <codeph>ALTER TABLE</codeph>. See <xref
        href="impala_perf_stats.xml#perf_stats"/>
      for details.
    </p>

    <p>
      The following values are supported:
      <ul>
        <li>
          <codeph>TRUE</codeph> or <codeph>1</codeph>: Disables the normal key sampling of HBase
          tables and uses HMS table stats for estimation.
        </li>

        <li>
          <codeph>FALSE</codeph> or <codeph>0</codeph>: Enables the normal sampling of HBase
          tables.
        </li>
      </ul>
    </p>

    <p>
      <b>Type:</b> <codeph>BOOLEAN</codeph>
    </p>

    <p>
      <b>Default:</b> <codeph>FALSE</codeph>
    </p>

  </conbody>

</concept>
