You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 28 Next »

What is Apache Hive

The

Unknown macro: {tm}

Apache Hive

data warehouse software facilitates querying and managing large datasets residing in distributed storage. Built on top of

Unknown macro: {tm}

Apache Hadoop

, it provides

  • tools to enable easy data extract/transform/load (ETL)
  • a mechanism to impose structure on a variety of data formats
  • access to files stored either directly in
    Unknown macro: {tm}

    Apache HDFS

    or in other data storage systems such as
    Unknown macro: {tm}

    Apache HBase

  • query execution via MapReduce

Hive defines a simple SQL-like query language, called QL, that enables users familiar with SQL to query the data. At the same time, this language also allows programmers who are familiar with the MapReduce framework to be able to plug in their custom mappers and reducers to perform more sophisticated analysis that may not be supported by the built-in capabilities of the language. QL can also be extended with custom scalar functions (UDF's), aggregations (UDAF's), and table functions (UDTF's).

Hive does not mandate read or written data be in the "Hive format"---there is no such thing. Hive works equally well on Thrift, control delimited, or your specialized data formats. Please see File Format and SerDe in the Developer Guide for details.

What Hive is NOT

Hadoop is a batch processing system, and Hadoop jobs tend to have high latency and incur substantial overhead in job submission and scheduling. As a result, latency for Hive queries is generally very high (minutes) even when data sets involved are very small (say a few hundred megabytes). As a result, it is difficult to compare Hive with systems such as Oracle, where analyses are conducted on a significantly smaller amount of data, but the analyses proceed much more iteratively with the response times between iterations being less than a few minutes. Hive aims to provide acceptable (but not optimal) latency for interactive data browsing, queries over small data sets, or test queries. Hive also does not provide the kind of data or query cache needed to make repeated queries over the same data set faster.

Hive is not designed for online transaction processing and does not offer real-time queries and row level updates. It is best used for batch jobs over large sets of append-only data (like web logs). What Hive values most are scalability (scale out with more machines added dynamically to the Hadoop cluster), extensibility (with MapReduce framework and UDF/UDAF/UDTF), fault-tolerance, and loose-coupling with its input formats.

Information

For more information, please see the official Hive website.

Apache Hive, Apache Hadoop, Apache HBase, Apache HDFS, Apache, the Apache feather logo, and the Apache Hive project logo are trademarks of The Apache Software Foundation.

  • No labels