Data engineering for every one[Data camp]

Data Workflow

  • 데이터 수집 및 저장 -> 데이터 엔지니어링
  • 데이터 정리(preparation)
  • 탐색, 시각화
  • 실험, 예측

데이터 엔지니어

  • 데이터 엔지니어가 제공하는 것

    • 정확한 데이터

    • 올바른 형태로

    • 올바른 사람들에게

    • 효율적인 형태로

  • 데이터 엔지니어가 하는 일

    • 데이터 수집
    • 데이터베이스 최적화
    • 데이터 손상 관리
    • 데이터베이스 아키텍처 개발, 구성, 테스트 및 유지

데이터 엔지니어 vs 데이터 사이언티스트

  • 데이터 엔지니어
    • ingest and store data
    • set up database
    • build data pipeline
    • strong software skills
  • 데이터 사이언티스트
    • exploit data
    • access database
    • use pipeline output
    • strong analytical skills

Data pipeline

  • 데이터 수집
  • 처리
  • 저장
  • 파이프라인이 필요하다!
  • 모든 station을 자동화
  • 정확하고 relevant한 데이터를 제시간에 제공
  • 데이터 파이프라인은 데이터가 조직 전체에 흐르게 한다
  • 자동화한다
    • 추출
    • 변환
    • 결합
    • 검증
    • 로드
  • 줄인다
    • 인간의 개입
    • 에러
    • 걸리는 시간

ETL

  • 데이터 파이프라인을 디자인하는 프레임웍
    • Extract
    • Transform
    • Load
  • 데이터를 한 시스템에서 다른 시스템으로 이동시킨다.

데이터 스트럭쳐

구조화된 데이터

  • 쉽게 검색하고 구성
  • 행과 열의 엄격한 구조
  • 각 열은 특정 데이터 타입이 있음
  • 관계를 형성하기 쉽게 그룹화됨
  • 관계형 데이터 베이스에 저장됨
  • 거의 20%의 데이터가 구조화된 데이터다
  • SQL을 사용하여 만들어지고 쿼리된다.

semi-structured data

  • 검색하고 구조화하기 쉬움
  • 구조에 덜 엄격함
  • 여러가지 타입가능
  • 그룹화될 수 있지만 더 많은 작업이 필요함
  • NoSQL database: Json, XML, YAML

Unstructured data

  • 행과 열 형식으로 표현될 수 없는 데이터
  • 검색 및 구조화가 어려움
  • 텍스트, 사운드, 사진, 비디오
  • 일반적으로 데이터 레이크에 저장됨
  • 거의 대부분의 데이터는 unstructure다
  • 매우 가치있을 수 있음

Adding some structure

  • unstructured 데이터를 검색하고 구조화하기 위해 AI를 사용

  • semi-structure로 만들기 위해 정보를 더한다.(장르, 태그...)

SQL 데이터베이스

SQL

  • Structured Query Language
  • RDBMS에서 쿼리를 하는 데 사용됨
  • 한번에 많은 레코드에 엑세스할 수 있고 그룹화, 필터링, 집계할 수 있다.
  • 영어에 가까워서 쓰기와 이해가 쉽다
  • 데이터 엔지니어는 데이터베이스를 유지하고 만드는데 사용
  • 데이터 과학자는 SQL를 이용해 쿼리함
CREATE TABLE employee (
    employee_id INT,
    first_name VARCHAR(255),
    last_name VARCHAR(255),
    role VARCHAR(255),
    team VARCHAR(255),
    full_time BOOLEAN,
    office VARCHAR(255)
);

데이터베이스 스키마

  • 데이터 베이스는 많은 테이블로 구성된다.
  • 데이터 베이스 스키마는 테이블이 어떻게 related 되는지 관리한다.

데이터 웨어하우스 & 데이터 레이크

  • 데이터 레이크
    • 모든 raw data 저장
    • 정형, 반정형, 비정형 모든 타입
    • 비용이 적게 듬
    • 분석하기 어려움
    • 데이터 카탈로그를 최신상태로 유지해야 함
    • 데이터 사이언티스트에게 쓰임
    • 큰 데이터, 실시간 데이터
  • 데이터 웨어하우스
    • 특수 목적을 위해 특정한 데이터를 수집
    • 상대적으로 작음
    • Structured data 상태로 저장하기 때문에 업데이트에 비용이 듬
    • 분석에 최적화되어 잇음
    • data analytics에게 주로 쓰임
    • read only queries

data catalog for data lakes

  • 데이터의 출처
  • 어떻게 사용?
  • 누가 유지 관리를 하는가
  • 얼마나 업데이트가 자주 되는가
  • 데이터 거버넌스(가용성, 사용성 무결성, 보안)
  • 프로세스의 재현을 보장

Database vs data warehouse

  • Databasse
    • 일반적인 용어
    • organized data stored and accessed on computer
  • Data warehouse
    • 데이터베이스의 한 종류

Processing data

  • 원시데이터를 의미있는 정보로 바꾸는 것

Data processing value

  • 원하지 않는 데이터 제거
  • 메모리, 프로세스, 네트워크 비용을 최적화 한다.
  • 사용하기 쉬운 타입으로 데이터를 변경한다.
  • 데이터를 구조화 함
  • 특정 스키마와 구조를 갖게 함
  • 생산성 향상

데이터 엔지니어가 data processing을 하는 법

  • 데이터 조작, 정리
    • 자동화될 수 있음
  • 데이터를 적절이 구조화 된 데이터베이스에 저장
  • create views on top of database tables(뷰 생성)
  • 데이터베이스 성능 최적화 (ex. 데이터 인덱싱)

Scheduling data

  • 데이터 프로세싱의 모든 과정에 적용 가능
  • 데이터 엔지니어링 시스템의 접착제
  • task가 특정 순서로 작동되고 모든 종속성을 해결되도록 한다.

Manual, time, sensor scheduling

  • 수동으로
  • 특정시간, 조건(sensor scheduling)에 처리가 실행되도록 자동화
  • sensor scheduling은 항상 조건을 확인하기위해 수신 대기 상태에 있어야 하는 단점
  • 수동과 자동의 합성

Batches and stream

  • Batches

    • 한 인터벌마다 기록을 모음
    • 더 저렴
  • Streams

    • 개별 데이터를 바로 전송(ex. 유저 가입)
  • 스케줄링 툴: airflow, Luigi

Parallel computing

  • 최신 데이터 처리 툴의 기초
  • 메모리와 프로세싱 파워를 늘려줌
  • 데이터 처리 툴이 작업을 할때 task를 더 작은 subtask로 나누고 이 것들을 여러 컴퓨터에 분산시킴

pararell computing의 장점/e단점

  • 장점
    • 더 많은 프로세싱 파워
    • reduce memory footprint
  • 단점
    • 데이터를 이동시키는 것이 비용을 발생시킴
    • 통신 시간이 필요

Cloud computing

  • severs on premise
    • 직접 구입
    • 공간 필요
    • 전기요금, 유지 관리 비용
    • 피크타임에 적절한 프로세싱 파워
  • servers on cloud
    • 대여
    • 공간이 필요 없음
    • 필요할때만 자원 사용
    • 서버와 사용자가 가깝게 함
    • 데이터베이스 안정성

cloud computing for data storage

  • 데이터 베이스 안정성
  • 민감한 데이터에 대한 위험관리

AWS

  • File Storage: S3
  • computation: EC2
  • database: RDS

Microsoft Azure

  • File Storage: Blob Storage
  • computation: Virtual Machine
  • database: SQL Database

Google Cloud

  • File Storage: google cloud storage
  • computation: google compute engine
  • database: google cloud SQL

Multi cloud

  • 장점
    • 한 공급자에 대한 의존도를 줄임
    • 비용 절감
    • 법률
    • 재난에 대비
  • 단점
    • 클라우드 공급자는 서비스를 통합해 가두고자 한다
    • 호환성
    • 보안 및 거버넌스 관리를 어렵게 한다.

'Data Science > [DSF] Data engineering' 카테고리의 다른 글

Introduction to flat file  (0) 2022.05.15
What is Data Engineering?  (0) 2022.05.15

+ Recent posts