본문 바로가기

전체 글58

CDC Architecture CDC 란?CDC = Change Data Capture데이터의 변경사항을 추적하여 저장하거나 해당 변경사항에 응답해야하는 다른 시스템과 서비스에 경고하는 데이터 통합패턴예를 들어 배민에서는 CDC 패턴을 통해 내부 업무 요청건에 변경사항이 생겼을 경우 실시간 알람을 보내는 서비스를 구축했다. (https://techblog.woowahan.com/10000/) 사용 예시 서비스 중단 없이 데이터 이전 (On-premise To Cloud)DataWarehouse로의 실시간 데이터 적재 원본DB와 캐시간의 데이터 일관성 보장 검색 인덱스 실시간 구성  사용 Tool 예시OLTPRDBMS : Mysql, Postgresql, ...NoSQL : MongoDB, Elasticsearch, ...Capture.. 2024. 8. 10.
Star Schema 란? 도입목적한정적인 자원에서 대량의 데이터를 저장하고 효율적으로 읽을 수 있는 DW기법의 필요성예를들어 Fact Table에 모든 데이터가 한글로 저장이 되고 있다면 각 글자 별로 2byte가 필요하게 됨. 따라서 INT와 같은 작은 숫자값을 이용하여 용량 사용의 효율성을 상승시킬 수 있다. (각 INT로 변환된 값들은 Dimension table에서 관리)데이터의 용량이 작아지며 대량의 데이터를 읽어들일 때 성능의 상승효과도 노릴 수 있다.Snowflake 구조와 다르게 적은 join으로 데이터를 분석할 수 있으므로 조회성능이 빠르다. 구조 구성 요소Fact Table 실제 측정된 값들을 저장한 테이블 (주문이력, 주식 가격, 환율, 온도, ...)기본적으로 value들은 코드값으로 저장되거나 숫자인 수치.. 2024. 8. 10.
Lambda Architecture 란 문서 작성시 Batch Architecture를 Lambda Architecture와 혼동하여 용어를 잘못기재했다... (진짜 똥멍청이)Lambda Architecture에 대한 이해도가 낮아서 발생한 일이라 생각하고다음부터는 이런 일을 방지하고자 Lambda Architecture에 대한 정의를 정리해서 머리에 콱 박아놓을 예정이다.(용어를 사용할 땐 꼭 확실히 이해한 뒤에 사용하자!!) Lambda Architecture정의Batch Process와 Stream Process 를 모두 활용하여 대량의 데이터를 처리하도록 설계된 아키텍처대량의 데이터를 실시간으로 분석하기 어려우므로 Batch를 통해 만들어진 데이터와 실시간 데이터를 혼합하여 사용하는 방식. 구성요소① Batch LayerBatch를 통.. 2024. 7. 29.
OLAP vs. OLTP 그동안은 대부분의 데이터를 Data Warehouse 형태로 다루어왔었지만 직접적으로 웹 서비스와 긴밀하게 연관된 데이터의 경우 Data Mart에 직접적으로 CUD를 하는 경우가 많다.보통 Data Scientist들이 분석환경에서 사용하는 데이터는 Warehouse, 서비스에 직접적으로 사용되는 데이터는 Mart 형태로 제공되는데 해당 내용과 이유에 대해 조사한 내용을 기록할 예정이다.  OLAP 이란?정의OLAP = OnLine Analytical Processing 다양한 관점에서 비지니스 데이터를 분석하는 데 사용할 수 있는 "소프트웨어 기술"여러곳에서 수집된 다양한 형태의 데이터를 한 곳에 모아(Data Warehouse), 범주(Category, Data Mart)를 나누고 기업이 전략을 만.. 2024. 7. 28.
Spark 병렬처리 성능 테스트 사례 실제 대용량의 데이터를 가지고 Spark를 테스트해볼 수 있는 환경이 아니라이전에 정리했던 내용을 직접 실습하기에는 어려운 점이 있어서 아쉬웠다.그런데 AWS 환경에서 병렬 성능 테스트를 한 글을 찾아서 해당 글을 토대로 내용을 정리해볼 예정이다.이번 글을 정리하며 만약에 실제로 대용량의 데이터를 이관할 경우 Spark의 병렬성을 어떻게 올릴 수 있는지 전략을 배우는 것이 목표이다. 참조한 글https://medium.com/@kane.jo/aws-glue-jdbc-%EB%B3%91%EB%A0%AC-%EC%B2%98%EB%A6%AC-%EC%84%B1%EB%8A%A5-%ED%85%8C%EC%8A%A4%ED%8A%B8-aa2cbaf9ca9f AWS Glue JDBC 병렬 처리 성능 테스트⇒ 컬럼 중 OL_D.. 2024. 7. 14.
Spark Partition 최적화 spark의 병렬처리는 task 단위로 처리가 된다.각 task는 spark의 parition단위와 일치하므로 partition 설정을 어떻게 하느냐에 따라 병렬처리의 효율성이 달라지게 된다. Spark에서 task란Spark Application이 제출되면 job → Stage → Task 순으로 쪼개지게 되며 실질적으로 처리되는 최소 연산 단위는 Task따라서 각 처리 단위는 1 Task = 1 Core = 1 Partition 이 된다.따라서 각 코어 당 얼마만큼의 메모리가 할당될 수 있느냐에 따라 Partition의 크기를 정할 수 있다.Partition 이란?RDDs나 Dataset을 구성하고 있는 최소 단위 객체각 Partition은 서로 다른 노드에서 분산처리된다.하나의 Task에서 하나의 .. 2024. 6. 23.