IT 교육

[ms azure] Data enginnering on microsoft azure 교육 수강 후기 (24.09.10)

saay-hi 2024. 10. 21. 10:34

Day1 -데이터 엔지니어 정의 / Azure Synapse Analytics 소개 / Azure Synapse Analytics의 작동 방식에 관하여


데이터 엔지니어란, 일반적으로 여러 형식의 데이터를 사용하여 개별 조직에 적합한 많은 스크립팅 또는 코딩 언어를 통해 많은 작업을 수행함을 일컫음

데이터 유실 및 처리시간때문에 10년 전부터 hadoop대신 apache spark를 많이 씀


이번 교육은 위 사진과 같이 Azure Synapse Analytics 관련 설명 및 실습으로 진행
여기서 언급된 Azure Synapse Analytics란, 데이터 파이프라인을 실행하고 데이터 레이크 또는 관계형 데이터 웨어하우스에서 분석 데이터를 관리하기 위한 기능을 제공하는 Azure 서비스를 뜻함

강의 보충 자료)

기술 연구 및 컨설팅 회사인 Gartner는 조직에서 일반적으로 사용하는 4가지 일반적인 유형의 분석 기술을 정의합니다.
설명적 분석은 “비즈니스에서 무슨 일이 일어나고 있는가?”라는 질문에 답합니다. 이 질문에 대답하기 위해 데이터는 일반적으로 다차원 모델링 및 보고를 위해 관계형 테이블에 기록 데이터가 유지되는 데이터 웨어하우스를 만들어 답변합니다.
진단적 분석은 “왜 일어나는가?”라는 질문에 대한 답을 다룹니다. 데이터 웨어하우스에 이미 있는 정보를 탐색하는 작업도 포함될 수 있지만, 일반적으로 이 유형의 분석을 지원하려면 데이터 자산을 보다 광범위하게 검색하여 더 많은 데이터를 찾아야 합니다.
예측 분석을 사용하면 “이전 추세 및 패턴으로 미루어볼 때 앞으로 무슨 일이 일어날 수 있는가?”라는 질문에 답할 수 있습니다.
예측 분석을 사용하여 실시간 또는 거의 실시간 데이터 분석을 기반으로 자율적인 의사 결정을 내릴 수 있도록 하는 규범적 분석입니다.
파이프라인을 사용하여 데이터 수집 및 변환합니다.

 

그림 하단에 azure data lake storage gen2가 있는데, 줄여서 ADLS라고 불리지만 현장에서는 gen2라고 불림 (gen1도 있긴한데 그건 아예 안 씀)

이 서비스는 blob storage와 비교 대상에 있는데 정리한 바에 의하면,

azure blob storage  azure data lake storage gen2
컨테이너에서 azure azure blob storage  storage gen2사용하도록 <계층 구조>네임스페이스 활성화 계층 구조 / 폴더 형태 / Azure Synapse Analytics,hadoop,Azure Databricks 대규모 데이터 분석 시스템과 호환 / 성능 우세
Azure Storage에서 호스트되는 HDFS 호환 파일 시스템에 데이터를 저장함
또한, 이를 사용하려면 계층 구조 네임스페이스 옵션을 사용해야 함

gen2가 폴더 형식이라 관리에 용이하지만 비용은 더 가격이 올라감

 

<Azure Synapse Analytics의 작동 방식>

1  Azure Synapse Analytics 작업 영역 만들기 및 사용
2  데이터 레이크에서 파일 작업
3  파이프라인을 사용하여 데이터 수집 및 변환
4  SQL을 사용하여 데이터 쿼리 및 조작
5  Apache Spark를 사용하여 데이터 처리 및 분석
6  Data Explorer를 사용하여 데이터 탐색
7  다른 Azure 데이터 서비스와 통합

 

서버리스 SQL풀의 쿼리 결과를 데이터 레이크의 파일로 저장해야 할 경우 CREATE EXTERNAL TABLE AS SELECT 를 사용한다고 하는데 줄여서 CTAS라고 불림

CSV 나 parquet 파일 형식으로 결과도 유지할 수 있음

 

Day2 - apache spark의 정의와 delta lake / 데이터 웨어하우스에 대해


apache spark란, 분산 데이터 처리 프레임 워크. 즉 분산 플랫폼을 의미함

여러가지 vm을 하나의 cluster로 묶어서 관리 가능

 

delta lake란,

• spark에 관계형 데이터 베이스의미체계를 추가하는 오픈 소스 스토리지 계층

• (파일이면서 동시에)ACID 트랜잭션 지원

• 데이터 버전 관리 및 시간 이동 가능

• 스트리밍데이터에도 sql 쓸 수 있도록 지원

• 표준 형식 및 azure 뿐만아니라 다른 클라우드 환경 사용 가능 (호환성 굿)

delta lake의 테이블 형태
1) 관리형 테이블 : 특정 위치 지정 없음. 파일이 "메타스토어" 폴더에 생성됨. 테이블을 삭제하면 파일이 삭제됨 
2) 외부 테이블 : 파일 위치로 정의 -> file format /

*관리형 테이블을 쓸 때는 유의해야 함

실습에선, 스토리지 계정을 만든 후

  • sparkmzswv9d(synapsemzswv9d/sparkmzswv9d)
  • Apache Spark 풀(UK South)
  • synapsemzswv9d


이렇게 세 개의 폴더가 만들어지면 synapse 폴더로 접속하여 studio작업을 진행

실제 실습에서 이용해본 서비스는 data / develop /integrate /monitor / manage
data허브에선 외부 파일도 가져올 수 있었고, develop 허브에선 sql 스크립트를 작성하여 실행할 수 있음
신기하게 integrate에서는 파이프라인을 디자인 가능. 이는 monitor 허브에서 data 파이프라인의 상태를 검토 가능

데이터 웨어하우스란 관계형 데이터 웨어아후스에 data를 로드하는 방식
데이터 흐름은 원본에서 변환되어 sink되는 식

 

Day3 - linked와 sink / spark note 실습 / 하이브리드 트랜잭션 및 분석처리 (HTAP)  / azure synapse link / Azure purview 관하여


연결된 서비스인 linked는 파이프 라인을 외부 데이터 원본과 처리 리소스에 액세스하는데 사용함
sink는 데이터가 로드되는 대상(담을 곳)을 정의하려면 데이터 흐름에 이 종료의 개체를 추가해야 하며 예약된 간격으로 파이프 라인을 실행하려면 트리거를 만들어야 함

하이브리드 트랜잭션 및 분석 처리(HTAP)란,

비즈니스 애플리케이션은 사용자 입력을 처리하고 데이터 읽기 및 쓰기의 혼합에 최적화된 트랜잭션데이터베이스에 데이터를 저장함
애플리케이션 데이터는 대기시간이 짧은 분석 저장소에 자동으로 복제됨
분석 저장소는 트랜잭션 시스템에 영향을 주지 않으면서 데이터 모델링, 분석 및 보고를 지원함

→ 즉, 짧은 대기시간에 빠르게 분석

azure synapse link는 azure cosmos DB와 azure SQL가 있음

첫 번째, 
cosmos DB는 azure consmos DB 컨테이너에 저장된 트랜잭션 데이터인데,
데이터는 컨테이너의 분석 저장소에 동기화되고 azure synapse anaultics의 연결된 서비스를 통해 쿼리됨

 

두 번째 azure SQL을 azure sql 데이터베이스 또는 sql server에 저장된 트랜잭션 데이터로,

트랜잭션은 azure synapse analutocs의 전용 sql풀로 동기화됨

 

나머지 purview나 data bricks에 대해도 설명 들음( 서비스 홍보가 많았음 )