9주차 목요일, 44일차 Today I Learned 데이터 파이프라인 (4) : PK 고유성, Backfill ✏️ 학습 내용 1. Open Weathermap DAG 구현하기 (API를 사용하여 DAG 만들기) 위도/경도를 기반으로 그 지역의 기후 정보를 알려주는 서비스에서 API key를 받아와서 사용하려고 한다. API Key를 open_weather_api_key라는 Variable로 저장할 것이다. 서울의 8일간 낮/최소/최대 온도를 읽는 DAG를 만들어 보겠다. Open Weathermap의 one call API를 사용해서 정보를 읽어와서 각자 스키마 밑의 weather_forecast라는 테이블로 저장한다. CREATE TABLE weather_forecast( date date prim..
til
9주차 수요일, 43일차 Today I Learned 데이터 파이프라인 (3) : Airflow DAG 작성 ✏️ 학습 내용 Airflow DAG 작성 방법에 대해 알아본다. 1. Hello World 예제 프로그램 1. Python Operator, Task Decorator 2. DAG 파라미터 Operators에 ➀. Python Operator, ➁ Task Decorator가 있다. ➀ Python Operator : 2개의 태스크로 구성된 데이터 파이프라인 def print_hello() : def print_goodbye() : print_hello = PythonOperator( task_id = 'print_hello', python_callable = print_hello, dag = ..
9주차 화요일, 42일차 Today I Learned 데이터 파이프라인 (2) : Airflow 설치 및 기본 프로그램 실행 ✏️ 학습 내용 1. Airflow 설치 1. 직접 설치 - Docker 설치 후 직접 설치 - AWS EC2 등의 리눅스 서버에 직접 설치 - 리눅스 서버 위에 Docker Container로 Airflow 실행하기 2. 클라우드 사용 - AWS의 MWAA 사용 - Google Cloud Composer 사용 - Microsoft Azure Data Factory 사용 1) EC2 위에 Airflow 설치하기 AWS 계정이 필요하며, t3.small 인스턴스를 사용할 경우 한 달 비용이 $18.72 정도가 된다. 리눅스를 이용하여 설치할 것이다. 우분투 (ubuntu) : 리눅스..

9주차 월요일, 41일차 Today I Learned 데이터 파이프라인 (1) : 데이터 파이프라인 (ETL), Airflow 소개 ✏️ 학습 내용 1. 데이터 파이프라인 (ETL) 데이터 파이프라인 ETL (Extract, Transform, Load) Data Workflow DAG;Directed Acyclic Graph (in Airflow) 데이터 파이프라인이라고 불리는 ETL이란, 데이터를 데이터 웨어하우스 외부에서 내부로 가져오는 프로세스를 뜻한다. Airflow에서는 DAG라고 불리고 있다. 즉, 데이터 파이프라인이란 데이터를 소스로부터 목적지로 복사하는 작업이다. 이 작업은 보통 파이썬 혹은 스칼라와 같은 코딩, 또는 SQL을 통해 이루어지고, 대부분 목적지는 데이터 웨어하우스가 된다. ..
7주차 금요일, 35일차 Today I Learned 데이터 인프라, 고급 SQL, BI 대시보드 (5) : 시각화 대시보드 툴, Superset 실습 ✏️ 학습 내용 1. 시각화 툴 = 대시보드 = BI (Business Intelligence) 툴 KPI, 지표, 중요한 데이터 포인트들을 데이터 기반으로 계산, 분석, 표시해주는 툴을 뜻한다. 회사의 의사 결정권자들이 데이터 기반 결정 혹은 데이터 참고 결정을 하도록 도와준다. 데이터 품질이 중요하다. EDA (Exploratory Data Analysis) : 데이터 특성 분석 Excel, Google Spreadsheet가 가장 많이 쓰이는 시각화 툴이며, Python이 EDA에 적합하다. 이 외에도 구글의 Looker, 세일즈포스의 Tableau..
7주차 목요일, 34일차 Today I Learned 데이터 인프라, 고급 SQL, BI 대시보드 (4) : Snowflake 운영과 관리 ✏️ 학습 내용 1. Snowflake 특징 2014년에 클라우드 기반 데이터 웨어하우스로 시작되어 2020년에 상장했다. 지금은 데이터 클라우드라고 부를 수 있을 정도로 발전하였으며, 데이터 판매를 통한 매출을 가능하게 해주는 Data Sharing/Marketplace를 제공하고, ETL과 다양한 데이터 통합 기능을 제공한다. AWS, GCP, Azure 같은 글로벌 클라우드 위에서 모두 동작할 수 있다. 스토리지와 컴퓨팅 인프라가 별도로 설정되는 가변 비용 모델로, 노드 수 조정이나 distkey 등의 최적화가 불필요하다. SQL 기반으로 빅데이터 저장, 처리,..
7주차 수요일, 33일차 Today I Learned 데이터 인프라, 고급 SQL, BI 대시보드 (3) : Redshift 고급 기능 - 권한과 보안, 백업과 복구, 관련 서비스 (Spectrum, Athena, Redshift ML), 중지와 제거 ✏️ 학습 내용 1. Redshift 권한과 보안 1) 테이블 보안 너무 복잡하고 실수의 가능성이 높기 때문에 사용자별 테이블별 권한 설정은 하지 않고, 역할 (Role) 혹은 그룹 (Group)별로 스키마별 접근 권한을 주는 것이 일반적이다. 그 중에서도 특히 그룹은 계승이 안 되지만 역할은 계승이 되므로 그룹보다 더 편리한 역할을 사용하는 것이 좋다. RBAC (Role Based Access Control)이 새로운 트렌드이다. 여러 역할에 속한 사용..
7주차 화요일, 32일차 Today I Learned 데이터 인프라, 고급 SQL, BI 대시보드 (2) : Redshift 특징, 설치, 초기 설정, COPY ✏️ 학습 내용 1. Redshift 특징 AWS에서 지원하는 데이터 웨어하우스 서비스 Redshift는 2PB 데이터까지 처리 가능하다. 레코드 별로 저장하는 것이 아니라 컬럼별로 저장하기 때문에 컬럼별 압축이 가능하며 컬럼 추가 및 삭제가 빠르다는 장점이 있다. 모든 데이터 웨어하우스의 특징이기도 하지만, 벌크 업데이트를 지원하여 SQL의 INSERT INTO 대신 모든 레코드를 일괄 복사하는 COPY 커맨드를 이용할 수 있다. 레코드가 들어있는 파일을 S3로 복사한 후에 사용할 수 있는데, 이 방법은 아래에서 다시 살펴보도록 하겠다. 원래는..
7주차 월요일, 31일차 Today I Learned 데이터 인프라, 고급 SQL, BI 대시보드 (1) : 데이터 조직, 데이터 웨어하우스, ETL/ELT, 데이터 레이크, 데이터 스택 트렌드 ✏️ 학습 내용 1. 데이터 조직 데이터 조직은 신뢰할 수 있는 데이터를 바탕으로 부가 가치를 생성한다. 즉, 직접적으로 매출을 발생시키는 것이 아니라 더 나은 매출을 만들 수 있도록 간접적인 매출을 발생시키는 팀이다. 데이터 조직이 하는 일은 고품질 데이터를 기반으로 ① 의사 결정자가 결정을 할 수 있도록 도와준다. 예를 들어 데이터 기반 지표를 정의하고, 대시보드와 리포트 생성 등을 수행하여 회사 차원에서의 의사결정을 지원하는 것이다. 이는 회사가 가고자 하는 방향에 맞춰 데이터를 참조하는 데이터를 고려한 결..
6주차 금요일, 30일차 Today I Learned 스프링부트 개발자를 위한 AWS 클라우드 (5) : Container, Serverless, CloudWatch, Devops ✏️ 학습 내용 1. Container 개발, 배포 및 관리 프로세스를 단순화하여 컨테이너 기반 애플리케이션을 효과적으로 운영할 수 있도록 도와준다. 1) Docker 애플리케이션과 그 종속성을 가벼운 이식 가능한 컨테이너 내에 자동화하여 배포할 수 있게 해주는 플랫폼으로, 컨테이너는 애플리케이션과 그 종속성을 캡슐화한 격리된 환경을 제공하여 다양한 환경에서 일관되고 안정적으로 실행될 수 있도록한다. # 컨테이너화, # Dockerfile, # Docker이미지, # Docker컨테이너 2) ECS/ECR ECS는 완전히 관리..