데브코스 데이터 엔지니어링 WEEK10 WIL(3)
·
Data Engineer/데브코스
Airflow.cfg더보기1) DAGs 폴더는 어디에 지정되는가?기본적으로 Airflow가 설치된 디렉토리 밑의 dags라는 이름의 subfolder로 구현된다. 위츠는 고정된것은 아니고 airflow.cfg에 있는 dags_folder라는 키에 지정할 수 있다.2) DAGs 폴더에 새로운 Dag를 추가하면 언제 실제로 Airflow 시스템에서 이를 알게 되고 스캔 주기는 어느 키에서 결정되는가?기본값은 300초=5분, dag_dir_list_interval이라는 키에 의해서 3) 이 파일에서 Airflow를 API 형태로 외부에서 조작하고 싶다면 어느 섹션을 변경?Airflow는 꼭 웹 UI, Command  Line에서만 제어할 수 있는 것은 아니다. cfg의 특정 section의 configurat..
데브코스 데이터 엔지니어링 WEEK11 WIL(1)
·
Data Engineer/데브코스
Docker란? 왜 필요한가?Airflow운영상의 어려움 (다수의 서버로 운영되는 소프트웨어)만약 DAG의 수가 100개를 넘어간다면? 1) 라이브러리 충돌더보기파이썬 라이브러리 충돌?파이썬 여러 버전 설치되었을 때 import 에러가 날 수 있다. 라이브러리는 누군가 미리 만들어 놓은 파이썬 코드내부 라이브러리는 파이썬 설치 시 같이 설치되는 라이브러리외부 라이브러리는 따로 직접 설치해서 사용해야하는 라이브러리 ex)selenium, requests, pandas 이런 외부 라이브러리는 pip라는 파이썬 라이브러리를 관리해주는 프로그램을 이용한다. 만약 python 3.10.6에서 pip install selenium 하면 잘 설치된다. 하지만 python 3.11.3에서 from selenium i..
데브코스 데이터 엔지니어링 WEEK10 WIL(2)
·
Data Engineer/데브코스
Python ETL 개선하기def transform(text): lines = text.strip().split("\n")[1:] # 첫 번째 라인을 제외하고 처리 records = [] for l in lines: (name, gender) = l.split(",") # l = "Keeyong,M" -> [ 'keeyong', 'M' ] records.append([name, gender]) return records def load(records): """ records = [ [ "Keeyong", "M" ], [ "Claire", "F" ], ... ] """ schema = "keeyong" ..
데브코스 데이터 엔지니어링 WEEK10 WIL(1)
·
Data Engineer/데브코스
데이터 파이프라인(ETL, ELT)테이터파이프라인 관리 프레임워크인 AirflowETL: 외부 데이터 소스를 가져와 데이터 웨어하우스에 저장하는 과정 Airflow: 이러한 ETL을 주기적으로 실행해주거나 ETL들간의 실행순서를 정해주는 FrameworkDatasource (데이터 소스): 프로덕션 DB, 이메일, 카드 거래 데이터처럼 실제 서비스에서 수집한 원본 데이터ELT (추출, 적재, 변환): 웨어하우스에 저장된 데이터를 바탕으로 분석/모델링을 위해 정제된 새로운 데이터를 생성이를 통해 대시보드를 만들거나 데이터 분석에 활용 (CTAS or DBT라는 툴을 사용  ETL,ELT=DataPipeline=Data Workflow=DAG(Airflow에서) DAG (Directed Acyclic Gra..
데브코스 데이터 엔지니어링 WEEK8 WIL(2)
·
Data Engineer/데브코스
다양한 시각화 툴 (대시보드)중요한 지표인 KPI를 설정하고 지표를 데이터 기반으로 분석하고 시각화하여누구나 쉽게 확인할 수 있도록 돕는 대시보드와 BI 툴백엔드의 데이터 웨어하우스(Data Warehouse)와 연결되어, 거기에 저장된 데이터로 시각화한다.  ETL 프로세스를 통해 전송된 ROW 데이터를 그대로 사용하는 것이 아니라, 데이터 분석가들이 정제하여 이해하기 쉬운 ELT summary table을 기반으로 대시보드에 사용. 데이터 품질을 관리하여 의미 있는 지표를 만드는 것이 매우 중요하다.  대시보드 옵션 Excel, Google Spreadsheet: 가장 기본적인 시각화 도구Python : 조금 더 프로그래밍적으로 접근 EDA대시보드 툴: Looker, Tableau, Power BI,..
데브코스 데이터 엔지니어링 WEEK8 WIL(1)
·
Data Engineer/데브코스
데이터 팀데이터 조직은 직접적인 매출 기여가 아닌 부가 가치를 창출 1) 의사 결정에 데이터를 활용( Decision Science )데이터의 역할: 과거 기록을 기반으로 최적화 및 혁신을 위한 데이터 기반 의사 결정을 필요로 함.KPI 정의 및 시각화:- 회사의 KPI를 데이터 기반으로 정의.- 대시보드를 통해 의사결정권자가 쉽게 판단할 수 있도록 지원. 2) 고품질 데이터 기반 서비스 개선 (Product Science)목표: 사용자 서비스 경험 개선 및 프로세스 최적화를 통해 비용 절감.ex) Customer Support팀의 채팅을 챗봇으로 대체하던가 Agent들이 정보를 더 잘 찾을 수 있도록 QA interface를 제공 등->앞의 Decision Science가 tracking하던 KPI를 ..
데브코스 데이터 엔지니어링 WEEK6 WIL(2)
·
Data Engineer/데브코스
예제 테이블 소개더보기쿠키 vs 세션 vs 토큰 (JWT)  -> Auth 구현하기 위해..  쿠키= 그냥 옮기는 매개체토큰= 서버에게 보여줘야하며, 서버가 기억하는 무지 긴 string (신분증처럼)JWT= 정보를 갖고있는 토큰. DB없이 검증할 수 있음  서버는 response에 쿠키를 넣어 보낼 수 있다. 내 브라우저 해당 쿠키를 저장하고 해당 웹사이터 갈때마다 보낸다.쿠키는 도메인에 따라 제한되고  서버가 정한 기간이 지나면 사라진다. 쿠키에는 인증 뿐 아니라 언어설정 바꾼거 기억할 수 도 있음 HTTP 프로토콜은 stateless하다. 서버로 가는 모든 요청이 이전 request와 독립적으로 다뤄진다. 요청이 끝나면 서버는 누군지 잊어버리기 때문에 요청할 때마다 우리가 누군지 알려줘야한다.이를 ..
데브코스 데이터 엔지니어링 WEEK6 WIL(1)
·
Data Engineer/데브코스
관계형 데이터베이스관계형 데이터베이스란? 구조화된 데이터를 저장하는데 사용되는 storage비구조화된 데이터는 저장하기 힘듬 데이터 분석 위한 데이터들은 대부분 구조화가 된 데이터들이다. 관계형 데이터베이스에 저장된 데이터를 가지고 질의 하거나 조작하는데 사용되는 언어가 sql이다. 따라서 데이터가 구조화되었다고 가정만 된다면 데이터 분석과 관련해서 가장좋은 기술 옵션이 된다. datawarehouse나 spark모두 sql을 지원 관게형 데이터베이스는 데이터를 테이블로 나누어서 저장한다.- 각 테이블에는 이름이 있다.- 열에는 이름과 타입이 존재한다.- table이 column들로 형태가 정의가 되면 record들이 행으로 존재한다. table의 schema: table을 구성하는 column들의 이름..