오몰내알 데엔

데이터 엔지니어링/데이터 엔지니어링 기초

데이터 파이프라인 개요 | ETL | 예시

동아리 발표자료로 만들었던 데이터 파이프라인 자료를 공유하려고 한다. 노션에서 티스토리로 옮기는 과정이 많이 복잡해서 일단은 노션 링크로 공유한 후 추후에 정리된다면 정식 블로그 글로 다시 포스팅하려고 한다. https://www.notion.so/e36d8125c3804f06a76abbd648d136a8 데이터 파이프라인 데이터 파이프라인 개요 www.notion.so

데이터 엔지니어링/데이터 엔지니어링 기초

빅데이터를 지탱하는 기술 키워드 정리 - 下

Chapter4. 빅데이터의 축적 데이터 수집 벌크형 데이터 전송: DB나 웹서버에서 SQL, API로 데이터를 추출하여 ETL 서버를 통해 분산 스토리지에 저장한다. 신뢰성이 중요한 경우에는 사용하면 좋다. 스트리밍형 데이터 전송: 다수의 클라이언트에서 지속적으로 작은 데이터가 전송된다. 메시지 큐와 메시지 브로커와 같은 중계 시스템을 이용하여 일정한 간격으로 모아서 분산 스토리지에 저장한다. 시계열 데이터 최적화 이벤트 시간: 실제 해당 데이터가 생성된 시간. 즉, 실제 분석의 대상이 되는 시간 프로세스 시간: 서버가 처리하는 시간 시계열 인덱스: 이벤트 시간에 대해 인덱스를 만들어 데이터 집계를 빠르게 실행할 수 있게 해주는 방법으로 카산드라와 같은 분산 데이터베이스를 이용할 수 있다. 비구조화 데..

데이터 엔지니어링/데이터 엔지니어링 기초

빅쿼리 데이터 로딩 포맷 비교 CSV | JSON | Parquet | AVRO

GCS에서 빅쿼리로 데이터를 이관하는 작업을 하는 도중 현재 사용하고 있는 데이터 포맷에 대한 의문이 생겼다. 현재는 CSV 파일과 JSON 형태를 사용하고 있었는데, 이게 생각보다 용량을 차지하기도 하고, 특히 CSV 파일은 데이터 오염에 취약한 포맷이라는 이야기를 얼핏 들은 적이 있었다. 특히 데이터 용량 같은 경우 가난한 학생으로써 무료 크레딧을 이용하고 있는데, 생각보다 금방 금방 닳아가는 요금을 보면 가슴이 너무 아팠다. 그러던 중 예전에 하둡을 공부하다가 Parquet이라는 데이터 포맷 형태가 기억이 났고, 조금 더 효율적인 방법을 탐색해보기로 하였다. 우선 빅쿼리에 적재할 수 있는 형태가 크게 CSV, JSON, Parquet, AVRO 4가지로 나눠볼 수 있었다. 하나하나씩 특징을 알아보고..

데이터 엔지니어링/데이터 엔지니어링 기초

dbt 꼭 써야할까? dbt 정의/사용이유/필요성

🔎dbt를 써야할까? 데이터 엔지니어링 프로젝트를 진행하면서 dbt라는 도구를 알게 되었다. 대충 파이프라인 효율적으로 관리해주는 도구라는 이야기를 듣고, 이번 프로젝트에 한 번 사용해봐야겠다는 생각을 하였다. 하지만 dbt를 알아볼 수록 과연 정말 이 프로젝트에 필요할까는 생각이 계속 들었다. 데이터 엔지니어링에 필요한 여러 기술들을 경험해보자는 취지에서 프로젝트를 시작하긴 하였지만 오버엔지니어링이 아닐까 하는 생각이 들었다. 도입해야할 기술을 도입하지 않아서 힘든 상황도 좋지 않지만 나는 굳이 하지 않아도 될 일을 하는 오버엔지니어링이 더 두려운 사람이다. 기업이 최신 기술을 도입하는데 많은 비용이 드는 것처럼 나 또한 그것을 공부하는데 많은 시간이 들기 때문에 dbt보다 더 중요한 기술을 공부하는 ..

데이터 엔지니어링/데이터 엔지니어링 기초

빅데이터를 지탱하는 기술 키워드 정리 - 上

Chapter 1. 빅데이터 기초 지식 Hadoop: 대량의 데이터를 처리하기 위한 시스템 NoSQL: 분산 처리에 뛰어난 데이터베이스 => 'NoSQL에 저장하고, Hadoop으로 분산 처리' 데이터 파이프라인 데이터 웨어하우스: 대량의 데이터를 장기 보존하는데 최적화. -> ETL 데이터 마트: DW에서 필요한 데이터만 추출하여 시각화 도구와 조합. 데이터 레이크: DW처럼 가공하여 데이터를 저장하는 것이 아니라 원 데이터를 그대로 저장. Chapter2. 빅데이터의 탐색 크로스 테이블: 행 방향과 열 방향의 데이터가 교차. 트랜잭션 테이블: DB 형태의 테이블. 피벗 테이블: 소량의 데이터를 크로스 집계. MPP 데이터베이스: 빠른 데이터 접근을 위해 병렬 처리하는 데이터베이스. 아마존 Redshi..

데이터 엔지니어링/데이터 엔지니어링 기초

데이터 웨어하우스란?

개요 데이터 엔지니어 프로젝트를 진행하려고 여러 자료를 찾아보았는데, 많은 프로젝트에서 데이터 웨어하우스(이하 DW)를 구성하고 있었다. 그런데 예전부터 말만 들었지 정작 나도 DW를 구성하려고 하니 정확한 정의를 떠올릴 수가 없었다. 그래서 이참에 데이터 웨어하우스에 대한 정의를 명확히 하는 것이 좋겠다 싶어 정리를 해보려 한다. 참고로 해당 내용은 여러 프로젝트를 보다가 든 궁금증과 의문점들을 찾아 정리한 것이므로 순전히 나의 궁금증을 따라가며 정리되었음을 알린다 데이터 웨어하우스란 데이터 웨어하우스를 한 줄로 정의하면 다음과 같다. 데이터 웨어하우스는 조직 전체의 여러 소스로부터 데이터를 저장하고 처리하여 중요한 비즈니스 분석, 보고서 및 대시보드에 사용할 수 있는 의사결정 지원 시스템 해당 정의에..

데이터 엔지니어링/데이터 엔지니어링 기초

빅데이터를 지탱하는 기술 Ch6 - 빅데이터 분석 기반 구축

스키마리스 데이터의 애드 훅 분석 스키마리스 데이터 수집하기 데이터 소스 -> 트위터 스트리밍 API 분산 스토리지 -> 몽고DB 분산 데이터 처리 -> Spark 데이터 정형 -> pandas 대화식 콘솔 -> 주피터 노트북 트위터 스트리밍 API를 이용하여 몽고DB에 데이터를 적재한다. 수집한 데이터는 주피터 노트북을 통해 대화식으로 볼 수 있는 환경을 마련해준다. Spark를 이용한 분산 환경 스파크를 이용하여 분산 처리를 할 수 있다. 먼저 몽고DB로부터 데이터를 읽어들이기 위해 데이터프레임을 작성한다. 이 데이터프레임은 Spark SQL을 사용하여 SQL로 집계할 수 있다. 몽고DB는 열 지향 스토리지처럼 읽기에 최적화되어 있지 않아 고속 집계에는 적합하지 않다. 스파크는 데이터 프레임을 토대로..

데이터 엔지니어링/데이터 엔지니어링 기초

빅데이터를 지탱하는 기술 Ch5 - 빅데이터의 파이프라인

워크플로 관리 워크플로: 정형적인 업무 프로세스와 같이 정해진 업무를 원활하게 진행하기 위한 구조 주요 역할 1) 정기적으로 태스크를 실행 2) 비정상적인 상태를 감지하여 그것에 대한 해결을 돕는 기능 기존에는 업무용으로 개발된 워크플로 도구를 사용하였지만 최근에는 데이터를 위한 워크플로 도구를 따로 사용한다. ex) Airflow, Luigi, Oozie 태스크: 데이터를 잇달아 이동하면서 반복되는 정해진 처리 = 데이터의 이동 주요 기능 태스크를 정기적인 스케줄로 실행하고 결과 통지 태스크 간의 의존관계를 정하고 순서에 따라 실행 태스크의 실행 결과를 보관하고, 오류 발생 시 재실행 선언형과 스크립트형 선언형: 제공된 기능만을 이용하여 최소한의 기술로 태스크를 정의한다. 유지 보수성이 높다. ex) ..

데이터 엔지니어링/데이터 엔지니어링 기초

빅데이터를 지탱하는 기술 Ch4 - 빅데이터의 축적

벌크 형과 스트리밍 형의 데이터 수집 객체 스토리지와 데이터 수집 빅데이터는 대부분 확정성이 높은 분산 스토리지에 저장된다. 데이터베이스가 이용되는 경우도 있지만, 기본적으로 객체 스토리지에 저장한다. HDFS, Amazon S3 등이 유명하다. ※ 스토리지와 데이터베이스의 차이 스토리지는 파일 형태가 되면 무엇이든 담을 수 있다. DB는 서버를 통해 가공된 데이터가 담긴다. 게시판에서 글은 DB에 담기고, 업로드한 파일은 스토리지에 담긴다. 스토리지에 저장된 데이터를 더욱 사용하기 쉽게 만들어주는 것이 데이터베이스라고 할 수 있다. 이러한 객체 스토리지는 작은 데이터에는 오히려 비효율적이다. 네트워크를 거쳐 실행하기 때문에 데이터양에 비해 통신 오버헤드가 너무 크기 때문이다. 데이터 수집 객체 스토리지..

데이터 엔지니어링/데이터 엔지니어링 기초

빅데이터를 지탱하는 기술 Ch3 - 빅데이터 분산 처리

대규모 분산 처리의 프레임워크 구조화 데이터와 비구조화 데이터 SQL로 데이터를 집계하는 경우, 테이블이 명확하게 정의되어 있는 구조화된 데이터를 사용한다. 기존의 데이터 웨어하우스에서 데이터는 항상 구조화된 데이터로 축적하는 것이 일반적이었다. 하지만 텍스트, 이미지, 동영상 등의 구조화되지 않은 비구조화 데이터도 점차 늘어나 SQL로 제대로 집계할 수 없게 된다. 비구조화 데이터를 분산 스토리지 등에 저장하고 그것을 분산 시스템에서 처리하는 것이 데이터 레이크의 개념이다. 이 경우는 데이터를 가공하는 과정에서 스키마를 정의하고, 구조화된 데이터로 변환한다. 스키마리스 데이터: 기본 서식은 있지만, 스키마가 정의 안 됨. CSV, JSON, XML 등의 데이터는 서식은 정해져 있지만, 칼럼 수나 데이터..

오몰내알
'데이터 엔지니어링/데이터 엔지니어링 기초' 카테고리의 글 목록