Developers Haven

(DH)블로그는 개발자들이 기술 정보를 찾아볼 수 있는 안식처가 되고 싶음을 희망하여 시작하게 되었습니다. 공부한 내용과 성장 과정을 기록해두었으니 편히 둘러보시길 바랍니다.

Welcome to DH's Blog
반응형

분류 전체보기 79

Apache Spark 자료구조 - RDD

지난 시간에 스파크의 등장배경과 아키텍처 구조에 대해 살펴보았다. 아직 보지 못했다면 아래 페이지를 참고하도록 하자. 이번 시간에는 스파크 자료구조 중 하나인 RDD에 대해서 자세히 알아보도록 하자. 2023.11.09 - [[기술공부]/BigData] - Apache Spark에 대하여 - 등장 배경과 아키텍처 Apache Spark에 대하여 - 등장 배경과 아키텍처 대규모 빅데이터를 저장하고 처리하기 위해 Hadoop이 등장하게 되었지만 시간이 지나면서 성능적으로 아쉬운 부분이 생기게 되었다. 하둡의 이러한 부분을 보완하기 위해 등장한 것이 Apach Spark이 developers-haven.tistory.com 🔎 Spark Application 구현방법 Spark v1 → RDD Spark v2..

Apache Spark에 대하여 - 등장 배경과 아키텍처

대규모 빅데이터를 저장하고 처리하기 위해 Hadoop이 등장하게 되었지만 시간이 지나면서 성능적으로 아쉬운 부분이 생기게 되었다. 하둡의 이러한 부분을 보완하기 위해 등장한 것이 Apach Spark이며, 이번 시간에는 스파크의 등장 배경과 구조에 대해 알아보도록 하자. 1. Apache Spark의 등장 배경 🧩 디스크로부터 데이터를 읽어온다 → Map task에서 데이터를 (key, value) 형태로 반환한다 → Reduce task에서 중복된 key값을 가진 데이터를 제거하고 원하는 데이터를 추출한다 → 마지막 결과를 다시 디스크에 저장한다 하둡의 맵리듀스(mapReduce)는 디스크에서 작업을 처리하여 디스크 I/O 성능이 좋지 못했다. 하둡의 이러한 문제점을 보완..

Apache Iceberg vs Apache Hive 차이점 - (2)

지난 시간에 Hive와 Iceberg의 차이점에 대해서 간단히 살펴보았다. 이번 시간에는 조금 더 기술적으로 어떤 부분이 다른지 알아보도록 하자. [참고] 지난시간 내용 2023.11.03 - [[기술공부]/Data] - Apache Iceberg vs Apache Hive 차이점 - (1) Apache Iceberg vs Apache Hive 차이점 - (1) 여러 시간에 걸쳐 Apache Iceberg의 구조와 특징에 대해서 하나씩 살펴보았다. 공부를 하다보니 문득 'Iceberg가 Hive 대비 어떤 장점을 가지고 나온 것일까'하는 궁금증이 생겼다. 그래서 이번 시간에 developers-haven.tistory.com Hive와 차별되는 Iceberg 만의 특징 1. Snapshot 스냅샷은 특정..

[기술공부]/Data 2023.11.03

Apache Iceberg vs Apache Hive 차이점 - (1)

여러 시간에 걸쳐 Apache Iceberg의 구조와 특징에 대해서 하나씩 살펴보았다. 공부를 하다보니 문득 'Iceberg가 Hive 대비 어떤 장점을 가지고 나온 것일까'하는 궁금증이 생겼다. 그래서 이번 시간에는 Iceberg와 Hive의 기술적 차이점에 대해서 알아보겠다. 먼저, Hive와 Iceberg에 대해서 간단히 살펴보자. Apache Hive 2007년 Facebook에 의해 개발되어 2008년부터 오픈소스로 공개되었다. Hadoop ecosystem의 하나로 데이터를 모델링하고 프로세싱하는 '데이터 웨어하우징 솔루션'이다. SQL과 유사한 HiveQL를 이용하여 데이터 분석을 쉽게 하도록 만들어주고, HiveQL를 실행하면 내부에서 자동으로 MapReduce Job으로 변환하여 실행해준..

[기술공부]/Data 2023.11.03

Apache Iceberg : Copy-on-Write(cow) vs Merge-on-Read(mor)

Iceberg는 데이터 write(= delete, update, merge) 작업 수행시 적용할 수 있는 테이블 옵션이 존재한다. Iceberg v1 포맷에서는 copy-on-write 방식을 기본으로 제공했고, v2 포맷에서는 copy-on-write, merge-on-read 두 가지 방식을 지원해준다. 이번 시간에는 두 방식에 대한 설명과 각 장단점을 알아보도록 하자. Copy-on-Write(cow) 옵션이란? 데이터 변경(업데이트 or 삭제)이 발생하면 변경 내용을 적용해서 새로운 데이터 파일(Datafile)을 생성한다. 기존 data file + 변경 내용 ➔ 새로운 data file 생성 cow 옵션의 장단점 (1) 장점 다른 데이터 처리 작업 없이 바로 파일을 읽으면 되므로 read 성..

[기술공부]/Data 2023.10.30

Apache Iceberg DML, 메타데이터 사용법

지난 시간에 테이블을 만들고 변경하는 DDL 쿼리문에 대해서 살펴보았다. 만약 아직 내용을 보지 못했다면 아래 페이지를 참고하도록 하자. 이번에는 실제 테이블 데이터를 사용하기 위한 DML 쿼리문과 메타데이터 활용법에 대해서 알아볼 예정이다. [참고 - Iceberg DDL쿼리문] 2023.10.13 - [[기술공부]/Data] - Apache Iceberg DDL 쿼리 사용법 - Create and Alter Table Apache Iceberg DDL 쿼리 사용법 - Create and Alter Table 이번에는 Iceberg 테이블 포맷에서의 테이블을 만들고 변경하는 DDL 쿼리 구문에 대해 알아보도록 하자. 참고로 나는 Spark에서 Iceberg 테이블을 사용하는 기준으로 쿼리를 정리했으므로..

[기술공부]/Data 2023.10.30

SQL튜닝 - 인덱스의 종류에 대하여 (클러스터/비클러스터 인덱스)

우리는 지난 시간에 인덱스가 무엇인지에 대해서 알아보았고, 만약 못봤다면 아래 페이지를 참고하도록 하자. 한마디로 요약하자면 인덱스는 데이터의 검색 속도를 향상시켜주는 자료 구조로, 단일 혹은 여러 개의 컬럼을 이용하여 인덱스를 생성할 수 있다. 이번 시간에는 인덱스의 종류에 대해서 알아보도록 하자. [참고] 지난 시간 내용 - 인덱스에 대하여 2023.10.27 - [[기술공부]/Data] - SQL 튜닝 - 인덱스에 대하여 SQL 튜닝 - 인덱스에 대하여 DB 업무를 하다보면 같은 결과를 보여주는 쿼리라도 어떤 문법과 실행 방식을 사용하는지에 따라 쿼리 성능이 매우 달라진다. 특히 빅데이터 솔루션 회사에 근무를 하다보니 데이터 용량이 큰 developers-haven.tistory.com 인덱스의 종..

[기술공부]/Data 2023.10.27

SQL 튜닝 - 인덱스에 대하여

DB 업무를 하다보면 같은 결과를 보여주는 쿼리라도 어떤 문법과 실행 방식을 사용하는지에 따라 쿼리 성능이 매우 달라진다. 특히 빅데이터 솔루션 회사에 근무를 하다보니 데이터 용량이 큰 테이블을 자주 조회해야하고, 다른 사용자들의 작업에도 영향이 가지 않아야해서 쿼리 성능에 대한 중요성을 더 체감하는 것 같다. 그래서 이번 기회에 SQL 튜닝에 대해서 자세히 공부를 시작하게 되었다. SQL 튜닝이란? SQL 튜닝이란 명령문(query)을 수행할 때 결과를 얻기 위한 수행시간을 단축시키고 리소스 사용량을 줄여주도록 만드는 과정을 의미한다. 이때, 리소스 사용량은 CPU, 메모리와 같은 IT 자원을 의미하며 이러한 자원 사용량을 줄이면서 결과를 얻는 것이 목표이다. 튜닝을 위한 방법을 알기 전에 튜닝에 필요..

[기술공부]/Data 2023.10.27

Ubuntu에서 Hadoop 설치하기

데이터 분야에서 업무를 진행하면서, 평소 리눅스 운영체제에 대해 배워보고 싶다는 생각을 갖고 있었다. 현재 재직중인 회사에서는 DA(데이터 아키텍트)가 운영팀 & 엔지니어링팀(개발팀)으로 나뉘며 나는 개발팀에 소속되어 있다. 하지만 개발팀 특성상 실제 서버단의 데이터 수집은 TA(테크니컬 아키텍트)가 담당하고, DA는 수집된 데이터를 처리하고 가공해주는 부분을 담당하고 있다. 업무를 하면서 서버단에 직접 접근해서 작업해보고 싶다는 생각이 있었고 이번 기회에 시작하게 되었다. 익숙하지 않은 부분이어서 어려움은 있으나 하나씩 천천히 배워보고자 한다. Ubuntu는 Linux 커널을 기반으로 하는 운영 체제 시스템으로 이번 시간에는 Ubuntu에서 하둡을 설치하는 과정을 알아보겠다. 1. Java 설치하기 먼..

Apache Iceberg DDL 쿼리 사용법 - Create and Alter Table

이번에는 Iceberg 테이블 포맷에서의 테이블을 만들고 변경하는 DDL 쿼리 구문에 대해 알아보도록 하자. 참고로 나는 Spark에서 Iceberg 테이블을 사용하는 기준으로 쿼리를 정리했으므로, Spark가 아닌 다른 엔진을 사용하는 경우에는 공식 문서를 참조하도록 하자. # Create 1. Schema 생성 CREATE DATABASE IF NOT EXISTS [스키마]; -- IF NOT EXISTS : 해당 스키마가 존재하지 않는 경우에만 CREATE 쿼리문을 실행하도록 만드는 조건으로, 생략 가능하다. 2. Table 생성 (1) 파티션 유무에 따른 DDL문 case1) 파티션이 없는 경우 -- Iceberg CREATE TABLE [스키마].[테이블명] ( id bigint COMMENT ..

[기술공부]/Data 2023.10.13
반응형