티스토리 뷰

[1] 핵심 데이터 개념 살펴보기

1. 핵심 데이터 개념 살펴보기

1) 데이터란?

- 의사 결정에 사용되는 숫자, 설명 및 관측값과 같은 팩트의 모음

 

2) 데이터의 분류

- 정형데이터: 일반적으로 DB에서 행과 열로 표시되는 테이블 형식의 데이터. 테이블이 있는 DB를 관계형 DB라고 함

- 반정형데이터: 관계형 DB에는 없지만 일부 구조를 갖춘 정보. '키-값' 저장소는 행과 열의 개수가 자유롭다는 점을 제외하면 관계형 DB와 유사함. ex) JSON 형식으로 저장된 문서

- 비정형데이터: 오디오 및 비디오 파일, 바이너리 파일 등

 

3) 프로비저닝: 데이터베이스 서버를 설정하는 작업. 서비스 공급자가 서비스를 만들고 구성하기 위해 수행하는 일련의 작업을 실행하는 동작. 서비스를 사용하려면 먼저 서비스를 프로비저닝 해야 함.

 

4) 클라우드 컴퓨팅에서의 데이터 정의, 저장 및 액세스

- Azure 서비스

  • 정형: Azure SQL DB
  • 반정형: Azure Cosmos DB
  • 비정형: Azure Blob Storage

- 액세스

  • r/o (Read Only)
  • r/w (Read Write)
  • 소유자 권한
  • 사용자 정의하여 액세스 제한

- 데이터 처리 솔루션

분석 시스템 - OLTP를 지원하는 시스템과 달리 데이터로부터 '큰 그림'을 도출하는 것을 지원
- 원시데이터를 캡쳐하고 이를 사용하여 인사이트를 도출
- 대부분 수집 - 변환/처리 - 쿼리 - 시각화와 같은 작업을 수행
트랜잭션 처리 시스템 - 트랜잭션 기록
- 트랜잭션은 대용량인 경우가 많음
- 처리되는 데이터에 신속하게 액세스 할 수 있어야 함
- OLTP라고도 부름

* OLTP(온라인 트랜잭션 처리): 온라인 뱅킹, 쇼핑, 주문 입력 또는 텍스트 메시지 전송 등 동시에 발생하는 다수의 트랜잭션을 실행하는 데이터 처리 유형

* 트랜잭션: 원자성이 있는 작업 시퀀스. 즉, 시퀀스의 모든 작업을 성공적으로 완료해야 하며 문제가 발생할 경우 지금까지 실행된 모든 작업을 취소해야 함
EX) 은행 이체(자금 출금 이후 시스템 장애 발생 시 원래 계좌로 복구해야 함)

 

- 정규화: 별도의 열그룹으로 테이블을 분할하는 것

  • 정규화를 사용하면 메모리에서 트랜잭션을 수행하는 데 필요한 많은 정보를 캐치하여 처리량을 높일 수 있음
  • 정규화를 통해 빠른 처리가 가능하지만, 쿼리를 더 복잡하게 만들 수 있음(데이터 검사를 해야하는 작업 부담이 늘어날 수 있음)

 

5) 워크로드에 대한 설명

- 관계형 및 비관계형은 서로 다른 워크로드에 적합

  • 관계형 DB의 주 용도는 트랜잭션 처리(트랜잭션 워크로드)
  • 시작-수정-커밋 / 롤백: 각 트랜잭션에는 정의된 시작점이 있으며, 그 다음에 데이터를 수정하는 단계가 있음. 마지막으로 변경사항을 커밋하여 영구적으로 지정하거나, 다시 시도할 경우 시작점으로 롤백함
  • 트랜잭션 DB는 트랜잭션을 처리하는 동안 DB를 일관되게 유지하기 위해 ACID(원자성, 일관성, 격리성, 내구성)을 준수해야 함

- ACID

  • 원자성: 완전히 성공/실패하는 단일 '단위'처리를 보장. 실패하면 DB는 변경되지 않은 상태로 유지
  • 일관성: 설명할 수 없는 방식으로 데이터를 유실/생성하면 안 됨. 자금 이동의 경우 어딘가에서 출금이 이루어져야 함
  • 격리: 동시에 실행되는 경우, 순차로 실행된 것과 동일한 상태 유지. 동시 프로세스에서 일관되지 않은 상태의 데이터를 볼 수 없음
  • 내구성: 트랜잭션 커밋 후에 정전/충돌 같은 시스템 장애가 발생하더라도 상태가 유지되도록 보장함

- 분석 워크로드

  • 읽기 전용 시스템
  • 데이터 분석과 의사 결정에 사용

6) 일괄처리

  • 데이터를 버퍼링한 다음, 그룹으로 처리
  • ex) 선거와 같이 예약된 시간 기준으로 데이터를 처리할 때
  • 장점: 대용량 데이터를 편리한 시간에 처리 가능, 시스템이 유휴이거나 사용량이 적은 시간에 실행되도록 예약 가능
  • 단점: 데이터 수집과 결과 사이에 시간 지연 발생, 일괄처리를 위해 입력 데이터를 준비해야 함, 일괄 작업 중 발생하는 문제는 전체 프로세스를 중단시킴

- 일괄처리의 특징

  • 데이터 범위: 데이터셋의 모든 데이터를 처리
  • 데이터 크기: 대량의 데이터 셋을 효율적으로 처리
  • 대기시간 성능: 대기시간이 김(수신~처리에 소요되는 시간)
  • 분석: 복잡한 분석 수행을 위해 사용

 

7) 스트리밍

  • 데이터를 도착할 때마다 처리
  • ex) 주식 시장의 변동을 실시간 추적, 게임에서 실시간 데이터 수집

- 스트리밍의 특징

  • 데이터 범위: 최근 수신 데이터/RTW(Rolling Time Window) 내의 데이터에만 액세스 가능
  • 데이터 크기: 개별 레코드, 소규모 일괄처리에 적합
  • 대기시간 성능: 즉시 이루어지며 대기시간은 초/밀리초 단위
  • 분석: 단순 응답 및 집계에 사용

 

 

2. 데이터 세계에서의 역할과 책임에 대해 알아보기

1) 역할

- DBA: 권한을 할당, 백업 복사본 저장, 오류 시 데이터 복원

 

 

- 데이터 엔지니어: 데이터 작업, 정리 루틴 적용, 비즈니스 규칙 식별, 파이프라인, 데이터 관련 자산 설계 및 구현

 

 

- 데이터 분석가: 합리적 의사결정을 내릴 수 있도록 지원

 

 

3. 관계형 데이터의 개념 설명하기

1) 특성

- 실제세계의 엔티티 컬렉션을 테이블로 모델링

- Entity(엔티티): 그에 대해 정보를 알거나 보유해야 하는 모언가

- 전자상거래 사례: 고객, 제품 및 주문에 대한 테이블

- 테이블에는 행이 포함되며 각 행은 단일 인스턴스를 나타냄

- 테이블의 행에는 고객 이름, 제품 ID와 같은 엔티티의 속성을 정의하는 하나 이상의 열이 있음

- 관계형 데이터베이스를 사용하는 주요 사례는 OLTP임

 

2) PK(기본키): 각 행을 고유하게 식별하는 열

- 모든 테이블에는 기본 키가 있어야 함

 

3) FK(외래키): 다른 테이블의 기본 키를 참조하거나 기본 키에 연결됨

- 테이블 간의 관계 관리, 변칙을 식별하고 방지하는 데 도움

 

4) 구조

  • 관계형 데이터베이스는 테이블 세트로 구성됨
    - 테이블 0개(테이블이 비어있음) 또는 그 이상의 행이 있을 수 있음
  • 테이블 외에도 데이터 구성을 최적화하고 액세스 속도를 개선하는 데 도움이 되는 다른 구조가 포함되어 있음
    - 인덱스와 뷰

5) 인덱스

  • 테이블에서 데이터를 검색하는 데 도움이 됨
  • 인덱스를 만들 때는 테이블의 열을 지정함
  • WHERE절에서 인덱스를 사용하여 데이터를 가지고 옴
  • 읽기 전용이거나 자주 수정되지 않는 데이터를 포함하는 테이블에서는 인덱스를 더 많이 만들면 쿼리 성능이 향상됨
  • 일부 관계형 데이터베이스 관리 시스템은 '클러스터형 인덱스'를 지원하기도 함
  • 클러스터형 인덱스를 지원하는 데이터베이스 관리 시스템에서 테이블은 하나의 클러스터형 인덱스만 가질 수 있

 

6) 뷰

  • 뷰는 쿼리의 결과 세트를 기반으로 하는 가상 테이블

 

4. 비관계형 데이터의 개념 탐색

1) 특성

  • 매우 유연한 방식으로 데이터를 저장
  • 비관계형 데이터는 테이블 집합으로 구조화되지 않은 모든 데이터를 의미하는 포괄적 용어
  • 비관계형 데이터베이스는 데이터에 스키마를 적용하지 않음
  • 대신 데이터를 구성하는 방법이 아닌 데이터 자체에 집중
  • 비관계형 시스템에서는 관계형 테이블이 아니라 컬렉션 또는 컨테이너에 엔티티에 대한 정보를 저장
  • 서로 다른 필드 집합을 가질 수 있음
  • 고정된 스키마가 없다는 것은 각 엔티티가 자기 기술적이라는 것
  • 비관계형 데이터베이스를 설계할 때는 데이터베이스 관리 시스템의 기능과 이 시스템이 지원해야 하는 쿼리 유형을 이해하는 것이 중요함

고객 엔티티의 비관계형 컬렉션

 

2) 비관계형 데이터의 형식: 일반적으로 반구조적/비구조적 두 가지 범주로 구분

- 반구조적

  • 반구조적 데이터는 필드를 포함하는 데이터
  • 일반적인 방법 중 하나는 JSON 문서로 각 엔티티의 데이터를 저장하는 것

그 밖의 형식

 

- 비구조적

  • 필드를 포함하지 않는 데이터
  • 비디오, 오디오 및 기타 미디어 스트림 등

 

3) NoSQL

- 단순히 비관계형을 의미하는 느슨한 용어

- 일반적으로 키-값 저장소, 문서 데이터베이스, 열 패밀리 데이터베이스, 그래프 데이터베이스의 네 가지 범주로 나뉨

  • 키-값: 쿼리는 검색할 키를 지정, Azure Table 저장소와 Cosmos DB가 그 예시.
    - 장점: 매우 빠르게 데이터 r/w, 검색 기능은 보조적, 스트림 데이터 수집에 효과적
  • 문서DB: 키-문서 구조를 지니며, 일반적으로 json, xml, yaml 같은 형식을 사용하여 인코딩. Azure에서는 Core(SQL) API에서 문서 DB 방식을 구현
  • 열 패밀리 DB: 행과 열로 구성. 간단한 형태의 경우 RDB와 매우 유사, Azure Cosmos DB는 Cassandra API를 통해 열 패밀리를 구현
    - 장점: 스파스 데이터 구조화에 대한 비정규화된 접근 방식, 열을 열 패밀리라는 그룹으로 그룹화, RDB보다 더 적은 쿼리를 사용하여 데이터를 가져올 수 있음, 열 패밀리는 수직 분할도 별도로 저장됨(실제 스토리지의 서로 다른 영역에 보관 가능)

 

4) 그래프 DB

- 노드와 에지에 대한 정보를 저장

 

5. 데이터 분석의 개념 탐색

1) 데이터 웨어하우스 구성

- 데이터를 캡쳐하여 '랭글링'함

* 랭글링: 분석을 위해 원시데이터를 더 유용한 형식으로 변환하는 과정. 캡쳐, 필터링, 정리, 결합, 집계하는 코드 등 포함

 

2) 데이터 수집: 다양한 원본의 원시 데이터 스트리밍 캡쳐 민 저장

 

3) 데이터 처리

- ETL: 추출-변환-로드, 종속성이 없는 간단한 모델에 적합, 스트림적인 처리방식

- ELT: 추출-로드-변환, 정기적으로 일괄처리 및 종속되는 것에 적합, 클라우드에 적합한 스케일링 방식

- Azure Data Factory: 데이터 기반 워크 플로우(파이프라인)

 

4) 비즈니스 시각화

- BI: 비즈니스 인텔리전스(더 나은 의사결정 지원, 운영에 대한 과거/현재/예측 뷰를 제공

 

5) 데이터분석

- 설명적: 데이터를 기반으로 상황을 설명. KPI, ROI 같은 메트릭이 자주 사용됨

- 진단적: 현상이 발생하는 이유를 설명

- 예측: 향후 발생 상황을 예측

- 처방적: 목표 달성을 위해 수행해야 하는 작업

- 인지적: 기존 패턴에서 추론을 시도하고 결론을 도출

 

 

 

 

 

[2] Azure에서 관계형 데이터 살펴보기

1) Azure Data Service

- PaaS 범주에 속함. 일련의 DBMS

- 리프트 앤 시프트: 온-프레미스 to Azure VM으로 직접 DB이동

 

 

 

2) Azure SQL DB

- Single DB

- Elastic Pool

 

3) MySQL: LAMP를 위한 오픈 소스 관계형 데이터베이스

 

4) MariaDB: MySQL 데이터 베이스 엔진이 성능 향상되고 최적화 됨. Oracle DB와 호환성이 있음. temporal 데이터 지원

 

5) PostgreSQL: 하이브리드 관계형 개체 데이터 베이스

 

 

6) Azure의 관계형 데이터 쿼리하기

- SQL

 

- 인기있는 SQL

 

 

7) SQL문의 그룹화

- 데이터 조작 언어(DML)

  • select: 선택/읽기
  • insert: 삽입(한 번에 한 개 행만 가능)
  • update: 수정(where을 생략하면 모든 행을 수행)
  • delete: 삭제(where을 생략하면 모든 행을 삭제)
  • where절: 행 기준 지정
  • from 절: table 지정
  • order by: 정렬
  • join 절: 여러 테이블 대상

 

- 데이터 정의 언어(DDL)

  • create: table 또는 view 개체
  • alter: 개체 구조 수정, 예를 들어 table을 변경하여 column 추가
  • drop: 개체 제거
  • rename: 개체 이름 변경

 

[3] Azure에서 비관계형 데이터 탐색

1) Azure Table Storage: NoSQL 키-값 모델

- 파티션으로 분할

- 파티션키, 행 키

 

- 장점

  • 크기 조정이 간단함. 데이터를 삽입하는 데 걸리는 시간이 동일
  • 행 삽입이 빠름
  • 파티션 키와 행 키를 쿼리 조건으로 하면 데이터 검색이 빠름

 

- 단점

  • 트랜잭션 업데이트가 보장되지 않아 일관성 고려 필요
  • 참조 무결성이 없어 행간 관계를 외부에서 유지관리

 

- 특징

  • TB 단위의 데이터에 적합
  • 빠른 액세스를 위해 비정규화 할 수 있는 데이터 셋 저장

 

2) Azure Blob Storage

- 형식

  • 블록: 블록 1개의 크기는 최대 100M까지 이며 5만개까지 할 수 있고 4.7T 이상 크기 제공.
    블록은 개별 단위의 가장 작은 데이터 양. 자주 변경되지 않은 바이너리를 저장하는 데 적합.
    자주 변경되지 않는 불연속 개체에는 블록 Blob을 사용.
  • 페이지: 512Byte. 페이지를 사용하여 VM의 가상 디스크를 구현. 임의의 읽기 및 쓰기 액세스가 필요한 Blob에는 페이지 블록을 사용함.
  • 추가: 오직 추가만 가능하며, 업데이트나 삭제 불가능

- 액세스 계층

  • 핫: 기본 값. 자주 액세스에 사용
  • 쿨: 핫보다는 자주 아님. 쿨에서 핫으로 마이그레이션 가능
  • 보관: 대기시간이 증가. 핫이나 쿨은 몇 ms지만 보관은 hour가 걸릴 수 있음

 

3) Azure File Storage

- SMB 3.0 프로토콜을사용하여 공유

- 다른 사이트의 사용자가 파일을 공유할 수 있도록 하기 위해 사용

 

- Azure File Storage는 두 가지 성능 계층을 제공

  • 표준 계층: 데이터 센터에서 하드 디스크 기반 하드웨어 사용
  • 프리미엄 계층: SSD(반도체 드라이브)를 사용함. 프리미엄 계층은 더 높은 처리량을 제공하지만 더 높은 요금이 청구

- 여러 동시 프로세스가 한 번에 쓸 수 있는 파일에는 Azure File Storage를 사용하지 마세요. 여러 작성기는 신중한 동기화가 필요하며, 그렇지 않으면 프로세스에서 변경한 내용을 다른 프로세스가 덮어쓸 수 있습니다.

 

4) Azure Cosmos DB

- 다중 모델 NoSQL 데이터베이스 관리 시스템

- 이러한 모델은 문서, 그래프, 키-값 저장소, 열 패밀리 저장소와 같은 다른 구조에 데이터를 저장

- Cosmos DB는 대량의 데이터를 신속하게 수집할 수 있음

- 다중 지역 복제를 사용하는 경우, 다른 지역에서도 해당 데이터를 계속 사용할 수 있으므로 가용성이 증가함

 

 

 

[4] Azure에서 최신 데이터 웨어하우스 분석 살펴보기

1. 최신 데이터 웨어하우스의 구성 요소 검사

1) 데이터 웨어하우스

- 조직 내의 여러 다른 원본에서 데이터 수집

- 수집된 데이터는 분석, 보고 및 OLAP(온라인 분석 처리)의 원본으로 사용됨

- 트랜잭션 성능에 초점을 맞춘 기존 관계형 데이터베이스와 달리 복잡한 쿼리에 대한 답변을 제공하는 것

- '빅데이터'를 처리해야 함

 

2) 데이터 팩토리

- 하나 이상의 데이터 원본에서 데이터를 검색하여 처리에 사용하는 형식으로 변환

- 구조화된 정보가 들어있음

 

3) 데이터 레이크

- 분석을 위해 효율적인 형식으로 보관

- 원시 데이터가 보관됨

- Blob 스토리지의 확장으로 무한에 가까운 파일 시스템

- Hadoop과 호환 가능

 

4) 시냅스

- 분석엔진

- 오버헤드 없이 처리하고 로컬로 데이터를 저장시킬 수 있음

- MPP(대규모 병렬 처리) 아키텍쳐를 사용함

- MPP 아키텍쳐는 제어노드와 컴퓨팅 노드 풀로 구성

  • 제어노드: MPP의 front-end, 앱과 상호작용함
  • 컴퓨팅노드: 컴퓨팅 성능을 제공

- Polybase라는 기술을 사용하여 구분 기호로 데이터 검색

 

 

5) 데이터 브릭스

- Spark 환경으로 빅데이터 처리, 스트리밍 등 데이터 처리 엔진

- Spark는 메모리 내 처리에 최적화되어 있음. 데이터 로드와 캐시하여 반복적으로 쿼리 가능

 

 

6) 분석(Azure Analysis): OLAP(온라인 분석 처리)를 지원

 

7) MS Power BI

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함