data engineering (36) 썸네일형 리스트형 더미데이터 생성기 *지난 7월 1일 ~ 8월 15일까지 6주간 진행했던 데이터 엔지니어링 프로젝트에 대한 회고 포스팅이다 실제 데이터 웨어하우스를 구축해 서비스에 대한 데이터를 쌓아가는 회사에서는 사용자 데이터를 통해 서비스를 개선하고 상품을 추천하는 등의 일을 할 것이다. 그만큼 대용량의 데이터를 다루는게 요즘엔 흔한 데이터 엔지니어의 일상이기에 대용량의 데이터를 만져보고 싶다는 갈망이 있었다. 직접 몇천만명의 사용자를 받을 순 없었기에, 그만큼 큰 데이터를 활용하기는 어려웠다. 그렇다면 아예 포기해야 하는걸까? 이왕 프로젝트 하는 김에 더 해보자!하는 고민 끝에 더미데이터를 생성하기로 결정했다 1. 더미데이터 모델링생성할 더미데이터에 대한 모델링을 먼저 진행했다 우리는 '사용자가 우리 서비스를 이용한다면 어떤 발자국.. Apche Spark intro -3 (RDD, DataFrame, Dataset) https://nani-log.tistory.com/175 Apache Spark intro -2 (RDD. Resilient Distributed Dataset)https://nani-log.tistory.com/174 Apache Spark intro -1 (구성 요소와 아키텍처)Spark는 Mapreduce를 대체하는 강력한 분산 데이터 처리 시스템이다. Mapreduce는 map → shuffle → reduce의 중간 결과를 디스크에 써 디스nani-log.tistory.com앞선 포스트에선 RDD의 구조와 기능, 특성에 대해 살펴봤다. 이번 포스트에서는 스파크에서 제공하는 RDD, DataFrame, Dataset이라는 데이터 구조를 살펴보고 그 차이를 분석해보려 한다 RDD는 변경이 불가한,.. Apache Spark intro -2 (RDD. Resilient Distributed Dataset) https://nani-log.tistory.com/174 Apache Spark intro -1 (구성 요소와 아키텍처)Spark는 Mapreduce를 대체하는 강력한 분산 데이터 처리 시스템이다. Mapreduce는 map → shuffle → reduce의 중간 결과를 디스크에 써 디스크 I/O와 네트워크 오버헤드가 매번 발생했는데, Spark는 중간 결과nani-log.tistory.com 앞선 포스터에선 스파크의 구성 요소와 아키텍처를 살펴봤다. 이번 포스트에선 스파크의 핵심 요소인 RDD(Resilient Distributed Dataset)에 대해 살펴볼 것이다 스파크는 사용자가 병렬 분산 환경을 의식하지 않고 처리를 기술할 수 있는 것을 목표로 한다. 이를 위해 하나의 서버에서 처리하기 어.. Apache Spark intro -1 (구성 요소와 아키텍처) 스파크(Spark)는 맵리듀스(Mapreduce)를 대체하는 강력한 분산 데이터 처리 시스템이다. 맵리듀스는 map → shuffle → reduce의 중간 결과를 디스크에 써 디스크 I/O와 네트워크 오버헤드가 매번 발생했는데, 스파크는 중간 결과를 메모리에 써 최소 10배 ~ 최대 100배의 성능 개선을 이뤄냈다. 뿐만 아니라 map, reduce라는 정해진 틀에서 벗어나 다양한 데이터 처리 연산(filter, join, groupBy, ...)을 지원해 유연하고 더 직관적인 처리를 지원한다 스파크 구성 요소 1) 분산 스토리지앞서 스파크는 분산 데이터 처리 시스템이라고 언급했다. 이는 한 대의 서버가 처리할 수 없는 양의 데이터를 처리하기 때문에 여러 대의 서버로 구성된 클러스터 위에서 동작한다는.. Redshift를 활용한 데이터 웨어하우스 구축기 *지난 7월 1일 ~ 8월 15일까지 6주간 진행했던 데이터 엔지니어링 프로젝트에 대한 회고 포스팅이다 데이터를 분석하고 서비스를 개선하려면, 먼저 가상의 서비스를 직접 만들어야했다. 따라서 글 초반엔 이 서비스 자체에 대해 조금 언급하고 넘어갈 예정이며, 내가 직접 설계한 부분을 중점으로 데이터 웨어하우스를 어떻게 구축했는지 이야기할 것이다 1. 아키텍처아키텍처는 다음과 같다. 서비스할 데이터를 API에서 Airflow를 통해 배치 처리로 가져오면 Redshift엔 계속 적재되는 형태로 쌓고, Production DB엔 새로 추출된 데이터만 업데이트했다 2. 주제 구체화 및 서비스를 위한 프로덕션 DB 모델링우리는 서울로 여행오는 외국인 관광객을 위한 항공/관광 웹서비스라는 주제를 정하고, 프로덕션 .. 데이터 카탈로그/거버넌스 회사에서 데이터 웨어하우스를 구축해 사용하면, 당연하게도 적게는 몇백개, 몇천개의 테이블이 생성되는건 순식간이다. 이를 데이터 엔지니어/분석가만이 사용하고 처리하는게 아닌 각 부서에서도 사용할 수 있기 때문에 관리하는게 정말 쉽지 않을 것이다이로 인해 발생되는 문제는 다음과 같다원하는 데이터 분석을 위해 어떤 테이블을 써야하는지 찾기 어렵다거의 비슷한 테이블을 만들어도 모르게 된다데이터를 다루는 사람이 많아져, 개인정보 보호의 위험성이 커진다데이터의 품질을 보장하기 어렵다이를 해결하기 위해 등장한 것이 데이터 카탈로그와 데이터 거버넌스다 데이터 카탈로그데이터 카탈로그는 우리가 쉽게 접하는 카탈로그라는 단어에서 알 수 있듯이 데이터 목록이다. 카탈로그를 통해 회사 내에 어떤 데이터가 있는지 확인할 수 .. Google Bigquery -4 (워크로드 관리) https://nani-log.tistory.com/169 Google bigquery -3 (최적화 기법 - 파티셔닝, 클러스터링, 캐싱, 쿼리 튜닝)https://nani-log.tistory.com/168 Google Bigquery -2 (아키텍처)https://nani-log.tistory.com/167 Google Bigquery -1 (설계적 특성 - OLAP, Columnar, MPP, Serverless)https://nani-log.tistory.com/161 Amazon Redshift -1 (설계적 특성 - OLAP, Columnani-log.tistory.com Bigquery는 쿼리 실행시 병렬로 실행되는 처리를 슬롯이라는 단위로 나타낸다. 슬롯의 사이즈를 결정하고 운영하는 일은.. enterprise data modeling -1 (좋은 데이터 모델링이란 무엇일까) 데이터 모델링... 검색해봐도 star schema, fact table, dimension table 등의 아주 개념적인 이야기만 나오고 각 회사의 사례에 대해선 가뭄에 콩나듯 발견할 수 있다. 좋은 데이터 모델링이란게 무엇일까? 데이터 모델링이란?일단 개념적인 이야기부터 해보자. 데이터 모델링에 대한 정의가 아주 다양하다 조직의 정보 수집과 관리 시스템을 정의하는 시각적 표현 또는 청사진을 생성하는 프로세스다- Amazon Web Services텍스트와 기호를 사용해 데이터가 포함하고 있는 요소를 단순한 다이어그램으로 표현하는 방식이다- TechTarget데이터를 정리하고 표준화해 인간과 기계가 신뢰성있고 유용한 정보를 쉽게 얻을 수 있도록 한다- Joe Reis사실상 다 맞는 말이긴 하지만 1,.. 이전 1 2 3 4 5 다음