Docker Volume의 필요성 Docker Container가 실행되었다가 중단되면 데이터들은 어떻게 될까? -> 유실됨.. 특정 소프트웨어가 Docker Container를 통해 일회성으로 동작하는 것이 아니라 지속적으로 동작해야 한다면 데이터가 영구적으로 보관되어야 함 ex. 데이터베이스가 docker container안에서 동작한다면? 이를 보장하는 기능이 Docker Volumes -> Data Persistence Docker Container내의 가상 파일 시스템과 호스트 시스템의 파일 시스템을 매핑 ex. 호스트 파일 시스템의 /home/hyangsso/logs를 Docker Container의 /var/lib/airflow/logs로 매핑 이 경우 Docker Container가 중단되..
소프트웨어 빌드 우리가 개발한 소프트웨어를 최종적으로 출시하기 위한 형태로 만드는 것 테스트가 빌드의 중요한 일부로 포함 테스트를 다 통과해야 패키지 포맷으로 만듦 테스트가 충분히 있어야 함 참여 개발자들이 많을수록 더 중요 개발이 끝나기 전부터 빌드를 하면 소프트웨어의 안정성 증대 -> Continuous Integration 개발자가 코드를 고칠 때 마다 테스트를 돌림 -> 테스트가 많아야 함 -> 작은 회사에서는 어려움 Continuous Integration (CI) 기본 원칙 코드 Repo는 하나만 유지 (master/main) 코드 변경은 최대한 자주 반영 테스트를 최대한 추가 Test Coverage 빌드를 계속적으로 수행 (자동화) Commit Build vs. Nightly Build 성..
관리해야 하는 DAG의 수가 100개를 넘어간다면? 데이터 품질이나 데이터 리니지 이슈 이외에도 다양한 이슈들이 발생 주로 발생할 수 있는 이슈 라이브러리 충돌 라이브러리/모듈의 충돌 이슈가 발생하기 시작함 DAG에 따라 실행에 필요한 라이브러리/모듈이 달라지기 시작 (ex. python 버전) 이로 인해 DAG 혹은 Task 별로 별도의 독립공간을 만들어주는 것이 필요 Docker to the rescue Dag 혹은 Task 코드를 Docker Image로 만들고 이를 독립된 공간(Docker Container)안에서 실행 Worker의 부족 해결책 scale up (언젠가 한계가 있음) scale out 클라우드 서비스 사용 K8s와 같은 컨테이너 기술 사용 필요한대로 서버 요청 Worker 서버..
ETL vs ELT ETL: 데이터를 데이터 웨어하우스 외부에서 내부로 가져오는 프로세스 보통 엔지니어들이 수행 ELT: 데이터 웨어하우스 내부 데이터를 조작해서 (보통은 좀더 추상화되고 요약된) 새로운 데이터를 만드는 프로세스 보통 데이터 분석가들이 수행 이 경우, 데이터 레이크 위에서 이런 작업들이 벌어지기도 함 이런 프로세스 전용 기술들이 있으며 dbt(Data Build Tool)가 가장 유명: Analytics Engineering Data Lake vs Data Warehouse Data Lake 구조화 데이터 + 비구조화 데이터 보존 기한이 없는 모든 데이터를 원래 형태대로 보존하는 스토리지에 가까움 보통은 데이터 웨어하우스보다 몇 배는 더 큰 스토리지 Data Warehouse 보존 기한이..
Zookeeper Apache에서 개발한 오픈 소스 분산 형상 관리 시스템으로, 분산 어플리케이션을 위한 분산 코디네이터라고 할 수 있다. 한 노드 안에서 프로그램이 수행될 때는 걱정하지 않아도 될 요소인 네트워크를 통해서 메세지가 전송되는 부분이 종종 문제가 된다. 특히 메세지를 전송하고 네트워크가 끊겼을 때 송신자는 수신자가 메세지를 성공적으로 수신 했는지 조차 알 수 없게 된다. 메세지를 받고 처리까지 했는데 응답을 못 준 걸 수도 있고, 메세지 전송 자체가 실패한 걸 수도 있다. 작업이 성공했는지 실패했는지 여부 조차 알 수가 없는 것이다. zookeeper는 이러한 부분 실패(Partial Failure)를 처리하기 위한 분산 처리 도구를 제공한다. zookeeper는 분산 어플리케이션을 만들기..
시각화 툴이란? 대시보드 혹은 BI툴이라고 부르기도 함 KPI, 지표, 중요한 데이터 포인트들을 데이터를 기반으로 계산/분석/표시해주는 툴 결정권자들로 하여금 데이터 기반 의사결정을 가능하게 함 현업 종사자들이 데이터 분석을 쉽게 할 수 있도록 해줌 시각화 툴 종류 Excel, Google Spreadsheet Python: 데이터 특성 분석(EDA)에 더 적합 Looker (구글) LookML이 자체언어로 데이터 모델을 만드는 것으로 시작 한 번 만들어 놓으면 변경하기 쉬움 한 사람이 템플릿만 잘 만들면 다른 사람도 응용할 수 있음 Tableau (세일즈포스) 다양한 제품군 보유, 일부는 사용이 무료 한 번 만들어 놓으면 변경하기 어려움 Power BI (마이크로소프트) Apache Superset (..