[Azure] DP-900

2021. 2. 24. 22:37Cloud

728x90

 

DP-900 주제 영역

  • 핵심 데이터 개념 설명 (15-20%)
  • Azure에서 관계형 데이터로 작업하는 방법 설명 (25-30%)
  • Azure에서 비관계형 데이터로 작업하는 방법 설명 (25-30%)
  • Azure에서 분석 워크로드 설명 (25-30%)
 

Exam DP-900: Microsoft Azure Data Fundamentals - Learn

Exam DP-900: Microsoft Azure Data Fundamentals

docs.microsoft.com


Azure 데이터 기본 사항: 핵심 데이터 개념 살펴보기
Azure 데이터 기본 사항: Azure에서 관계형 데이터 살펴보기
Azure 데이터 기본 사항: Azure에서 비관계형 데이터 탐색
Azure 데이터 기본 사항: Azure에서 최신 데이터 웨어하우스 분석 살펴보기

Azure 데이터 기본 사항: 핵심 데이터 개념 살펴보기 

핵심 데이터 개념 살펴보기
데이터 세계에서의 역할과 책임에 대해 알아보기
관계형 데이터의 개념 설명하기
비관계형 데이터의 개념 탐색
데이터 분석의 개념 탐색

 

핵심 데이터 개념 살펴보기

  • 데이터란 무엇일까요?
    • 데이터는 의사 결정에 사용되는 숫자, 설명 및 관측값과 같은 팩트의 모음입니다.
      데이터를 정형, 반정형 또는 비정형으로 분류할 수 있습니다.
      • 정형데이터는 일반적으로 DB에서 행과 열로 표시되는 표(테이블) 형식 데이터 입니다.
        테이블이 있는 DB를 관계형 DB라고 합니다.
      • 반정형 데이터는 관계형 DB에는 없지만 일부 구조를 갖춘 정보 입니다.
        를 들면 JSON 형식으로 저장된 문서입니다. '키-값'저장소는 행과 열의 개수가 자유롭다는 점을 제외하면 관계형 DB와 유사합니다. ('키-값'저장소, '그래프 DB'도 반정형 데이터)
      • 비정형 데이터 , 예를 들어 오디오비디오 파일, 바이너리 파일
  • 데이터베이스 서버를 설정하는 작업을 '프로비저닝' 이라고 합니다.
  • 클라우드 컴퓨팅에서 데이터는 어떻게 정의되고 저장 및 액세스 되나요?
    • Azure 서비스
      • 정형 : Azure SQL DB
      • 반정형 : Azure Cosmos DB
      • 비정형 : Azure Blob Storage
    • 액세스
      • r/o
      • r/w
      • 소유자권한
      • 사용자를 정의하여 액세스를 제한할 수 있습니다.
    • 데이터 처리 솔루션
      • 분석시스템 
        • OLTP를 지원하는 시스템과 달리, 데이터로부터 '큰 그림' 을 도출하는 것을 지원하도록 설계되었습니다.
        • 분석 시스템은 원시데이터를 캡쳐하고 이를 사용하여 인사이트를 도출하는 것과 관련이 있습니다.
        • 예를 들어, 추세를 이용하여 수익성을 어떤 제품에 주력할 지 결정할 수 있습니다.
        • 대부분은 분석 처리 시스템은 수집-변환/처리-쿼리-시각화와 같은 작업을 수행합니다.
      • 트랜잭션 처리 시스템 
        • '트랜잭션'을 기록합니다.
        • '트랜잭션'은 은행 시스템에서 계좌 간 돈을 이체하는 것과 같이 금융과 관련된 것일 수도 있고
          고객의 상품 및 서비스에 대한 결제를 추적하는 상거래 시스템의 일부일 수도 있습니다.
        • 트랜잭션은 대용량인 경우가 많습니다. 처리되는 데이터에 신속하게 액세스 할 수 있어야 합니다.
          트랜잭션 시스템에서 수행하는 작업을 조종 OLTP(온라인트랜잭션처리)라고 합니다.
        • 빠른 처리를 위해 트랜잭션은 종종 작은부분으로 분할 됩니다.
          • 예를 들어 RDB를 사용하는 경우, 트랜잭션 테이블에서 작업에 필요한 열만 포함 됩니다.
          • 이와 같이 별도의 열그룹으로 테이블을 분할하는 것을 '정규화' 라고 합니다.
          • 정규화를 사용하면, 메모리에서 트랙잭션을 수행하는데 필요한 많은 정보를 캐시하여 처리량을 높일 수 있습니다.
          • 그러나 정규화를 통해 트랜잭션에 대해 빠른 처리가 가능하지만, 쿼리를 더 복잡하게 만들 수 있습니다. 이로인해 데이터를 검사해야하는 작업부담이 늘어날 수도 있습니다.

 

분석 시스템

 

정형 , 반정형 데이터의 예

 

  • 관계형 DB는 테이블 및 열로 구성된 간단한 구조로 처음에는 쉽게 사용할 수 있지만, 경직된 구조로 인한 문제가 발생할 수 있습니다.
    • 정규화라는 프로세스를 사용하여 문제를 해결할 수 있습니다. (간결하게 정의된 다수의 테이블로 분할)
    • 비관계형 DB를 사용하면 원래 구조에 더 가까운 형식으로 저장할 수 있습니다.
      • 예를 들어, 문서 DB에서 각 고객의 세부 정보를 단일 문서로 저장할 수 있습니다.
        세부정보를 검색하려면 단일 문서만 읽으면 됩니다.

 

  • 워크로드에 대한 설명
    • 관계형 및 비관계형은 서로 다른 워크로드에 적합합니다.
      • 관계형 DB의 주 용도는 트랜잭션 처리입니다. (트랜잭션 워크로드)
        • 트랜잭션은 '원자성이 있는' 작업 시퀀스 입니다.
          즉, 시퀀스의 모든 작업을 성공적으로 완료해야 하며, 문제가 발생할 경우 지금까지 실행된 모든 작업을 취소해야 합니다.
          • 은행이체가 좋은 예 입니다. 자금을 출금한 이후, 시스템에 장애가 발생할 경우 원래 계좌로 복구해야 합니다(자금이 유실되면 안되므로)
          • 그런 다음 이체를 다시 시도할 수 있습니다. 마찬가지로, 두 번 입금하는 일이 발생하면 안됩니다.
        • 각 트랜잭션에는 정의된 시작점이 있으며, 그 다음에 데이터를 수정하는 단계가 있습니다. 마지막으로 변경사항을 커밋하여 영구적으로 지정하거나, 다시 시도할 경우 시작점으로 롤백합니다.
          (시작-수정-커밋/롤백)
        • 트랜잭션 DB는 트랜잭션을 처리하는 동안 DB를 일관되게 유지하기 위해 ACID(원자성, 일관성, 격리성, 내구성)을 준수해야합니다.
          • 원자성 : 완전히 성공/실패 하는 단일 '단위' 처리를 보장
            실패하면 DB는 변경되지 않은 상태로 유지.
          • 일관성 : 설명할 수 없는 방식으로 데이터를 유실/생성 하면 안됨.
            자금 이동의 경우 어딘가에서 출금이 이루어져야 함
          • 격리 : '동시'에 실행되는 경우, '순차'로 실행된 것과 동일한 상태로 유지.
            동시 프로세스에서 일관되지 않은 상태의 데이터를 볼 수 없습니다.
          • 내구성 : 트랜잭션 커밋 후에 정전/충돌 같은 시스템 장애가 발생하더라고. 상태가 유지되도록 보장합니다.
      • 분석 워크로드
        • 분석 워크로드는 읽기전용 시스템입니다.
        • 데이터 분석과 의사 결정에 사용됩니다.

 

  • 일괄처리와 스트리밍 데이터 차이
    • 일괄처리
      • 데이터를 버퍼링 한 다음 그룹으로 처리
      • 예를 들어, 예약된 시간 기준으로 데이터를 처리할 때 사용할 수 있습니다. (ex. 선거)
      • 일괄 처리의 장점
        • 많은 양의데이터를 편리한 시간에 처리
        • 시스템이 유휴일 때 / 사용량이 적은 시간에 실행되도록 예약
      • 일괄 처리의 단점
        • 데이터 수집 ~ 결과 사이에 시간 지연 발행
        • 일괄처리를 위해, 입력데이터를 준비해야 함.
        • 일괄 작업 중 발생하는 문제/오류/충돌은 전체 프로세스를 중단시킴
      • 특징
        • 데이터 범위 : 데이터 셋의 모든 데이터를 처리
        • 데이터 크기 : 대량의 데이터 셋을 효율적으로 처리
        • 대기시간 성능 : 대기시간이 김 (수신~처리에 소요되는 시간)
        • 분석 : 복잡한 분석 수행을 위해 사용
    • 스트리밍
      • 데이터를 도착할 때 마다 처리
      • 예를 들어, 주식 시장의 변동을 실시간 추적, 게임에서 실시간 데이터 수집 등
      • 특징
        • 데이터 범위 : 최근 수신 데이터 / RTW(Rolling Time Window) 내의 데이터에만 액세스 가능
        • 데이터 크기 : 개별 레코드, 소규모 일괄처리에 적합
        • 대기시간 성능 :  즉시 이루어지며 대기시간은 초/밀리초 단위
        • 분석 : 단순 응답, 집계 (ex. 이동평균) 에 사용

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

  • 역할
    • DBA : 권한을 할당, 백업 복사본 저장, 오류 시 데이터 복원
      • 데이터베이스 서버 및 애플리케이션 도구의 설치와 업그레이드
      • 데이터베이스 시스템에 대한 시스템 스토리지 할당 및 스토리지 요구 사항 계획
      • 애플리케이션 개발자가 제공하는 정보를 바탕으로 필요 시 데이터베이스 구조 수정
      • 사용자 등록 및 시스템 보안 유지 관리
      • 데이터베이스 공급업체 사용권 계약을 통한 규정 준수 보장
      • 데이터베이스에 대한 사용자 액세스 제어 및 모니터링
      • 데이터베이스 성능을 모니터링 및 최적화
      • 데이터베이스 정보 백업 및 복구 계획
      • 보관된 데이터 유지 관리
      • 데이터베이스 백업 및 복원
      • 데이터베이스 공급업체에 기술 지원 문의
      • 필요 시 데이터베이스에서 쿼리하여 다양한 보고서 생성
      • 데이터 복제 관리 및 모니터링
    • 데이터 엔지니어 : 데이터 작업, 정리 루틴 적용, 비즈니스 규칙 식별, 파이프라인, 데이터 고나련 자산 설계 및 구현
      • 데이터베이스 및 데이터 구조 개발, 생성, 테스트 및 유지 관리
      • 비즈니스 요구 사항에 맞게 데이터 아키텍처 정렬
      • 데이터 획득
      • 데이터 세트에서 정보를 만들고 검색하는 프로세스 개발
      • 프로그래밍 언어 및 도구를 사용하여 데이터 검사
      • 데이터 안정성, 효율성 및 품질을 개선하는 방법 파악
      • 업계 및 비즈니스 관련 질문에 대한 연구 수행
      • 정교한 분석 프로그램, 기계 학습 및 통계 방법 배포
      • 예측 및 규범적 모델링을 위해 데이터 준비
      • 데이터를 사용하여 자동화할 수 있는 태스크 검색
    • 데이터 분석가 : 합리적 의사결정을 내릴 수 있도록 지원
      • 대량의 복잡한 데이터를 더 쉽게 액세스하고, 이해하고, 사용할 수 있도록 만들기
      • 대량의 데이터의 의미를 설명하고 관심 영역을 격리하는 데 도움이 되는 차트 및 그래프, 히스토그램, 지리 맵 및 기타 시각적 모델 만들기
      • 비즈니스 요구 사항에 따라 여러 원본의 데이터를 변환, 개선 및 통합
      • 여러 원본에서 데이터 결과 세트 결합. 예를 들어, 판매 데이터와 날씨 데이터를 결합하면 날씨가 아이스크림과 같은 특정 제품의 판매에 영향을 미치는 방식에 대한 유용한 인사이트를 얻을 수 있습니다.
      • 데이터를 사용하여 숨겨진 패턴 찾기
      • 풍부한 그래픽 대시보드 및 보고서를 만들어 사용자에게 유용하고 매력적인 방법으로 정보 제공

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

  • 특성
    • 관계형 데이터베이스에서는 실제 세계의 엔터티 컬렉션테이블모델링합니다.
    • 엔터티는 ‘그에 대해 정보를 알거나 보유해야 하는 무언가’
    • 전자 상거래 사례에서는 고객, 제품 및 주문에 대한 테이블을 만들 수 있습니다. 테이블에는 행이 포함되며,
    • 은 엔터티의 단일 인스턴스를 나타냅니다.
      전자 상거래 시나리오에서 고객 테이블의 각 행에는 단일 고객에 대한 데이터가 포함되고, 제품 테이블의 각 행에서는 단일 제품이 정의되며, 주문 테이블의 각 행은 고객이 접수한 주문을 나타냅니다.
    • 테이블의 행에는 고객 이름, 제품 ID와 같은 엔터티의 속성을 정의하는 하나 이상의 열이 있습니다.
      하나의 테이블에서 모든 행은 같은 열을 갖습니다. 테이블 간의 관계를 관리하는 데 사용되는 열도 있습니다. 바로 여기서 관계형 모델이라는 이름이 생긴 것입니다. 아래 이미지에서 주문 테이블에는 고객 ID와 제품 ID가 모두 포함되어 있습니다. 고객 ID는 고객 테이블과 관련되어 주문을 접수한 고객을 식별하고, 제품 ID는 제품 테이블과 관련되어 어떤 제품이 구매되었는지 나타냅니다.
    • PK 라고 표시된 열은 해당 테이블의 ‘기본 키’입니다. 기본 키는 각 행을 고유하게 식별하는 열(또는 열의 조합)을 나타냅니다. 모든 테이블에는 기본 키가 있어야 합니다.
    • FK 라고 표시된 열은 ‘외래 키’ 열입니다. 외래 키는 다른 테이블의 기본 키를 참조하거나 기본 키에 연결되며, 테이블 간의 관계를 관리하는 데 사용됩니다. 외래 키는 변칙(예: 고객 테이블에 존재하지 않는 고객의 주문)을 식별하고 방지하는 데도 도움이 됩니다. 아래 모델에서 주문 테이블의 고객 ID 열과 제품 ID 열은 해당 주문을 접수한 고객과 주문된 제품으로 연결됩니다.

 

관계형 데이터베이스는 전자 상거래 시스템에서 널리 사용되지만, 관계형 데이터베이스가 사용되는 주요 사용 사례 중 하나는 OLTP(온라인 트랜잭션 처리)입니다.
관계형 데이터베이스를 사용하는 OLTP 애플리케이션의 예는 다음과 같습니다.

  • 금융 솔루션
  • 온라인 소매 애플리케이션
  • 항공편 예약 시스템
  • 많은 온라인 구매 애플리케이션.

 

  • 구조
    • 관계형 데이터베이스는 테이블 세트로 구성됩니다.
      테이블에는 0개(테이블이 비어 있는 경우) 또는 그 이상의 행이 있을 수 있습니다.
      각 테이블에는 고정된 열 세트가 있습니다.
      기본 키와 외래 키를 사용하여 테이블 간의 관계를 정의할 수 있고, SQL을 사용하여 테이블의 데이터에 액세스할 수 있습니다.
    • 일반적인 관계형 데이터베이스에는 테이블 외에도 데이터 구성을 최적화하고 액세스 속도를 개선하는 데 도움이 되는 다른 구조가 포함되어 있습니다. 이 단원에서는 인덱스라는 두 가지 구조를 자세히 살펴봅니다.
  • 인덱스
    • 인덱스는 테이블에서 데이터를 검색하는 데 도움이 됩니다.
      테이블의 인덱스는 책 뒷면에 있는 색인과 같다고 생각하면 됩니다.
    • 데이터베이스에서 인덱스를 만들 때는 테이블의 열을 지정합니다.
    • 사용자가 WHERE 절에서 이 열을 지정하는 쿼리를 실행하면 데이터베이스 관리 시스템은 이 인덱스를 사용하여 전체 테이블을 행별로 검사해야 하는 경우보다 더 빨리 데이터를 가져올 수 있습니다.
    • 어떤 인덱스를 만들지 결정할 때는 쿼리 속도를 높이는 인덱스와 다른 작업을 수행하는 데 발생하는 비용 사이의 균형을 맞추어야 합니다.
      읽기 전용이거나 자주 수정되지 않는 데이터를 포함하는 테이블에서는 인덱스를 더 많이 만들면 쿼리 성능이 향상됩니다.
    • 일부 관계형 데이터베이스 관리 시스템은 ‘클러스터형 인덱스’를 지원하기도 합니다. 클러스터형 인덱스는 인덱스 키를 기준으로 테이블을 물리적으로 다시 구성합니다.
    • 클러스터형 인덱스를 지원하는 데이터베이스 관리 시스템에서 테이블은 하나의 클러스터형 인덱스만 가질 수 있습니다.

    • 뷰는 쿼리의 결과 세트를 기반으로 하는 가상 테이블입니다.
    • 가장 간단한 경우를 예로 들어 보면, 기본 테이블의 지정된 행에 대한 창라고 생각하면 됩니다
    • 예를 들어, 다음과 같이 주문 테이블에 특정 제품(여기서는 제품 P1)에 대한 주문을 나열하는 뷰를 만들 수 있습니다.
CREATE VIEW P1Orders AS
SELECT CustomerID, OrderID, Quantity
FROM Orders
WHERE ProductID = "P1"

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

  • 특성
    • 매우 유연한 방식으로 데이터를 저장
    • 비관계형 데이터베이스는 데이터에 스키마를 적용하지 않습니다
    • 대신 데이터를 구성하는 방법이 아닌 데이터 자체에 집중
    • 비관계형 시스템에서는 관계형 테이블이 아니라 컬렉션 또는 컨테이너에 엔터티에 대한 정보를 저장
    • 관계형 테이블에서 볼 수 있는 일반적인 열 집합이 아닌 서로 다른 필드 집합을 가질 수 있음
    • 고정된 스키마가 없다는 것은 각 엔터티가 자기 기술적
    • 비관계형 데이터베이스를 설계할 때는 데이터베이스 관리 시스템의 기능과 이 시스템이 지원해야 하는 쿼리 유형을 이해하는 것이 중요합니다.
    • 예를 들어 고객 엔터티의 비관계형 컬렉션은 다음과 같음
## Customer 1
ID: 1
Name: Mark Hanson
Telephone: [ Home: 1-999-9999999, Business: 1-888-8888888, Cell: 1-777-7777777 ]
Address: [ Home: 121 Main Street, Some City, NY, 10110,
           Business: 87 Big Building, Some City, NY, 10111 ] 

## Customer 2
ID: 2
Title: Mr
Name: Jeff Hay
Telephone: [ Home: 0044-1999-333333, Mobile: 0044-17545-444444 ]
Address: [ UK: 86 High Street, Some Town, A County, GL8888, UK,
           US: 777 7th Street, Another City, CA, 90111 ]

 

  • 비관계형 데이터의 형식
    • 비관계형 데이터는 일반적으로 반구조적비구조적이라는 두 가지 범주로 구분
      • 반구조적
        • 반구조적 데이터는 필드를 포함하는 데이터입니다. 
        • 일반적인 방법 중 하나는 JSON 문서로 각 엔터티의 데이터를 저장하는 것
        • 그 밖의 형식으로는 AvroORCParquet 등이 있음
          • Avro : Avro 는 행 기반 형식이며, Apache에서 만들었습니다. 
          • ORC : ORC(Optimized Row Columnar 형식)는 데이터를 행이 아닌 열로 구성합니다. Apache Hive에서의 읽기 및 쓰기 작업을 최적화 하기 위해 HortonWorks가 개발했습니다. Hive는 고속 데이터 요약과 매우 큰 데이터 세트 쿼리를 지원하는 데이터 웨어하우스 시스템입니다.
          • Parquet 은 또 다른 열 형식 데이터 형식입니다. Cloudera와 Twitter에서 만들었습니다
            Parquet은 매우 효율적인 압축 및 인코딩 스키마를 지원합니다.
      • 비구조적
        • 비구조적 데이터란 필드를 당연히 포함하지 않는 데이터입니다.
        • 그 예로는 비디오, 오디오 및 기타 미디어 스트림이 있습니다. 
    • 비관계형 데이터는 테이블 집합으로 구조화되지 않은 모든 데이터를 의미하는 포괄적 용어
      • NoSQL
        • NoSQL은 단순히 비관계형을 의미하는 느슨한 용어
        • NoSQL은 일반적으로 키-값 저장소, 문서 데이터베이스, 열 패밀리 데이터베이스, 그래프 데이터베이스의 네 가지 범주로 나뉨
          • 키-값 : 쿼리는 검색할 키를 지정, Azure Table 저장소는 키-값 저장소의 예. Cosmos DB도 Table API를 사용하여 키-값 저장소를 구현.
            • 장점 : 매우 빠르게 데이터를 r/w 할 수 있음. 검색기능은 보조적. 스트림 데이터 수집에 효과적
          • 문서 DB : 키-문서 구조를 지니며, 일반적으로 json, xml, yaml 같은 형식을 사용하여 인코딩. Azure 에서는 Core(SQL) API에서 문서 DB 방식을 구현
          • 열 패밀리 DB : 행과 열로 구성. 간단한 형태의 경우 RDB와 매우 유사.
            • 장점
              • 스파스 데이터 구조화에 대한 비정규화된 접근 방식
              • 열을, 열 패밀리라는 그룹으로 그룹화
              • RDB보다 더 적은 쿼리를 사용하여 데이터를 가져 올 수 있음
              • 열 패밀리는 수직 분할도 별도로 저장됨. 실제 스토리지의 서로 다른영역에 보관 가능
            • Azure Cosmos DB는 Cassandra API를 통해 열 패밀리를 구현

  • 그래프 DB
    • 노드와 에지에 대한 정보를 저장
    • Azure 에서는 Gremlin API를 사용하여 지원


데이터 분석의 개념 탐색

  • 데이터 웨어하우스 구성
    • 데이터를 캡처하여 '랭글링' 함
      • '랭글링 : 분석을 위해 원시데이터를 더 유용한 형식으로 변환하는 프로세스. 캡쳐, 필터링, 정리, 결합, 집계하는코드 등이 포함
  • 데이터 수집
  • 데이터 처리
    • ETL : 추출 - 변환 - 로드, 종속성이 없는 간단한 모델에 적합, 스트림적인 처리방식
    • ELT : 추출 - 로드 - 변환, 정기적으로 일괄처리 및 종속되는 것에 적합, 클라우드에 적합한 스케일링 방식
    • Azure Data Factory : 데이터 기반 워크 플로우(파이프라인)
  • 비즈니스 시각화
    • BI : 비즈니스 인텔리전스 - 더 나은 의사결정 지원. 운영에 대한 과거/현재/예측 뷰를 제공
  • 데이터 분석
    • 설명적 : 데이터를 기반으로 상황을 설명. KPI,ROI 같은 메트릭이 자주 사용
    • 진단적 : 현상이 발생하는 이유를 설명
    • 예측 : 향후 발생 상황을 예측
    • 처방적 : 목표 달성을 위해 수행해야 하는 작업
    • 인지적 : 기존 패턴에서 추론을 시도하고 결론을 도출

ETL과 ELT


Azure 데이터 기본 사항: Azure에서 관계형 데이터 살펴보기

Azure의 관계형 데이터 서비스 살펴보기 
Azure의 관계형 데이터베이스 서비스 프로비저닝 및 배포 살펴보기 
Azure에서 관계형 데이터 쿼리하기 

 

Azure의 관계형 데이터 서비스 살펴보기

  • Azure Data Service
    • PaaS 범주에 속합니다. 일련의 DBMS 입니다.
    • 리프트 앤 시프트 : 온-프레미스 to Azure VM으로 직접 DB 이동

 

  • Azure SQL DB
    • Single DB
    • Elastic Pool

 

  • MySQL
    • LAMP 를 위한 오픈 소스 관계형 데이터베이스
  • MariaDB
    • MySQL 데이터베이스 엔진이 성능향상되고 최적화 됨
    • Oracle DB와 호환성이 있음
    • temporal 데이터가 기본적으로 지원 됨
  • PostgreSQL
    • 하이브리드 관계형 개체 데이터 베이스


Azure의 관계형 데이터베이스 서비스 프로비저닝 및 배포 살펴보기



Azure에서 관계형 데이터 쿼리하기

  • SQL
    • SQL은 구조적 쿼리 언어(Structured Query Language)를 의미합니다.
    • SQL은 관계형 데이터베이스와 통신하는 데 사용됩니다. 관계형 데이터베이스 관리 시스템의 표준 언어입니다.
    • SQL 문은 데이터베이스에서 데이터를 업데이트하거나 데이터베이스에서 데이터를 검색하는 등의 작업을 수행하는 데 사용됩니다.
    • SQL을 사용하는 일반적인 관계형 데이터베이스 관리 시스템으로는 Microsoft SQL Server, MySQL, PostgreSQL, MariaDB, Oracle 등이 있습니다.
    • SQL은 원래 1986년 ANSI(American National Standards Institute), 1987년 ISO(International Organization for Standardization)에서 표준화했습니다.
    • 이후에 관계형 데이터베이스 공급업체에서 시스템에 새로운 기능을 추가하면서 표준이 여러 번 확장되었습니다. 대부분의 데이터베이스 공급업체에는 표준에는 포함되지 않는 자체적인 독점 확장이 있으며, 그 결과 SQL에 사용되는 언어는 다양해졌습니다.
  • 인기 있는 몇 가지 SQL 언어는 다음과 같습니다.
    • Transact-SQL(T-SQL). 이 버전의 SQL은 Microsoft SQL Server 및 Azure SQL Database에서 사용됩니다.
    • pgSQL. 언어이며, 여기에는 PostgreSQL에 구현된 확장이 포함되어 있습니다.
    • PL/SQL. Oracle에서 사용되는 언어입니다. PL/SQL은 절차적 언어/SQL(Procedural Language/SQL)을 나타냅니다.

SQL 문은 다음과 같은 두 개의 기본 논리 그룹으로 그룹화됩니다.

  • 데이터 조작 언어(DML)
    • select : 선택/읽기
    • insert : 삽입          - 한번에 1개 행만 가능
    • update : 업데이트   - where 을 생략하면 모든 행을 수행
    • delete : 삭제          - where 을 생략하면 모든 행을 삭제
    • ===========
    • where 절 : 행 기준 지정
    • from 절 : table 지정
    • order by : 정렬
    • join 절 : 여러 테이블
  • 데이터 정의 언어(DDL)
    • Create : table 또는 view 개체
    • alter : 개체 구조 수정, 예를 들어 table을 변경하여 column 추가
    • drop : 개체 제거
    • rename : 개체 이름 변경
CREATE TABLE MyTable
(
    MyColumn1 INT NOT NULL PRIMARY KEY,
    MyColumn2 VARCHAR(50) NOT NULL,
    MyColumn3 VARCHAR(10) NULL
);

Azure 데이터 기본 사항: Azure에서 비관계형 데이터 탐색

Azure의 비관계형 데이터 제품 탐색 
Azure에서 비관계형 데이터 서비스를 프로비저닝 및 배포하는 방법 살펴보기 
Azure의 비관계형 데이터 저장소 관리

 

Azure의 비관계형 데이터 제품 탐색

  • Azure Table Storage : NoSQL 키-값 모델
    • 파티션으로 분할
    • 파티션키, 행 키
    • 장점
      • 크기 조정이 간단함. 데이터를 삽입하는게 걸리는 시간이 동일
      • 행 삽입이 빠름
      • 파티션키와 행키를 쿼리 조건으로 하면 데이터 검색이 빠름
    • 단점
      • 트랜잭션 업데이트가 보장되지 않아 일관성 고려 필요
      • 참조 무결성이 없어 행간 관계를 외부에서 유지관리
    • 특징
      • TB 단위의 데이터에 적합
      • 빠른 액세스를 위해 비정규화 할 수 있는 데이터 셋 저장
  • Azure Blob Storage
    • 형식 
      • 블록 : 블록 1개의 크기는 최대 100M 까지이며 5만개까지 할 수 있고 4.7T 이상 크기 제공
        블록은 개별 단위의 가장 작은 데이터 양. 자주 변경되지 않은 바이너리를 저장하는데 적합
      • 페이지 : 512Byte. 페이지를 사용하여 VM의 가상 디스크를 구현
      • 추가 : 오직 추가만 가능하며, 업데이트나 삭제 불가능
    • 액세스 계층
      • 핫 : 기본 값. 자주 액세스에 사용 . 
      • 쿨 : 핫보다는 자주 아님. 쿨에서 핫으로 마이그레이션 가능
      • 보관 : 대기시간이 증가. 핫이나 쿨은 몇 ms 지만, 보관은 몇 hour가 걸릴 수도 있음.
  • Azure File Storage
    • SMB 3.0 프로토콜을 사용하여 공유
    • Azure File Storage는 두 가지 성능 계층을 제공합니다.
      • 표준 계층은 데이터 센터에서 하드 디스크 기반 하드웨어를 사용하고,
      • 프리미엄 계층은 SSD(반도체 드라이브)를 사용합니다. 프리미엄 계층은 더 높은 처리량을 제공하지만 더 높은 요금이 청구됩니다.
    • 여러 동시 프로세스가 한번에 쓸 수 있는 파일에는 Azure File Storage를 사용하지 마세요. 여러 작성기는 신중한 동기화가 필요하며, 그렇지 않으면 프로세스에서 변경한 내용을 다른 프로세스가 덮어쓸 수 있습니다. 다른 해결 방법은 쓸 때 파일을 잠근 다음 쓰기 작업이 완료되면 잠금을 해제하는 것입니다. 그러나 이 방법은 동시성에 심각한 영향을 주고 성능을 제한할 수 있습니다.
  • Azure Cosmos DB
    • 다중 모델 NoSQL 데이터베이스 관리 시스템
    • 이러한 모델은 문서, 그래프, 키-값 저장소, 열 패밀리 저장소와 같은 다른 구조에 데이터를 저장
    • 지원 API
      • SQL API : SQL
      • Table API : Table Storage , 키-값모델
      • MongoDB API : 문서
      • Cassandra API : 열 패밀리
      • Gremlin API : 그래프


Azure에서 비관계형 데이터 서비스를 프로비저닝 및 배포하는 방법 살펴보기


Azure의 비관계형 데이터 저장소 관리


Azure 데이터 기본 사항: Azure에서 최신 데이터 웨어하우스 분석 살펴보기

최신 데이터 웨어하우스의 구성 요소 검사 
Azure의 데이터 수집 살펴보기 
Azure의 데이터 저장 및 처리 살펴보기 
Get started building with Power BI 

 

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

  • 데이터 웨어하우스는 조직 내의 여러 다른 원본에서 데이터를 수집합니다.
    그런 다음 이 데이터는 분석, 보고 및 OLAP(온라인 분석 처리)의 원본으로 사용됩니다.
  • 데이터 웨어하우스의 초점은 트랜잭션 성능에 초점을 맞춘 기존 관계형 데이터베이스와 달리 복잡한 쿼리에 대한 답변을 제공하는 것입니다.
  • 데이터 웨어하우스는 ‘빅 데이터’를 처리해야 합니다. 

  • 관계형, 비관계형 데이터 -> 데이터 팩토리 (수집)
    • 데이터 팩토리란?
      • 하나 이상의 데이터 원본에서 데이터를 검색하여 처리에 사용하는 형식으로 변환
      • 구조화된 정보가 들어있음
      • ex. 노이즈 제거
  • 데이터 팩토리 -> 데이터 레이크 스토리지
    • 데이터 레이크란? 
      • 분석을 위해 효율적인 형식으로 보관
      • 원시 데이터가 보관 됨
      • Blob 스토리지의 확장으로 무한에 가까운 파일 시스템
      • Hadoop과 호환 가능
    • 데이터 레이크 스토리지 -> 정규화 된 형식으로 변환 (Azure Synapse)
      • 시냅스란?
        • 분석엔진.
        • 오버헤드 없이 처리하고 로컬로 데이터를 저장 시킬 수 있음
        • MPP(대규모 병렬 처리) 아키텍처를 사용함
          • 이 아키텍처는 제어노드와 컴퓨팅 노드 풀로 구성
            • 제어노드 : MPP의 front-end, 앱과 상호작용함
            • 컴퓨팅 노드 : 컴퓨팅 성능을 제공
        • Polybase 라는 기술 사용하여 구분기호로 데이터 검색
    • 데이터 레이크 스토리지 -> 다른 데이터 형태로 변환 (Azure Databricks)
      • 데이터 브릭스란?
        • Spark 환경으로 빅데이터 처리, 스트리밍 등 데이터 처리 엔진
        • spark는 메모리 내 처리에 최적화 되어 있음. 데이터 로드와 캐시하여 반복적으로 쿼리 가능.
  • 분석 (Azure Analysis)
    • OLAP(온라인 분석 처리) 를 지원
  • MS Power BI

시냅스

  • Azure Analysis Services는 Azure Synapse Analytics와 상당한 기능이 중복
    • Azure Synapse Analytics의 용도:
      • 매우 많은 양의 데이터(테라바이트에서 페타바이트 크기의 데이터 세트).
      • 매우 복잡한 쿼리 및 집계.
      • 데이터 마이닝 및 데이터 탐색.
      • 복잡한 ETL 작업. ETL 는 ‘추출, 변환 및 로드(Extract, Transform, Load)’의 약자이며, 여러 원본에서 원시 데이터를 검색하고 표준 형식으로 변환한 후 저장할 수 있는 방법을 말합니다.
      • 낮거나 중간 정도의 동시성(128명 이하의 사용자)
    • Azure Analysis Services의 용도:
      • 적은 양의 데이터(테라바이트 수준).
      • 상관관계가 있는 여러 소스.
      • 높은 읽기 동시성(수천 명의 사용자).
      • Power BI의 함수를 사용한 자세한 분석 및 데이터 드릴링.
      • 표 형식 데이터를 통한 신속한 대시보드 개발.

Azure의 데이터 수집 살펴보기

  • 데이터 팩토리를 사용하여 수집
    • 데이터 팩토리는 오케스트레이션 엔진을 제공합니다
      • 오케스트레이션은 다른 서비스를 제어하고/연결하여/ 데이터가 흐를 수 있도록 합니다

  • Polybase 를 사용하여 데이터 수집
    • Polybase를 사용하면 데이터가 SQL DB의 테이블 처럼 표시 됩니다

 

  • SQL 서버를 사용하여 데이터 수집
    • xml 파일, 관계형 데이터 우너본 과 같은 것들
  • 데이터 브릭스를 사용하여 데이터 수집
    • blob 스토리지, 데이터레이크, 하둡, sql, 웨어하우스 등 다양한 유형을 포함
    • spark를 기준으로 함


Azure의 데이터 저장 및 처리 살펴보기

  • .Azure Synapse Analytics에서 데이터를 추출 - 로드 - 변환(ELT) 합니다
  • Azure Synapse Analytics는 일반화된 분석 서비스입니다.
  • 데이터를 읽고, 데이터를 처리하고, 분석 및 모델을 생성하고, 결과를 저장할 수 있습니다.
  • 데이터를 처리하는 기술은 2가지가 있습니다.
    • Transact-SQL. : Azure SQL Database에서 사용하는 것과 같은 SQL 언어입니다.
    • Spark : Azure Databricks를 구동하는 데 사용되는 것과 같은 오픈 소스 기술입니다. C#, Scala, Python, SQL 등의 프로그래밍 언어로 Notebook을 사용하여 분석 코드를 작성합니다.
  • Azure Synapse Analytics는 클러스터형 아키텍처를 사용합니다.
    • 클러스터에는 시스템에 대한 진입점으로 사용되는 ‘제어’ 노드가 있습니다.
    • Transact-SQL 문을 실행하거나 Notebook에서 Spark 작업을 시작하면 요청이 제어 노드로 전송됩니다.
    • 제어 노드는 작업을 동시에 실행할 수 있는 작업 세트로 분할하는 병렬 처리 엔진을 실행합니다.
    • 각 태스크는 원본 데이터의 하위 집합에 워크로드의 작업의 일부를 수행합니다.
    • 각 태스크는 실제로 처리를 수행하기 위해 ‘컴퓨팅’ 노드로 전송됩니다. 

 

  • Azure Databricks
    • Spark 기반으로 설계
    • Databricks는 Azure Blob 스토리지, Azure Data Lake Store, Hadoop 스토리지, 플랫 파일, 데이터베이스 및 데이터 웨어하우스를 포함하여 다양한 유형의 스토리지에 저장된 데이터를 처리할 수 있습니다.
    • Databricks는 스트리밍 데이터를 처리할 수도 있습니다.
    • Databricks는 드라이버를 기반으로 하는 확장 가능한 아키텍처를 사용합니다.
      • ‘드라이버’는 특정 데이터 원본을 읽고 쓸 수 있도록 해당 데이터 원본에 연결되는 코드 조각입니다. 드라이버는 일반적으로 Databricks 환경으로 로드할 수 있는 라이브러리의 일부로 제공됩니다. 드라이버는 Azure SQL Database, Azure Cosmos DB, Azure Blob 스토리지 및 Azure Data Lake 스토리지와 같은 여러 Azure 서비스에 더해 MySQL 및 PostgreSQL와 같이 타사에서 생산하는 여러 서비스 및 데이터베이스에서 사용할 수 있습니다.
    • Databricks 애플리케이션은 Notebook 을 사용하여 작성합니다.
      • Notebook에는 일련의 단계(‘셀’)가 포함되어 있으며,
      • 각 단계에는 코드 블록이 포함되어 있습니다.
      • 예를 들어, 하나의 셀에는 데이터 원본에 연결되는 코드가 포함되어 있고, 다음 셀은 해당 원본에서 데이터를 읽어서 이를 메모리 내 모델로 변환하고, 다음 셀은 그래프를 플롯하고, 마지막 셀은 메모리 내 모델의 데이터를 리포지토리에 저장할 수 있습니다

 

  • Azure HDInsight
    • Azure HDInsight는 클라우드의 관리형 분석 서비스입니다.
    • Hadoop을 기반으로 합니다
    • Hadoop Map/Reduce는 대량 데이터 세트에 대한 작업을 병렬로 실행할 수 있는 데이터의 하위 집합에 대한 일련의 작은 작업으로 분할하고 결과를 결합합니다.
    • Hive는 데이터 쿼리, 집계 및 요약을 위한 대화형 SQL 같은 기능을 제공합니다
    • Kafka는 데이터를 실시간으로 수집할 수 있는 클러스터형 스트리밍 서비스입니다.


  • Azure Synapse Analytics 구성 요소
    • Synapse SQL 풀: Transact-SQL을 실행하는 서버 컬렉션입니다.
    • Synapse Spark 풀: 데이터를 처리하기 위해 Apache Spark를 실행하는 서버 클러스터입니다.
    • Synapse Pipelines: Synapse 파이프라인은 한데 모여 작업을 수행하는 작업의 논리적 그룹화입니다. 파이프라인의 작업은 데이터에 대해 수행할 동작을 정의합니다. 예를 들어, 복사 작업을 사용하여 원본 데이터 세트의 데이터를 대상 데이터 세트로 변환할 수 있습니다. 전송되는 동안 데이터를 변환하는 작업을 포함하거나 여러 원본의 데이터를 하나로 결합할 수 있습니다.
    • Synapse Link: 이 구성 요소를 사용하면 Cosmos DB에 연결할 수 있습니다. Synapse Link를 사용하여 Cosmos DB 데이터베이스에 저장된 작동 데이터에 대해 거의 실시간으로 분석을 수행할 수 있습니다.
    • Synapse Studio: Synapse Studio는 데이터 엔지니어가 모든 Synapse Analytics 도구에 액세스할 수 있도록 지원하는 웹 사용자 인터페이스입니다. Synapse Studio를 사용하여 SQL 및 Spark 풀을 만들고, 파이프라인을 정의 및 실행하고, 외부 데이터 원본에 대한 링크를 구성할 수 있습니다.


Power BI