데이터 엔지니어링

    [빅데이터를 지탱하는 기술] 대규모 분산 처리의 프레임워크 # 4

    쿼리엔진 데이터 마트 구축의 파이프라인 위의 예제는 Hive와 Presto를 사용한 간단한 데이터 파이프라인입니다. 우선 분산 스토리지에 저장된 CSV, 텍스트 데이터 등을 Hive를 통하여 구조화하고 열 지향 스토리지 형식으로 저장합니다. 이때 Hive에서 만든 테이블의 정보는 Hive 메타 스토어에 저장됩니다. SQL-on-Hadoop의 쿼리엔진에서도 공통의 테이블 정보를 참고합니다. 그리고 열 지향 스토리지에서 Presto의 쿼리를 이용하여 구조화된 데이터를 결합, 집계하는 과정을 거쳐 비정규화 테이블로 만들어 데이터 마트로 내보냅니다. Hive에 의한 구조화 데이터 작성 Hive를 비롯한 대부분의 SQL-on-Hadoop의 쿼리 엔진은 MPP 데이터베이스처럼 데이터를 내부로 가져오지 않아도 텍스트..

    [빅데이터를 지탱하는 기술] 대규모 분산 처리의 프레임워크 # 3

    Spark Apache Spark는 Hadoop의 MapReduce 보다 더 효율적인 데이터 처리를 하기 위해 개발이 진행되고 있는 독립된 프로젝트입니다. 기존의 MapReduce와의 차이로는 대량의 메모리를 활용하여 데이터 처리를 빠르게 진행한다는 점입니다. MapReduce가 개발되는 시절에는 처리해야 할 데이터의 크기에 비하여 훨씬 적은 메모리를 사용할 수 밖에 없었고 데이터 처리를 대부분 디스크 I/O에 사용하였습니다. Tez의 경우 또한 MapReduce의 불필요한 단계를 감소하였지만 기본적으로 디스크를 사용합니다. Spark에서는 중간 데이터를 디스크에 쓰지 않고 메모리에 보존합니다. 현재는 메모리의 발전으로 메모리가 취급할 수 있는 데이터의 양이 증가하여 가능한 많은 데이터를 메모리에 올려 ..

    [빅데이터를 지탱하는 기술] 대규모 분산 처리의 프레임워크 # 2

    Hadoop Hadoop은 현재 빅데이터를 대포하는 시스템입니다. 사실 Hadoop은 단일 소프트웨어가 아니라 분산 시스템을 구성하는 다수의 소프트웨어로 이루어진 집합체입니다. 분산 시스템(Hadoop)의 구성요소 HDFS(Hadoop Distributed File System) : 하둡 분산 파일 시스템 YARN(Yet Another Resource Negotiator) : 리소스 관리자 MR(Map Reduce) : 분산 데이터 처리(distributed data processing : 맵리듀스) 그 외의 프로젝트들은 Hadoop과 독립적으로 개발되어 Hadoop을 이용한 분산 애플리케이션으로 동작합니다. 모든 분산 시스템이 Hadoop에 의존하는 것이 아니라 Hadoop을 일부 사용하거나 전혀 이용..

    [빅데이터를 지탱하는 기술] 대규모 분산 처리의 프레임워크 # 1

    구조화 데이터와 비구조화 데이터 SQL로 데이터를 집계하는 경우 테이블의 컬러명, 데이터형태, 테이블의 관계를 스키마로 정하게 됩니다. 이때 스키마가 명확하게 정의된 데이터를 구조화 데이터(structured data : 정형데이터)라고 합니다. 빅데이터는 반드시 구조화된 데이터만 존재하지 않습니다. 텍스트 데이터, 동영상 데이터, 음성 데이터 등등 스키마가 없는 데이터를 비구조화 데이터(unstructed data : 비정형데이터)라고 합니다. 비구조화된 원시데이터를 분산 스토리지에 저장하고 그것을 분산시스템으로 처리하는 것이 데이터 레이크의 개념이고 이런 비구조화된 데이터를 데이터 가공, 스키마 정의를 통하여 구조화된 데이터로 바꾸어 데이터 웨어하우스로 옮겨 데이터 분석작업을 할 수 있습니다. 스키마..

    [빅데이터를 지탱하는 기술] 빅데이터의 탐색 # 3

    데이터 마트의 기본구조 데이터 분석을 위하여 BI도구(Tableau, Redash, PowerBI, Looker ..)에서 데이터를 시각화하려면 시각화에 필요한 정보를 모아놓은 데이터 마트가 필수입니다. 데이터 마트의 설계에 기본이 되는 개념을 정리합니다. 시각화에 적합한 데이터 마트 만들기(OLAP) 데이터 분석, 데이터 시각화에서 가장 핵심적인 개념은 OLAP(Online Analytical Processing)입니다. OLAP는 사용자가 정보에 직접 접근하여 대화식으로 정보를 분석하고 의사결정에 활용하는 과정을 말합니다. OLAP의 개념을 몰라도 BI도구를 사용할 수 있지만 데이터 마트를 구축할 때는 지식이 필요해 보입니다. 다차원 모델과 OLAP 큐브 데이터 웨어하우스를 모델링할 때 사실(Fact..

    [빅데이터를 지탱하는 기술] 빅데이터의 탐색 # 2

    열 지향 스토리에 의한 고속화 데이터베이스의 지연을 줄이기 데이터양이 증가함에 따라 집계에 시간은 길어집니다. 데이터 집계에 몇 분 이상의 시간이 소모된다면 다음 작업에 영향을 주게 되고 대기 시간이 늘어나 전반적으로 작업이 느려지는 상황이 나오게 됩니다. 짧은 시간안에 데이터를 집계하려면 아래의 시스템을 만들어 적용해야 합니다. 메모리를 초과하는 대량의 데이터를 짧은 시간에 집계하려면 데이터를 미리 집계에 적합한 형태로 변경해야합니다. 수집한 대량의 데이터를 처리할 수 있는 데이터 레이크 혹은 데이터 웨어하우스에 적재를 하고 원하는 데이터를 추출하여 데이터를 집계합니다. 그리고 데이터 마트를 구축하여 짧은 시간에 응답을 얻을 수 있도록 합니다. 데이터 처리의 지연 일반적으로 데이터 처리의 응답이 빠르다..