Apache Hive, büyük veri kümelerini sorgulamak, işlemek ve analiz etmek için kullanılan açık kaynaklı bir veri ambarı sistemidir. Apache Hadoop ekosisteminin bir parçası olarak geliştirilen Hive, dağıtık depolama ortamlarındaki verilerin SQL benzeri komutlarla analiz edilmesini kolaylaştırır. Özellikle toplu veri işleme, raporlama ve ETL süreçlerinde kullanılabilir. İlk olarak Facebook tarafından geliştirilen proje, daha sonra Apache Software Foundation bünyesine aktarılmıştır.
Apache Hadoop, büyük veri kümelerinin düşük maliyetli standart sunuculardan oluşan kümeler üzerinde dağıtık biçimde saklanmasını ve işlenmesini sağlayan bir teknoloji ekosistemidir. Hadoop Dağıtılmış Dosya Sistemi, yani HDFS, verileri birden fazla sunucuya dağıtarak saklar. MapReduce ise büyük veri işleme görevlerinin farklı sunucular arasında bölüştürülmesini sağlayan programlama modelidir. Hadoop ekosisteminde bunların yanında kaynak yönetimi ve ortak sistem hizmetleri sağlayan farklı bileşenler de bulunur.
Apache Hive, sorguların yazılması için HiveQL veya HQL olarak adlandırılan SQL benzeri bir sorgu dili kullanır. HiveQL bir programlama dilinden çok, verileri tanımlamak, sorgulamak, filtrelemek, gruplandırmak ve dönüştürmek için kullanılan bildirimsel bir sorgu dilidir. SQL bilgisine sahip kullanıcılar, büyük veri kümeleri üzerinde çalışırken HiveQL’e daha kolay uyum sağlayabilir. Bununla birlikte HiveQL ile standart SQL arasında işlev ve söz dizimi açısından bazı farklılıklar bulunabilir.
Hive, verilerin kendisini zorunlu olarak kendi sistemi içerisinde depolamaz. Veriler HDFS, bulut tabanlı nesne depolama hizmetleri veya uyumlu diğer dağıtık sistemlerde tutulabilir. Hive Metastore bileşeni ise tabloların yapısı, sütunları, veri türleri ve dosya konumları gibi meta verileri saklar. Bu yapı sayesinde kullanıcılar dağıtık dosyaları tablo ve sütunlardan oluşan düzenli bir veri modeli üzerinden sorgulayabilir.
HiveQL ile hazırlanan sorgular, kullanılan altyapıya göre MapReduce, Apache Tez veya Apache Spark gibi işlem motorları tarafından yürütülebilir. Sistem, kullanıcının yazdığı sorguyu dağıtık ortamda çalıştırılabilecek görevlere dönüştürür. Bu özellik, kullanıcıların düşük seviyeli dağıtık işlem kodları yazmadan büyük veri kümelerini analiz etmesine yardımcı olur. Ancak performans, veri düzenine, bölümleme yapısına, dosya formatına ve kullanılan işlem motoruna bağlıdır.
Apache Hive genellikle büyük hacimli verilerin toplu biçimde işlenmesi, raporlanması ve dönüştürülmesi için tercih edilir. Gerçek zamanlı işlem yönetimi, çok kısa yanıt süreleri veya yoğun kayıt güncellemesi gerektiren operasyonel uygulamalar için her zaman uygun değildir. Veri mühendisleri, veri analistleri, raporlama uzmanları ve veri bilimciler Hive üzerinden dağıtık verileri inceleyebilir. Ayrıca Hadoop ve bulut ekosistemindeki farklı depolama, işleme ve analiz araçlarıyla entegre biçimde kullanılabilir.