데이터 카탈로그 소개데이터 카탈로그 기능 정의데이터 카탈로그데이터 자산 메타 정보 중앙 저장소 / 데이터 자산의 효율적인 관리 프레임워크많은 회사에서 데이터 카탈로그를 데이터 거버넌스 툴로 사용하거나 데이터 카탈로그 위에 커스텀 기능을 구현다양한 관점에서 데이터를 조직적으로 관리비즈니스 / 데이터 용어 vs 태그태그 : 더 비공식적인 데이터 분류 방법비즈니스 용어 : 계층 구조 형태의 분류 체계를 따라감데이터 오너 (Business & Technical)표준화된 문서 템플릿데이터 카탈로그의 중요한 기능(반)자동화 된 메타 데이터 수집메타 데이터만 읽어오는 형태 : 실제 데이터 노출로 인한 보안 이슈 감소데이터 자산의 종류테이블 (데이터베이스)대시보드문서 / 메시지 (Slack, JIRA, Github 등..
DBT (Data Build Tool)DBT SeedsDBT SeedsDimension 테이블을 csv 파일 형태로 DW로 로드하는 방법Dimension 테이블은 크기가 작고 많이 변하지 않음dbt seed를 실행해서 빌드DBT Seeds 실습learn_dbt/seeds 디렉터리에 reference_date.csv 파일 생성dbt seed 실행dbt seedDBT SourcesStaging 테이블을 만들 때 입력 테이블이 자주 바뀌면, models의 .sql 파일을 일일이 바꿔야 함이 번거로움을 Sources를 활용해 입력 테이블에 별칭을 주고 별칭을 staging 테이블에서 사용Sources처음 입력이 되는 ETL 테이블을 대상으로 함별칭 제공최신 레코드 체크 기능 제공테이블 이름에 별명(alias)을..
Airflow 운영과 대안프로덕션 사용을 위한 Airflow 환경 설정airflow.cfg 경로 : /var/lib/airflow/airflow.cfgcore 섹션의 dags_folder가 DAG들이 있는 디렉터리가 되어야 함 (/var/lib/airflow/dags)dag_dir_list_interval : dags_folder를 Airflow가 얼마나 자주 스캔하는지 명시 (초 단위)Airflow Database기본적으로 세팅되는 Sqlite는 테스트로도 사용 불가보통 Postgres or MySQL을 사용DB 변경 시 core 섹션의 sql_alchemy_conn 설정 필요SequentialExecutor 사용 XSqlite일 경우에만 SequentialExecutor가 의미가 있음다른 DB를 사용..
Airflow의 기타 기능Dag Dependencies (1)DAG를 실행하는 방법주기적 실행 : Schedule로 지정DAG Dependencies : 다른 DAG에 의해 TriggerExplicit Trigger (TriggerDagOperator) : DAG A가 DAG B를 Trigger, A가 끝나면 B를 Trigger Reactive Trigger (ExternalTaskSensor) : DAG B가 DAG A의 Task 종료를 기다림, A는 이 사실을 모름ExternalTaskSensor는 사용 조건이 까다로워 실수하기 쉽기 때문에 안 쓰는 방향으로 가는 게 좋음알아두면 좋은 상황에 따라 다른 Task 실행 방식BranchPythonOperater : 조건에 따라 다른 Task로 분기La..