방금 전 포스팅에서 HDFS에 데이터를 저장했습니다. 이번에는 HDFS에 저장되었으니, 이 데이터를 상호작용하는 방법을 찾아보겠습니다.하이브
를 사용합니다. Hive로 데이터, 파일 위에 테이블을 만들겁니다. 그렇게 하면, SQL을 통해 데이터를 쿼리할 수 있습니다.
이번엔 HiveOperator
를 사용합니다.
단순히 EXTERNAL TABLE을 만드는 작업을 해보겠습니다.
from airflow.providers.apache.hive.operators.hiv import HiveOperator
creating_forex_rates_table = HiveOperator(
task_id="creating_forex_rates_table",
hive_cli_conn_id="hive_conn",
hql="""
CREATE EXTERNAL TABLE IF NOT EXISTS forex_rates(
base STRING,
last_update DATE,
eur DOUBLE,
usd DOUBLE,
nzd DOUBLE,
gbp DOUBLE,
jpy DOUBLE,
cad DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
""",
)
Connection을 설정합니다.
현재 hue의 데이터베이스에는 어떤 테이블도 없습니다.
에어플로우에서 태스크를 테스트해봅니다.
airflow tasks test forex_data_pipeline creating_forex_rates_table 2022-01-01
하이브에 테이블이 만들어졌는지 hue를 통해 확인합니다.
쿼리도 해봅니다. 지금은 데이터가 없습니다.
다음 포스팅에선 해당 테이블에 데이터를 추가해보겠습니다.