앎을 경계하기

[가짜연구소3기] Data Engineer 58

[가짜연구소 3기] 데이터 엔지니어링 - 18 Extract

주제 데이터를 저장소에서 추출하는 방법에 대해 배웠다. 데이터 추출 데이터 처리에 적합하지 않은 영구 저장소의 데이터를 메모리로 추출하는 작업 영구 저장소 : Amazon S3 file, SQL Database 등 텍스트 파일에서 데이터 추출하기 비정형화된 일반적인 텍스트 파일 행 = 레코드, 열 = 속성인 플랫 파일 csv, tsv 파일 JSON 반정형 데이터 4개의 원자 데이터 타입 - 숫자, 문자열, 부울, 널 복합 데이터 유형 - 배열, 객체 Python의 dictionary와 매핑이 잘 된다. JSON은 웹 서비스에서 많이 사용된다. 웹에서의 데이터 추출 일반적으로 웹 브라우저에서 google을 검색하면 브라우저는 google 홈페이지 컨텐츠를 "요청"한다. google 서버는 페이지를 구성하는..

[가짜연구소 3기] 데이터 엔지니어링 - 17 Workflow scheduling frameworks

주제 워크플로우 스케쥴링이 필요한 이유와 관련 툴인 Airflow에 대해 배웠다. 앞선 강의에서 데이터베이스에서 데이터를 가져오는 방법과 병렬 컴퓨팅 프레임워크에 대해서 배웠다. 이 모든 작업을 통합하는 과정이 필요한데, 이번 장에서 배우는 워크플로우 스케쥴링 프레임워크를 사용하여 통합 작업을 조정할 수 있다. 예제 파이프라인 CSV 데이터를 추출하여 Spark에서 일부 레코드를 필터링하는 등의 처리를 하여 분석 데이터베이스에 데이터를 로드하는 예시가 있다. 매일 새로운 CSV 파일이 들어와 이 작업을 매일 수행해야한다고 생각해보자. 어떻게 수행할 수 있을까? 수동 작업하기 cron 스케쥴링 도구 활용하기 의존성 문제 중간에 다른 작업이 추가되어야 한다면? 전체적인 접근이 필요하고 간단한 도구로 처리하기..

[가짜연구소 3기] 데이터 엔지니어링 - 16 Parallel computation frameworks

주제 Hadoop의 MapReduce와 HDFS, Hive, Spark에 대한 기본 개념을 배웠다. 하둡(Hadoop)은 Apache Software Foundation의 오픈 소스 프로젝트 모음이다. 이번 장에서는 하둡의 MapReduce와 HDFS에 대해 배운다. HDFS HDFS는 파일 시스템과 비슷하지만 파일이 여러 다른 컴퓨터에 있다는 것이 차이점이다. Amazon S3와 같은 클라우드 시스템이 HDFS 역할을 대체한다. MapReduce MapReduce는 대중화된 최초의 빅데이터 처리 패러다임 중 하나였다. 작업을 하위 작업으로 나누고 여러 처리 장치간 워크로드와 데이터를 분배한다. MapReduce의 결함 중 하나는 MapReduce 작업을 작성하는 것이 어렵다는 점이다. 이 문제를 해결하..

[가짜연구소 3기] 데이터 엔지니어링 - 15 What is parallel computing

주제 병렬컴퓨팅에 대한 정의와 장단점, 병렬컴퓨팅을 수행하는 방법 예제에 대해 배웠다. 데이터 엔지니어는 대규모 데이터에 대해 처리, 집계하는 등의 다양한 작업을 수행한다. 그런데 빅데이터는 너~무 큰 사이즈라서 하나의 컴퓨팅 파워로 다루기 힘들다. 이번 장에서는 빅데이터를 다룰 수 있는 병렬컴퓨팅에 대해 배운다. 병렬 컴퓨팅 데이터 처리 도구의 기초 병렬 컴퓨팅 사용의 주된 이유의 첫 번째는 메모리다. 두 번째 이유는 처리 능력이다. 병렬 컴퓨팅은 하나의 작업을 작은 작업들로 쪼갠다. 쪼갠 작업들을 여러개의 컴퓨터에서 수행한다. 끝난 작업들을 합치는 작업을 수행한다. 병렬컴퓨팅의 장점 처리 능력 데이터를 분할하여 각 컴퓨터 메모리에 로드 병렬컴퓨팅의 단점 병렬 컴퓨팅을 사용하면서 필요한 통신의 오버헤드..

[가짜연구소 3기] 데이터 엔지니어링 - 14 Databases

주제 데이터베이스가 무엇인지 배우고, 데이터 종류와 SQL과 NoSQL의 차이점을 배웠다. SQL에서의 스키마와 스타 스키마에 대해서 배웠다. 데이터베이스란 무엇인가? 데이터베이스는 데이터 엔지니어에게 필수적인 도구이다. 데이터베이스는 데이터를 보유하고 있다. 데이터베이스는 데이터를 조직화한다. 데이터베이스는(주로 DBMS) 데이터를 빠르게 검색하거나 그렇게 하는 데 도움이 된다. 데이터베이스와 파일 시스템 정형 데이터와 비정형 데이터 정형 데이터 데이터베이스 스키마 정형데이터는 잘 정의된 구조와 관련되어 있는데, 스키마가 이러한 구조를 정의한다. 관계형 데이터베이스의 테이블 형식의 데이터 비정형 데이터 비정형 데이터는 스키마가 없다. 사진이나 동영상 같은 것들이 비정형 데이터이다. 반정형 데이터 JSO..

[가짜연구소 3기] 데이터 엔지니어링 - 13 Cloud providers

주제클라우드 공급자가 등장한 이유와 대표 업체 서비스에 대해 배웠다.클라우드에서의 데이터 프로세싱회사가 자체 데이터 센터를 보유할 때의 문제점전기세, 유지비를 직접 부담해야한다.피크 때와 그렇지 않을 때 처리 능력을 최적화해야한다.클라우드 컴퓨팅이 이 문제의 해결책이 될 수 있다.클라우드 컴퓨팅을 이용할 때 좋은 점데이터 센터 유지 비용 < 클라우드 컴퓨팅 서비스 이용료데이터베이스 안정성재난이 발생했을 때를 대비하여 데이터를 다른 곳에 저장해놓을 필요가 있다.클라우드 서비스 공급자라고 하고 대표 업체는 AWS, Azure, Google Cloud가 있다.대표 클라우드 공급자AWS : 32% 시장 점유 - 2018Azure : 17% 시장 점유 - 2018Google : 10% 시장 점유 - 2018이 회..

[가짜연구소 3기] 데이터 엔지니어링 - 12 Tools of the data engineer

주제 데이터 엔지니어가 사용하는 툴들에 대해 배웠다. 데이터 엔지니어는 여러 소스에서 데이터를 이동시키고, 처리하여 분석 데이터베이스에 로드한다. 엔지니어가 이런 작업을 하기 위해 사용하는 도구들에 대해 배운다. 데이터베이스 데이터 엔지니어는 데이터베이스 시스템의 전문 사용자이다. 대규모의 데이터를 저장하는 공간 애플리케이션을 지원함 온라인 상점에서 디비에 가격, 재고, 수량과 같은 제품 정보에 대한 데이터를 가지고 있다. 분석을 위해 다른 데이터베이스에 특별한 데이터를 저장해놓을 수 있다. 프로세싱 데이터 클렌징 데이터 집계 데이터 합치기 프로세싱 과정은 대규모 데이터를 처리하기 때문에 이 때 병렬 처리를 적용할 수 있다. 이런 처리를 하면서 보통 한 컴퓨터에서 처리하는 것이 아니라 기계 클러스터를 사..

[가짜연구소 3기] 데이터 엔지니어링 - 11 What is data engineering

주제 각 챕터에 대해 배울 내용과 데이터 엔지니어링이 무엇인지에 대해 배움 각 챕터에서 배울 내용 Chapter1 - 데이터 엔지니어링이란 무엇인가? Chapter2 - 데이터 엔지니어가 사용하는 도구들 Chapter3 - ETL Chapter4 - DataCamp의 데이터 엔지니어링에 대한 사례 데이터 엔지니어의 등장 데이터는 흩어져 있다. 분석을 위해 데이터가 최적화 되어있지 않다. 레거시 코드로 인해 데이터 훼손이 발생하였다. 이를 해결하기 위해 데이터 엔지니어가 필요 하다. 데이터 엔지니어 : 당신의 삶을 편하게 만들어줌 여러 소스들로부터 데이터를 가져온다. 데이터베이스 체계를 최적화하여 쿼리 속도가 빨라짐 훼손된 데이터도 제거됨 데이터 과학자들의 삶이 편안해진다. 데이터 엔지니어 정의 엔지니어는..

[가짜연구소 3기] 데이터 엔지니어링 - 10 Cloud computing

주제클라우드 컴퓨팅의 장단점에 대해 배웠다.클라우드 컴퓨팅기업은 자체적으로 보유하고 있는 데이터센터(on-premise)에서 데이터를 처리한다.on-premise이 방법은 회사가 직접 서버를 구매해야한다.보관할 공간이 필요하고 유지 비용이 발생한다.가장 피크인 순간에 대한 충분한 처리 능력이 필요하다.조용한 시간에는 처리 능력이 사용되지 않는다.cloud렌트 서비스가 가능하여 서버 컴 자체의 구매 비용이 필요하지 않다.보관 장소가 필요하지 않다.필요한 자원을 필요할 때까지 사용한다.서버가 사용자가 가까울수록 애플리케이션 사용 시 발생하는 지연 시간이 줄어든다.글로벌 고객 기반에 서비스를 제공하려면 전 세계에 서버가 필요하다.데이터 저장을 위한 클라우드 컴퓨팅데이터베이스 안정성 : 불가피한 사고로 인해 데..

[가짜연구소 3기] 데이터 엔지니어링 - 9 Parallel computing

주제 병렬컴퓨팅이 무엇인지, 장단점에 대해 배웠다. 병렬 컴퓨팅 데이터 처리 도구의 기초를 형성한다. 주로 메모리 문제를 중요하게 보고 또한 처리 능력도 중요하다. 빅데이터 처리 작업이 있으면 그것을 작은 작업 단위로 나누고, 나눈 작업들을 수행할 컴퓨터에 분산시킨다. 예시) 가상의 음악 스트리밍 서비스 회사 spotflix에서 티셔츠 1000장을 접어야한다. 선임 영업 보조원 - 15분에 100장 티셔츠 접음 주니어 영업 보조원은 - 30분에 100장 티셔츠 접음 만약 한 번에 한명의 영업 보조원만 일할 수 있다면 가장 빠른 직원을 선택해야한다. 그러나 4명의 주니어 영업 보조원에게 250장씩 나눠 티셔츠를 접게한다면 1시간 15분이면 끝난다. 병렬컴퓨팅의 장단점 위 티셔츠 접기 예시의 경우 직원이 처..