Infraestrutura de data warehouse construída sobre Hadoop para análise de grandes volumes de dados
Apache Hive é uma infraestrutura de data warehouse construída sobre o Apache Hadoop para fornecer resumo, consulta e análise de dados. Hive oferece uma interface SQL-like chamada HiveQL (HQL) que permite aos usuários consultar dados armazenados em vários bancos de dados e sistemas de arquivos que se integram com Hadoop.
Desenvolvido originalmente pelo Facebook em 2007 e posteriormente doado à Apache Software Foundation em 2008. Hive foi criado para permitir que analistas de dados com conhecimento em SQL pudessem trabalhar com grandes volumes de dados no Hadoop sem precisar aprender MapReduce.
Hive é composto por vários componentes principais:
Linguagem SQL-like para consultas em dados estruturados e semi-estruturados
Sistema centralizado de metadados para esquemas e estatísticas
Suporte a funções definidas pelo usuário em Java, Python e outras linguagens
Suporte nativo a Parquet, ORC, Avro, JSON, CSV e outros formatos
Versão Atual | 4.0.0 |
Linguagem Principal | Java |
Engines Suportados | MapReduce, Tez, Spark |
Formatos de Arquivo | Parquet, ORC, Avro, JSON, CSV, Text |
Sistemas de Arquivo | HDFS, S3, Azure Blob, Google Cloud Storage |
Processamento de grandes volumes de dados históricos para relatórios e análises.
Construção de data warehouses tradicionais com esquemas estruturados.
Transformação e limpeza de dados como parte de pipelines ETL.
Geração de relatórios periódicos e dashboards baseados em dados históricos.
CREATE TABLE sales (
id INT,
product_name STRING,
price DECIMAL(10,2),
sale_date DATE,
region STRING
)
PARTITIONED BY (year INT, month INT)
STORED AS PARQUET
LOCATION '/data/sales';
SELECT
region,
SUM(price) as total_sales,
COUNT(*) as num_transactions,
AVG(price) as avg_price
FROM sales
WHERE year = 2024 AND month >= 6
GROUP BY region
ORDER BY total_sales DESC;
INSERT INTO TABLE sales
PARTITION (year=2024, month=12)
SELECT
id,
product_name,
price,
sale_date,
region
FROM staging_sales
WHERE sale_date >= '2024-12-01';
-- Registrar UDF
ADD JAR /path/to/my-udf.jar;
CREATE TEMPORARY FUNCTION my_function AS 'com.example.MyUDF';
-- Usar UDF
SELECT
product_name,
my_function(price, region) as processed_value
FROM sales;
Aspecto | Apache Hive | Trino | ClickHouse | Snowflake |
---|---|---|---|---|
Performance | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
Latência | Alta (minutos) | Baixa (segundos) | Muito Baixa (ms) | Baixa (segundos) |
Escalabilidade | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
Facilidade de Uso | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
Custo | Gratuito | Gratuito | Gratuito/Pago | Alto |