데이터 인프라 이해하기 (2) - Sources

Coding_Holic·2022년 9월 9일
0

오늘은 data infra 중 Source 부터 살펴보자

Sources

  • 회사에서 발생하는 데이터 저장
  • 데이터가 생성되는 곳

OLTP Databases via CDC

  • OLTP
    • Online Transaction Processing
    • 온라인 트랜잭션 처리
    • 네트워크 상의 온라인 사용자들의 Database 에 대한 일괄 트랜잭션 처리를 의미한다
    • 흔히 말하는 트랜잭션 처리 = OLTP
    • 빨리 처리해야하니까 정규화된 데이터
    • 많은 table들
  • OLAP
    • Database 자체적으로 운용되는 시스템이라기 보다는, 데이터 웨어하우스 등의 시스템과 연관되어 Data를 분석하고 의미있는 정보로 치환하거나, 복잡한 모델링을 가능하게끔 하는 분석 방법
    • 많은 양의 데이터를 느린 쿼리로 정규화되지 않은 데이터를 다루고, 적은 table 사용

Transaction, ACID
transaction:
쪼갤 수 없는 업무 처리의 최소 단위를 말함 = 거래내역,
데이터베이스 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻함
데이터베이스 상태 변화-> SQL를 이용하여 데이터베이스를 접근
ACID:
Transaction이 안전하게 수행된다는 것을 보장하기 위한 성질
Atomicity-'원자성' Transaction과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력, 중간 단계까지 실행되다가 실패하는 일이 없도록 하는 것, 즉 모든 작업이 성공하거나 실패한다
Consistency-'일관성' Transaction이 실행을 성공적으로 완료하면 언제나 일관성있는 Valid한 DB 상태를 유지하는 것을 의미, valid 한 상태는 트랜잭션의 결과로 업데이트된 데이터가 각종 Rule을 위반하지 않는 것, 무결성 제약에 위반하는 Transaction은 중단됨.
Isolation-'고립성' Transaction을 수행 시 다른 Transaction의 연산 작업이 끼어들지 못하도록 보장하는 것, Transaction 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼 수 없음을 의미.
Durability-'지속성' 성공적으로 수행된 Transaction은 영원히 반영되어야 함을 의미, System 문제나 DB 일관성 체크 등을 하더라도 유지되어야 하고, 모든 Transaction은 로그로 남긴 채로 Rollback(취소) 가능, transation은 로그에 모든 것이 저장된 후에만 Commit(성공) 상태로 간주

OLAP => 적재된 데이터에 대한 분석 또는 SELECT Query를 통한 데이터 스캔 Operation
OLTP => Transaction의 과정에서 INSERT/UPDATE를 중점적으로 수행하는 것

  • CDC
    • change data capture
    • OLTP가 일어날 때 데이터가 보통 변화하게 되는데, 변화가 일어난 데이터만을 외부 DB에 저장
    • OLTP는 transaction 기록에 집중, 다른데다 쓰지 못함

Applications/ERP

ERP(전사적 자원 관리)

  • 회사에서 중요한 데이터들이 만들어짐
  • 조직이 회계, 조달, 프로젝트 관리, 리스크 관리와 규정 준수, 공급망 운영 등 일상적인 비즈니스 활동을 관리하는 데 사용하는 소프트웨어 유형
  • Oracle, Salesforce, Netsuite

이전까지는 비즈니스 관점(회사 데이터), 지금부터는 사용자 데이터

Event Collectors

ex) google analytics

  • segment
    • segment api를 통해서 다양한 서버, 분석 제품군들로 보내줌, event 모아서 보내줌
    • 하나의 코드로 저장해놨다가 (raw data)
    • 새로운 도구에 별도 코드없이 연결가능
    • active user에 따라 돈 다름
  • Snowplow
    • 오픈소스
    • 내가 원하는 클라우드 서비스에다가 snowplow를 올림
  • RudderStackS
    • segment에서 replay 기능 추가
    • replay?
      * 예전데이터를 backfill해서 볼 수 있음

Logs

  • 서버 로그,웹서버 access log

3rd Party APIs

  • Stripe
    • 온라인 결제 서비스
    • 신용카드 결제할 때
    • payment 회사

File and Object Storage

  • 문서 데이터베이스
  • 파일 저장
profile
안녕하세용 개발에 미치고 싶은 초보 개발자입니다:)

0개의 댓글