ADP 공부하기 6

데이터 처리 프로세스

데이터 통합 및 연계 기법

데이터 연계 및 통합 유형(동기화 기준)

  • 계 통합시 일괄(BATCH) 작업, 비동기식 근접 실시간(NRT), 또는 동기 실시간 방식 혼용

  • 실시간 통합 : 관심 대상 영역 상태에 대한 빠른 파악 및 대응 가능

  • 일괄 작업 : ETL기능을 통해 정기적,반복적으로 대량의 데이터를 획득해 ODS 구성, 이후 데이터 웨어하우스나 마트를 구성 후 OLAP 정형/비정형 질의를 통해 경영 분석

  • 동기식 실시간 데이터 통합 : 생산 및 운송 장비 센서들로부터 데이터를 실시간으로 획득해 상태를 모니터링, 작업을 통제(Complex event Processing)

  • 최근 데이터 중복을 허용하는 분산 저장 환경구성을 통해 높은 확장성을 확보하는 빅데이터 저장 인프라스트럭처의 활용과 병행 설계되는 사례도 등장

  • ETL기술은 최근 ODS,MDM 허브, 플랫폼, 하둡, 클라우드 환경 등 다양한 데이터 통합 메커니즘 지원

  • 최근 비정형, 준정형 데이터 중요성 부각 -> 정형 데이터로 변환은 빅데이터의 주요한 기술적 특성

  • 빅데이터 기술을 사용하지 않으면 확장성과 유연성을 확보하기 어려움, 기업 IT투자를 중장기적으로 보호할 수 없음.

대용량의 비정형 데이터

로그

  • 로그는 기업의 대표적 비정형 데이터
  • 수집 시스템 : 아파치 Flume-NG,Chukwa, 페이스북 Scrive

대용량 비정형 데이터 수집 시스템 특징

  1. 초고속 수집 성능과 확장성

    • 실시간으로 발생하는 대용량 데이터를 놓치지 않고 수집, 서버 수만큼 에이전트 수를 늘리는 방식으로 쉽게 확장
  2. 데이터 전송 보장 메커니즘

    • 수집된 데이터는 분산 파일시스템, DB, NoSQL 등에 저장, 전송 안정성 수준 제어 가능
    • 여러 단계를 거치는데 단계별로 신호를 주고 받아 이벤트의 유실 방지
    • 각 방식은 성능과 안정성이라는 트레이드 오프가 존재
  3. 다양한 수집과 저장 플러그 인

    • 데이터 저장소의 경우 하둡 저장 기능, NoSQL을 포함한 다양한 DB저장 플러그인 제공
  4. 인터페이스 상속을 통한 애플리케이션 확장

    • 비즈니스 용도에 맞게 수정할 수 있어야 한다.


대규모 분산 처리

하둡

  • MapReduce시스템과 HDFS를 핵심 구성요소로 가짐
  • 여러 대의 컴퓨터를 하나의 시스템인 것처럼 묶어 빅데이터를 저장 처리하는 자바 기반 오픈소스 프레임워크
  • 수십GB에서 수십TB에 이르거나 대규모의 컴퓨팅 및 연산 작업이 필요하다면 하둡 사용
  • 비공유 분산 아키텍처 제공

하둡 특징

  1. 선형적인 성능과 용량 확장
    • 여러 대의 서버로 클러스터를 만들어 하둡을 구축할 때 서버의 대수에 제한 없고, 최소 5개
    • 비공유 분산 아키텍처 시스템 서버를 추가하면 연산 기능과 저장 기능이 서버의 대수에 비례
  2. 고장 감내성
    • HDFS에 저장되는 데이터는 3중복제가 되어 데이터 유실 방지
    • 맵리듀스 작업 중 장애가 생기면 장애가 발생한 특정 테스크만 재실행 가능
  3. 핵심 비즈니스 로직에 집중
    • 맵리듀스는 맵과 리듀스라는 2개의 함수만 구현
    • 알고리즘 및 비즈니스 로직 개발자는 분석 방식만 이해하고 목적에 맞게 간단한 코드만 작성하면 데이터의 대소에 신경 안써도됨
    • 오직 비즈니스 로직에 집중하도록 장애에 자동복구, 확장성 및 성능도 하둡이 내부적으로 최적화함
  4. 풍부한 에코시스템
    1. zookeeper: 서버들 간에 상호 조정이 필요한 다양한 서비스 제공
    2. oozie : 작업을 관리하는 WORKFLOW 및 코디네이터 시스템
    3. Hbase : HDFS 기반의 컬럼 NoSQL
    4. Pig : 복잡한 맵리듀스 프로그래밍을 대체할 Pig Latin 제공
    5. Hive : 데이터 웨어하우스, 테이블 단위 저장, SQL쿼리 지원
    6. Mahout : 데이터 마이닝 알고리즘을 구현한 오픈 소스 라이브러리
    7. Hcatalog : 테이블 및 스토리지 관리
    8. Avro : RPC와 데이터 직렬화를 지원하는 프레임 워크
    • RPC(Remote Procedure Call)
    1. Chukwa : 분산 환경에서 생성된 데이터를 HDFS에 안정적으로 저장하는 플랫폼
    2. Flume : 소스서버에 에이전트가 설치, 에이전트로부터 데이터를 전달받는 콜렉터로 구성
    3. Scribe : 페북에서 개발된 수집 플랫폼, Chukwa와 달리 중앙집중서버로 전송
    4. Sqoop : 대용량 데이터 전송 솔루션, HDFS, RDBMS, DW, NoSQL 등 다양한 저장소에 신속하게 전송할 수 있는 방법 제공
    5. Hiho : Sqoop과 같은 대용량 데이터 전송 솔루션, SQL지정, JDBC 이넡페이스 지원
  • 다양한 응용기술들이 오픈소스 프로젝트의 형태로 제공, 이를 바탕으로 하둡 에코시스템 구성
  • 맵리듀스와 HDFS는 빅데이터 처리와 분산을 위한 기반 기술로 에코시스템의 코어 프로젝트
  • YARN은 맵리듀스의 단점을 극복하기 위해 하둡2.0부터 제공되는 프로젝트로 자원 관리 프레임워크 지원
  • Flume-NG : 데이터가 발생하는 애플리케이션 단계, 데이터 수집, 데이터 저장, 저장소 보관 단계로 이루어져 설정하지 않으면 네번째 단계는 하둡이 저장소로 사용

데이터 연동

개요 : DB를 대상으로 대규모 분산 처리를 하는 것은 심한 부하를 야기 -> 데이터를 하둡으로 복사 후 하둡에 대규모 분산 처리를 함 이 때 데이터 연동 기능을 수행하는 대표적인 오픈 소스 솔루션이 Sqoop

Sqoop

  • MYSAL, PostgreSQL, 사이베이스 등 JDBC를 지원하는 대부분의 관계형 DB와의 연동 지원
  • 일부 NOSQL DB와도 연동 가능
  • 맵 인풋 포맷터 사용
  • 데이터 이동을 맵리듀스로 처리, 장애 허용 능력과 병렬 처리 기능
  • IMPORT명령어로 RDBMS의 데이터를 HDFS로 옮기고 EXPORT명령어로 HDFS의 데이터를 RDBMS로 옮길 수 있다.
  • 스크립트 문법을 이용해 하둡의 결과 데이터를 다시 관계형 DB로 적재할 수 있다.

대용량 질의 기술

개요 : 친숙한 SQL을 이용해 쉽게 처리하고 분석하는 HIVE 등장 하둡과 하이브는 대용량 데이터를 배치 처리하는데 최적화되어 있지만 실제 업무에서는 데이터를 실시간으로 조회하거나 처리해야 하는 요구사항이 많음 -> 실시간 SQL 질의 분석 기술인 SQL on 하둡 등장

스쿱 스크립트

  1. 데이터를 가져올 데이터베이스 정보 입력
  2. 데이터에 대한 SQL 입력
  3. 동시에 몇 개의 프로세스를 실행하여 데이터를 가져올지 지정, 적절한 개수 지정해야 함
  4. 데이터 베이스의 키 칼럼 입력
  5. 가져운 데이터를 저장할 하둡상의 경로 지정
-- connect jbbc:mysql://192.168.10.100:3306/sakila
-- username Hadoop
-- password hadoop00

- query 'select * from city where city like 'k%' '
# k로 시작하는 행에 대한 모든 열을 출력

- m2

- split-by city_id

- target-dir/user/hadoop

SQL on 하둡

  • 아파치 드릴 : 맵알이 주축인 프로젝트, 드레멜의 아키텍처와 기능을 동일하게 구현한 오픈 소스 버전 드레멜
  • 아파치 스팅거 : 호튼웍스에서 개발, 기존의 하이브 코드 최대한 이용
  • 임팔라 : 클라우데라에서 개발 주도
  • 샤크 : 인메모리 기반의 대용량 데이터웨어하우스 시스템, 하이브와 호환
  • 아파치 타조 : 고려대 대학원에서 시작, 그루터가 합류해 개발 진행
  • 호크 : EWC에서 분사한 피보탈에서 개발, 상용과 커뮤니티 2가지 버전
  • 프레스토 : 페북에서 개발, 데이터웨어 하우징 엔진, 아파치 라이선스로 공개됨
updatedupdated2021-02-032021-02-03
Load Comments?