<?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="intro">

  <title id="impala"><ph audience="standalone">Introducing Apache Impala</ph><ph audience="integrated">Apache Impala Overview</ph></title>
  <prolog>
    <metadata>
      <data name="Category" value="Impala"/>
      <data name="Category" value="Getting Started"/>
      <data name="Category" value="Concepts"/>
      <data name="Category" value="Data Analysts"/>
      <data name="Category" value="Developers"/>
    </metadata>
  </prolog>

  <conbody id="intro_body">

      <p>
        Impala provides fast, interactive SQL queries directly on your Apache Hadoop data stored in HDFS,
        HBase, <ph rev="2.2.0">or the Amazon Simple Storage Service (S3)</ph>.
        In addition to using the same unified storage platform,
        Impala also uses the same metadata, SQL syntax (Hive SQL), ODBC driver, and user interface
        (Impala query UI in Hue) as Apache Hive. This
        provides a familiar and unified platform for real-time or batch-oriented queries.
      </p>

      <p>
        Impala is an addition to tools available for querying big data. Impala does not replace the batch
        processing frameworks built on MapReduce such as Hive. Hive and other frameworks built on MapReduce are
        best suited for long running batch jobs, such as those involving batch processing of Extract, Transform,
        and Load (ETL) type jobs.
      </p>

      <note>
         Impala graduated from the Apache Incubator on November 15, 2017.
         In places where the documentation formerly referred to <q>Cloudera Impala</q>,
         now the official name is <q>Apache Impala</q>.
      </note>

  </conbody>

  <concept id="benefits">

    <title>Impala Benefits</title>

    <conbody>

      <p conref="../shared/impala_common.xml#common/impala_benefits"/>

    </conbody>
  </concept>

  <concept id="impala_hadoop">

    <title>How Impala Works with <keyword keyref="hadoop_distro"/></title>
  <prolog>
    <metadata>
      <data name="Category" value="Concepts"/>
    </metadata>
  </prolog>

    <conbody>

      <p audience="hidden" conref="../shared/impala_common.xml#common/impala_overview_diagram"/>

      <p conref="../shared/impala_common.xml#common/component_list"/>

      <p conref="../shared/impala_common.xml#common/query_overview"/>
    </conbody>
  </concept>

  <concept id="features">

    <title>Primary Impala Features</title>

    <conbody>

      <p conref="../shared/impala_common.xml#common/feature_list"/>
    </conbody>
  </concept>
</concept>
