본문 바로가기
반응형

분류 전체보기136

[견고한 데이터 엔지니어링] 6장. 데이터 저장 | LIM 데이터 저장은 데이터 엔지니어링 수명 주기의 토대로서 주요 단계인 수집, 변환 및 서빙의 기초가 된다. 데이터 스토리지의 기본 구성 요소 스토리지는 너무 일반적이다 보니 당연한 것으로 받아들이기 쉽다. 자기 디스크 드라이브는 오래전부터 사용되어 왔으며, 저장된 데이터의 기가바이트당 가격이 SSD보다 훨씬 저렴하므로 여전히 대용량 데이터 스토리지 시스템의 근간을 이룬다. [임의 접근 메모리] 우리는 일반적으로 임의 접근 메모리(Random-Access Memory) 와 메모리(Memory)라는 용어를 혼용해 사용한다. 엄밀히 말하자면 자기 드라이브와 SSD는 나중에 임의 접근 검색을 위해 데이터를 저장하는 메모리 역할도 하지만, RAM에는 다음과 같은 몇 가지 특징이 있다. CPU에 연결되고 CPU 주소 .. 2023. 8. 24.
[견고한 데이터엔지니어링] 5장. 원천 시스템에서의 데이터 생성 | LIM 데이터 원천 시스템 데이터 원천 시스템에는 파일과 비정형 데이터, 애플리케이션에서 수집되는 데이터 등이 있다. 애플리케이션 데이터베이스(OLTP 시스템) 일반적으로 애플리케이션 데이터베이스는 개별 데이터 레코드를 높은 속도로 읽고 쓰는 온라인 트랜잭션 처리 시스템이다. OLTP 시스템은 종종 트랜잭션 데이터베이스라고 불리지만, 해당 시스템이 반드시 atomic transaction 을 지원한다는 의미는 아니다. OLTP 데이터베이스는 보통 짧은 지연시간과 높은 동시성을 지원한다. 도큐먼트 기반 데이터베이스 클러스트는 잠재적인 불일치를 감수하고라도 훨씬 더 높은 도큐먼트 커밋률을 관리할 수 있다. OLTP 데이터베이스는 동시성 처리가 뛰어나 애플리케이션 백엔드로 잘 작동하는 반면, 단일 쿼리로 방대한 양의.. 2023. 8. 22.
[견고한 데이터 엔지니어링] 8장. 쿼리 모델링 및 데이터 변환 | LIM 이번 장에서 살펴볼 수 있는 것 쿼리와 그 기반이 되는 중요한 패턴 데이터에 비즈니스 로직을 도입하는데 사용할 수 있는 주요 데이터 모델링 패턴 데이터 모델의 로직과 쿼리 결과를 채택해 더 간단한 다운스트림 사용에 유용하게 만드는 변환 쿼리 쿼리 수명은 다음과 같다. SQL 쿼리 명령어 수행 파싱 및 바이트코드로 전환 쿼리 플래닝과 최적화 쿼리 실행 결과 반환 쿼리 옵티마이저의 역할은 쿼리를 효율적인 순서로 적절한 단계로 분할해 쿼리의 성능을 최적화하고 비용을 최소화한다. 🤔 쿼리 성능을 향상 시키는 방법에는 어떤 것들이 있을까? 1. 데이터를 선조인(prejoin)하는 것 -> 분석 쿼리가 동일한 데이터를 반복해 조인하는 경우, 계산 부하가 높은 작업을 반복하지 않도록 사전에 데이터를 조인하고 선조인.. 2023. 8. 20.
[견고한 데이터 엔지니어링] 3장. 우수한 데이터 아키텍처 설계 | LIM 3.1 데이터 아키텍처란? 아키텍트는 단순히 IT 프로세스를 설계하고 머나먼 유토피아적 미래를 막연하게 바라보는 것이 아니라, 적극적으로 비즈니스 문제를 해결하고 새로운 기회를 창출한다. 아키텍트는 현재 상태의 문제(낮은 데이터 품질, 확장성 제한, 비용손실)를 식별하고, 바람직한 미래 상태(민첩한 데이터 품질 개선, 확장성 있는 클라우드 데이터 솔루션, 비즈니스 프로세스 개선)를 정의하며, 소규모의 구체적인 단계를 실행함으로써 이니셔티브를 실현한다. 기술적 솔루션은 그 자체를 위한 것이 아니라 비즈니스 목표를 지원하기 위해 존재한다. 운영 아키텍처는 무엇을 해야 하는지를 설명하고, 기술 아키텍처는 어떻게 해야 하는지를 자세히 설명한다. 🤔 그렇다면 우수한 아키텍처와 나쁜 데이터 아키텍처를 가르는 기준은.. 2023. 8. 19.
[dbt] dbt 도입 이유와 필요성 | LIM dbt란 무엇인가 data build tool 의 약자로, 추출 -> 변형 -> 적재 중 변형을 더 쉽게 하기 위한 도구이다. Transformation 만을 위한 도구이기 때문에 Extract나 Load 를 위해서는 다른 도구와 같이 사용해야 한다. ETL 보다는 ELT 작업에 좀 더 적합한 툴이다. 위 그림에서 보다시피 Raw Data 에서 Transformation 즉, 변형을 dbt 툴에서 관리하고, 각 데이터 소비자들에게 필요한 Data Mart 를 관리해주는 것이 dbt 의 역할이다. dbt 도입의 필요성 현재 우리회사는 BigQuery를 거의 Data Lake + Data WareHouse 의 개념으로 사용하고 있다. 전사 내 모든 데이터를 BigQuery에 저장하기로 했고, 그 결과 Bi.. 2023. 8. 13.
Kafka, Spark 를 활용한 실시간 데이터 처리 프로젝트 | LIM 예전부터 실시간 데이터 처리를 진행해보고 싶었는데 회사에서는 마땅한 기회가 없어서 이번에 한투 API와 업비트 API 를 이용하여 프로젝트를 진행했다. 이번 프로젝트의 목표는 여러 데이터 플랫폼 툴이 있는데 안 써본 것들이 많아서 이거저거 써보기 위해서 최대한 조합해본 것이다. 베스트라고 생각하지 않는다. 일단 프로젝트 아키텍처는 다음과 같다. Prerequisite 1. GCP 계정 생성 -> 나의 경우 새로 계정을 만들어서 무료 credit 으로 진행 2. 한투API나 업비트 API 신청 https://securities.koreainvestment.com/main/customer/systemdown/install_non_activex_tobe.jsp?P_name=IPinsideLWS https://.. 2023. 7. 30.
반응형