Apache Hive
Apache Hive란? 하둡에서 작동되는 데이터 웨어하우스, Apache HDFS이나 Apache Hbase의 데이터가 저장 시스템에 저장되어있는 대용량 데이터를 분석한다.
- HiveQL이라는 부르는 SQL를 통해 손쉽게 데이터를 분석할수 있다.
- HDFS 대신 AWS S3를 저장소를 하여 사용을 할수가 있다.
- Metadata를 통해 테이블의 데이터 위치, 데이터 스키마등을 관리한다.
- OLTP보다는 OLAP 적합하다.
Haddop
HDFS - Hadoop DistrubutedFile Systemd
MapReduce - Parrell Programming model for processing large amount data
Architecture
Working Progress
- HiveQL문을 Hadoop Job으로 컴파일이후 Hadoop Cluster에서 작동괴 하는 형태이다.
create table
CREATE TABLE `inventory`(
`inv_item_sk` int,
`inv_warehouse_sk` int,
`inv_quantity_on_hand` int)
PARTITIONED BY (
`dt` int)
STORED AS ORC
LOCATION
's3a://BUCKET_NAME/tpcds_bin_partitioned_orc_200.db/inventory';
create external table
CREATE EXTERNAL TABLE `inventory`(
`inv_item_sk` int,
`inv_warehouse_sk` int,
`inv_quantity_on_hand` int)
PARTITIONED BY (
`dt` int)
STORED AS ORC
LOCATION
's3a://BUCKET_NAME/tpcds_bin_partitioned_orc_200.db/inventory';
json 일경우
CREATE EXTERNAL TABLE `inventory`(
`inv_item_sk` int,
`inv_warehouse_sk` int,
`inv_quantity_on_hand` int)
PARTITIONED BY (
`dt` int)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
STORED AS TEXTFILE
LOCATION
's3a://BUCKET_NAME/tpcds_bin_partitioned_orc_200.db/inventory';
select table
SELECT * FROM inverntory
WHERE dt >= '20190101'
AND dt <= '20190101'
LIMIT 10
LIMIT 10
Table Partitioning
데이터의 크기가 커지면 데이터의 처리속도가 느려지기때문에 데이터를 파티셔닝해서 저장을 한다. 보통 로그인경우에는 날짜로 데이터를 파티션을 나눈다.
- PARTITIONED BY 키워드를 사용한다.
- 예를 들어 dt 기준으로 파티션을 나눈다고 한다면 fie의 path는 /db-path/dt=XXXXXXXX/.... 이런식으로 path가 결정이 된다.
alter table table_name add if not exists add partition(dt=20180101) location 's3://db-path/dt=2018/'
Reference
- https://ko.wikipedia.org/wiki/%EC%95%84%ED%8C%8C%EC%B9%98_%ED%95%98%EC%9D%B4%EB%B8%8C
- https://cwiki.apache.org/confluence/display/Hive/GettingStarted
- https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.6.5/bk_data-access/content/moving_data_from_hdfs_to_hive_external_table_method.html
- https://www.tutorialspoint.com/hive/hive_introduction.htm
'빅데이터 처리' 카테고리의 다른 글
Hive Data Type (0) | 2019.01.30 |
---|---|
Hive with 구문 Example (0) | 2019.01.15 |
Hadoop (0) | 2018.12.20 |