😄데이터 인프라 -1
😭틀린부분은 지적 부탁드려요
- ▶데이터 인프라 (1/2) : 전체적인 맥락 (OLAP와 OLTP, 데이터웨어하우스(DW),ETL,ODS 등등)
- 데이터 인프라 (2/2) : 우리회사의 데이터 인프라 (회사관련내용이라 포스팅하진 않으나 나중에 참고용으로 남겨둡니다)
큰 시스템에서 데이터가 흐르는 조직이 되려면, 다양한 데이터를 분석하려면 데이터 인프라가 잘 구축되어있어야한다.
데이터 인프라를 구축하려면 DB만 있으면 되는게 아니고 다양한 기술과 여러가지 솔루션, 오픈소스, saas등이 엮여서 구축되는거다.
정말 다양하고 복잡한데, 아래 도표에 대해서 이해하는거를 목표로 공부 했다.
- 아래 내용을 이해함에 있어
위 도표(Unified Data Infrastructure (2.0)
를 계속 참고하면서 보길 바랍니당. - 아래건 2020년도버전
- 간단설명 : 소스에서 가져온 데이터를 변환하고 적재, 분석해서 보여준다가 데이터 인프라에서 하는 일임.
1. source : 회사 내에 모든 데이터가 만들어지는곳
2. Ingestion and transformation : 데이터를 가져와서 변환하는곳
3. Stroage : 스토리지
4. Query and Proceesing : 들어온 데이터 분석 및 예측 (머신러닝)
5. Analysis and Output : 분석된 결과를 보여주는 곳
😄데이터 인프라의 목적
- (분석시스템) 비즈니스 리더들의 의사결정을 도와주기
- (운영시스템) 서비스 / 제품을 데이터의 도움을 받아 향상시키기
😄Production System (Source
) VS DW(Stroage~query and processing
) VS DL(Stroage~query and processing
)
Production System
- ERP, CRM(ex salesforce), DB 등등 원천 데이터를 저장하는 시스템으로 시스템마다 모두 시스템에 맞게 정의된 방식으로 저장하고 있어 모두 다 다른 형태임.
- 데이터를 정규화해서 가지고 있음 (다양한 테이블이 존재)
Data Warehouse
- 통합된 보고서 작성을 위해 다양한 소스로 부터
추출(E)
,변환(T)
과정을 거친 데이터가 있는곳- 다차원(Dimensional) 데이터 모델을 사용함(우린 스타스키마 사용 중)
- 통계용 데이터가 필요하기때문에 일반적인 DB 데이터와 저장방식이 다름(많은 계산을 요구하는 Join을 피하기 위함)
- facts(사실 = 값) / deimensions(차원 = 조회조건) / 속성(attribute) / 속성계층(Hierarchies)로 구성됨
- start scheme : 하나의 사실 테이블, 다수의 차원 테이블 / 데이터를 비정규화함
- 다차원(Dimensional) 데이터 모델을 사용함(우린 스타스키마 사용 중)
Data Lake
- AI,ML및 고급 분석을 위해 정형,비정형의 다양한
원천데이터
를 그대로 수집함
😄OLTP(Source
) vs OLAP(Analysis and Output
)
- 둘 다 온라인 데이터 처리 프로세스이지만 차이가 있다.
OLTP (On-Line Transaction Processing)
- 동시에 발생하는 다수의 트랜잭션을 실행하는 데이터 처리 프로세스임 (일반적인 데이터 CRUD가 포함됨)
OLAP (On-Line Analytical Processing )
- 트랜잭션 데이터로부터 더 많은 인사이트를 추출하여 양질의 정보를 기반으로 한 의사결정을 내리는 데 활용할 수 있게 해줌
😄ETL (vs ELT) Ingestion and Transport
ETL
- 데이터 추출,변환,적재 3단계의 축약어로, 다양한
sources
에서 다른 목적지로 이동시키는 과정을 말함 (DB에서 DB로, DB에서 DW로, 파일에서 DB로 등등 모든걸 의미함) - DB등등의
source
에서 DB,DW,DM 등등으로 이동시킴- 추출(
E
xtract) :소스
에서 데이터를 가져오는 ETL 프로세스의 시작 단계 - 변환(
T
ransform) : 추출한 데이터를 가공해서 목적지에 맞는 데이터로 변환하는 단계 - 적재(
L
oad) : 변환된 데이터를 목적지로 이동하고 저장하는 단계
- 추출(
ELT?
- ETL의 큰 문제점 : 추출 - 변환이 자동화 될 수 없고 변환이 회사마다 시스템마다 다른 문제가 있음. 변환 시 오류도 많음.
- ELT는 우선 추출 - 적재를 해서 다 넣고 (자동화 가능) 변환만 따로하는 프로세스
😄ODS(Operational Data Store) vs DW(Stroage~query and processing
)
- DW의 중간 영역으로 사용되는 DB.
- 운영 시스템으로부터 Raw 데이터를 가져와 원본으로 저장함
- 차이점
- 쿼리 복잡도 : ODS가 상대적으로 간단하고 적은양의 데이터
- 데이터 유형 : DW는 비즈니스 의사결정에 사용하기 위한 데이터를 저장하나 ODS는 현재상테의 데이터를 저장하기 때문에 데이터 범위가 제한됨
- 불안정성 : 위와 같은 얘기긴한데 ODS가 더 변동성이 높음
- 스키마 : DW는 고정된 스키마를 가져서 그에 따라 ETL프로세스가 필요함, ODS는 스키마에 따라 데이터를 보유함.
- 출처
- https://www.youtube.com/watch?v=g_c742vW8dQ
- https://a16z.com/emerging-architectures-for-modern-data-infrastructure/
- https://www.databricks.com/kr/glossary/star-schema
- https://itwiki.kr/w/%EC%8A%A4%ED%83%80_%EC%8A%A4%ED%82%A4%EB%A7%88
- https://www.informatica.com/resources/articles/what-is-etl.html
- https://www.oracle.com/kr/database/what-is-oltp/
- https://narup.tistory.com/81
- https://www.techtarget.com/searchoracle/definition/operational-data-store
- https://blog.skby.net/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%9B%A8%EC%96%B4%ED%95%98%EC%9A%B0%EC%8A%A4dw%EC%99%80-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%A0%88%EC%9D%B4%ED%81%ACdl/
다른 재미있는 글들도 한번 보고 가세요
반응형