[Cloud] 데이터 플랫폼의 기초와 오픈 소스 DB 활용(3주차)

곽경규·3일 전

1. 클라우드 기반의 데이터 플랫폼

<학습 목표>

  1. 데이터의 종류활용 방법 등을 살펴 본다.
  2. 관계형 데이터비관계형 데이터의 차이를 이해하고 활용
    방안에 대해서 알아본다.

1.1 데이터의 정의와 구분

데이터는 사실, 숫자, 설명, 개체의 컬렉션이며 저장 방식에 따라 다음과 같이 구분됩니다.

  • 구조화(Structured): 행과 열로 구성된 테이블 형태입니다.
  • 반구조화(Semi-structured): 데이터 내에 구조(필드)가 정의된 형태로, JSON, AVRO, ORC, Parquet 등이 대표적입니다.
  • 비구조화(Unstructured): 정해진 형식이 없는 데이터입니다.

1.2 트랜잭션(OLTP) vs 분석(OLAP) 워크로드

  • OLTP (온라인 거래 처리): 조직의 활동을 추적하는 트랜잭션 데이터를 관리하며, ACID(원자성, 일관성, 격리성, 영속성) 특성을 유지하는 것이 핵심입니다.
  • OLAP (온라인 분석 처리): 대량의 데이터를 입체적으로 분석하여 요약, 추세, 비즈니스 정보를 제공하며, 데이터는 큐브(Cube)에 주기적으로 로드 및 집계됩니다.

1.3 처리 방식: 일괄 처리(Batch)와 스트림 처리(Stream)

  • 일괄 처리: 데이터 요소를 그룹으로 수집하여 향후 한꺼번에 처리하는 방식입니다.
  • 스트림 처리: 각 새 데이터가 도착하는 즉시 실시간으로 처리합니다.

1.4 비관계형 데이터와 NoSQL의 특징

  • 비관계형 데이터(NoSQL)는 유연한 데이터 처리가 필요한 최신 IT 환경에서 비중이 커지고 있습니다.
  • 주요 특징: 테이블 형식이 아닌 여러 스키마를 포함할 수 있으며, 동일 컬렉션 내 엔터티들이 서로 다른 필드를 가질 수 있습니다.
  • 유형: 키/값 저장소, 문서 기반, 열 패밀리, 그래프 데이터베이스 등이 있습니다.
  • 사용 사례: IoT 및 텔레매틱스(실시간 처리), 소매 및 마케팅(문서 스토리지), 게임(낮은 대기 시간), 웹 및 모바일 클릭 분석 등

2. 클라우드 Open Source Database

<학습 목표>

  1. Open Source 기반의 Database를 알아본다.
  2. 클라우드 기반에서 Open Source 기반의 Database가 어떻게
    동작하는지 살펴본다.
  3. 대표적인 Open Source Database인 MySQL을 설치해 본다.

2.1 Azure에서 제공하는 오픈 소스 DB 서비스

Azure는 익숙한 커뮤니티 에디션 엔진을 기반으로 완전 관리형 PaaS 서비스를 제공합니다.

  • Azure Database for PostgreSQL: PostgreSQL 커뮤니티 버전 기반
  • Azure Database for MySQL: MySQL 커뮤니티 에디션 기반의 PaaS 구현
  • Azure Database for MariaDB: Azure에 최적화된 MariaDB 커뮤니티 버전 기반

2.2 클라우드 DB의 장점 및 구성 요소

클라우드에서 오픈 소스 DB를 사용하면 안정성, 보안, 확장성 면에서 큰 이점을 얻을 수 있습니다.

  • 주요 장점: 완전 관리형 서비스, 추가 비용 없는 고가용성 기본 제공, 지능형 성능 확장(최대 16TB 스토리지 및 20K IOPS), 업계 최고의 보안(Advanced Threat Protection) 제공.
  • 구성 요소: 구독, 리소스 그룹, 서버 이름, 지역, 컴퓨팅+스토리지 설정, 방화벽 규칙 등이 필요합니다.

2.3 데이터베이스 연결 정책

애플리케이션이 Azure SQL 데이터베이스에 연결되는 방식은 두 가지로 나뉩니다.

  • 리디렉션 정책: 첫 번째 요청만 게이트웨이를 거치고, 이후 모든 요청은 데이터베이스로 직접 전송되어 성능상 유리합니다.
  • 프록시 정책: 모든 요청이 게이트웨이를 통과하여 전달됩니다.

3. 클라우드 데이터 플랫폼의 관리 도구

<학습 목표>

  1. 클라우드 플랫품에서 제공하는 Database를 다룰 수 있는
    다양한 관리 도구들을 살펴본다.
  2. 관리도구들을 사용해서 Database에 직접 접속하고 관리하는
    방법을 살펴 확인해 본다.

3.1 데이터 관련 역할별 작업 내용

데이터를 다루는 역할에 따라 사용하는 도구와 목적이 달라집니다 .

  • 데이터베이스 관리자(DBA): DB 관리, 보안 구현, 백업, 사용자 액세스 및 성능 모니터링을 담당합니다.
  • 데이터 엔지니어: 데이터 파이프라인 구축, 수집 스토리지 관리, 분석을 위한 데이터 준비를 수행합니다.
  • 데이터 분석가: 데이터 인사이트 제공, 시각적 보고서 작성, 분석용 데이터 모델링을 담당합니다.

3.2 주요 관리 및 시각화 도구

Azure Data Studio: Windows, macOS, Linux를 지원하는 데이터 서비스 관리용 그래픽 인터페이스입니다.

  • SSMS (SQL Server Management Studio): Windows용 포괄적인 데이터베이스 관리 도구입니다.
  • Azure Portal / CLI: 리소스 프로비저닝 및 자동화 스크립팅에 사용됩니다.
  • Azure Synapse Studio: 데이터 수집 및 자산 관리를 위한 통합 포털입니다.
  • Power BI (Desktop/Portal): 데이터 시각화, 보고서 및 대시보드 작성을 위한 도구입니다.
  • MySQL Workbench: MySQL 데이터베이스 쿼리 및 관리를 위해 사용됩니다.

4. 학습 소감 및 결론

3주차 수업을 통해 클라우드 환경에서 데이터를 관리하는 것이 단순히 저장하는 것을 넘어 얼마나 전략적인 선택이 필요한지 깨달았습니다. 1-2주차에 배운 서버 인프라 위에, 이제는 비즈니스 목적에 따라 관계형(SQL)비관계형(NoSQL) 중 적절한 플랫폼을 설계하는 눈을 기를 수 있었습니다.

특히 Azure에서 제공하는 오픈 소스 DB 서비스들이 고가용성과 보안을 기본으로 제공한다는 점이 인상 깊었으며, 실습을 통해 MySQL Workbench로 직접 DB를 핸들링해 본 경험은 데이터 엔지니어링의 기초를 다지는 소중한 시간이었습니다.

다음 시간에는 이 데이터를 실제로 어떻게 쿼리하고 조작하는지 더 깊게 파고들어 보겠습니다!

0개의 댓글