Developers Haven

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

Welcome to DH's Blog
반응형

분류 전체보기 79

Apache Iceberg의 특징과 관리방법에 대하여

지난 시간에 Iceberg의 구조에 대해서 자세히 알아보았는데, 혹시 못봤다면 아래 페이지를 참고하도록 하자. 이번 시간에는 Iceberg의 특징 및 사용법을 알아보려고 한다. (참고로 관련쿼리는 Spark기준으로 작성했다) 2023.10.11 - [[기술공부]/Data] - Apache Iceberg란 무엇일까? Apache Iceberg란 무엇일까? 현재 빅데이터 솔루션 기업에서 Data Architect로 근무하면서, 새로운 기술이 우리 회사의 솔루션에 적용될때마다 자연스레 많은 기술 공부의 기회를 얻고 있다. 작년에 진행한 프로젝트에서 Iceberg developers-haven.tistory.com Iceberg를 관리하는 방법 # Compaction 데이터가 많이 쌓이는 테이블은 메타데이터도 ..

[기술공부]/Data 2023.10.12

Apache Iceberg란 무엇일까?

현재 빅데이터 솔루션 기업에서 Data Architect로 근무하면서, 새로운 기술이 우리 회사의 솔루션에 적용될때마다 자연스레 많은 기술 공부의 기회를 얻고 있다. 작년에 진행한 프로젝트에서 Iceberg 테이블을 사용하게 되었고, 속도나 성능면에서 하이브와의 차이점을 느낄 수 있었다. 또한, 컨퍼런스를 통해 많은 국내외 기업(Ex. 스노우플레이크, 라인)들이 Iceberg를 도입하고 있는 것을 보면서 데이터 생태계에서 Iceberg가 중요한 기술이 되고 있음을 느끼게 되었다. 이번 기회에 Iceberg에 대해서 자세히 알아보고 그동안 배웠던 것들을 정리해보려고 한다. Apache Iceberg의 등장 기존의 Apache Hive에서 대용량 데이터를 다룰 때에 '규모/성능/사용성'에 대한 문제가 존재했..

[기술공부]/Data 2023.10.11

Hive(하이브)에 대하여

Hive(하이브)란 무엇일까? 하이브는 Hadoop ecosystem의 하나로 데이터를 모델링하고 프로세싱하는 '데이터 웨어하우징 솔루션'으로, HDFS와 분산 대용량 데이터에 대해 (SQL과 유사한) hiveQL 언어로 쿼리 질의를 실행할 수 있는 도구이다. 더 쉽게 생각하면 HDFS 안의 파일을 SQL 언어를 통해 조회할 수 있게 해주는 기능이라 이해할 수 있다. 하둡에 대한 정보는 아래 페이지를 참고하도록 하자. Hadoop(하둡)에 대하여 하둡이란 무엇일까? 빅데이터 환경에서 일을 하다보면 Hadoop(하둡)에 대해서 한번쯤은 들어보거나 실제 하둡 환경에서 작업해봤을 것이다. 하둡에 대한 가장 보편적인 정의는 프로그래밍을 통해 developers-haven.tistory.com 하둡 에코시스템이라..

Hadoop(하둡)에 대하여

하둡이란 무엇일까? 빅데이터 환경에서 일을 하다보면 Hadoop(하둡)에 대해서 한번쯤은 들어보거나 실제 하둡 환경에서 작업해봤을 것이다. 하둡에 대한 가장 보편적인 정의는 프로그래밍을 통해 컴퓨터 클러스터에서 대규모 데이터를 분산 저장 및 처리할 수 있는 프레임워크이다. 데이터를 분산 처리하면서 데이터 분석을 위한 비용과 시간을 단축시킬 수 있었고, 하둡의 등장으로 빅데이터 분석이 본격적으로 시작되었다. 시간이 지나면서 데이터를 더 효율적으로 처리하기 위해 하둡 버전도 기능을 업그레이드했고, 22년 말 기준으로 버전3(v3)까지 공개되었다. 하둡의 가장 큰 특징은 '분산 저장과 처리'라고 할 수 있는데 처음 접하는 사람에겐 조금 생소한 표현일 수 있다. 이를 좀 더 자세히 이해하기 위해서 하둡의 버전별..

HDFS(Hadoop Distributed File System/하둡분산파일시스템)에 대하여

1. HDFS(Hadoop Distributed File System) HDFS(하둡분산파일시스템)란? 데이터를 블록(block) 단위로 나뉘어 분산 저장하는 파일 시스템을 의미한다. 버전에 따라 기본적인 블록 사이즈는 64MB~256MB이며 원하는 블록 사이즈로 설정할 수 있다.(아래 예시에서는 블록 사이즈가 128MB이라고 가정하고 설명하겠다) 블록 사이즈 보다 작은 파일은 그대로 저장하며, 블록 사이즈 보다 큰 파일은 블록 단위로 나누어 저장하게 된다.(아래 예시 참고) 블록에 대해서 조금 생소할 수 있지만 아래 그림을 한번 참고해보자. 356MB 크기의 파일이 저장될 때 블록 사이즈가 128MB라면 해당 파일은 3개의 블록(128MB + 128MB + 100MB)으로 나뉘어 저장된다. 조금 더 풀..

Hive MetaStore(메타스토어) 활용방법 - (2)

앞 장에서 하이브 메타스토어(MetaStore)를 활용하는 방법에 대해서 설명했고, 이번에도 이어서 설명해보려 한다. 앞 장에서 설명한 쿼리는 아래 링크(https://developers-haven.tistory.com/45)를 참고하면 된다. Hive MetaStore(메타스토어) 활용방법 - (1) 하이브 메타스토어(MetaStore)에 대한 정보는 아래 링크(https://developers-haven.tistory.com/44)를 참고하길 바라며, 이번에는 메타스토어를 활용하기 위한 SQL 쿼리에 대해 알아보도록 하자. Hive MetaStore(메 developers-haven.tistory.com 1. 테이블 데이터 건수 조회 (참고) HIVE 통계 정보가 생성되지 않은 테이블은 메타 반영이 ..

Hive MetaStore(메타스토어) 활용방법 - (1)

하이브 메타스토어(MetaStore)에 대한 정보는 아래 링크(https://developers-haven.tistory.com/44)를 참고하길 바라며, 이번에는 메타스토어를 활용하기 위한 SQL 쿼리에 대해 알아보도록 하자. Hive MetaStore(메타스토어)에 대하여 메타스토어(MetaStore)란? 테이블과 데이터, 파티션에 대한 모든 정보를 메타스토어에 저장하여 관리하며, 사용자의 요청에 따라 관련된 메타 정보를 제공해준다. ex) Hive 테이블은 schema on read 특성 developers-haven.tistory.com 1. 스키마별 테이블 조회 아래 두개의 JOIN 방식은 동일한 결과를 가져오며, 본인이 편한 식으로 JOIN 쿼리를 작성하면 된다. 참고로 나는 첫번째 방식이 더..

Hive MetaStore(메타스토어)에 대하여

메타스토어(MetaStore)란? 테이블과 데이터, 파티션에 대한 모든 정보를 메타스토어에 저장하여 관리하며, 사용자의 요청에 따라 관련된 메타 정보를 제공해준다. ex) Hive 테이블은 schema on read 특성에 따라 데이터가 저장된 후에 스키마에 맞는 형태로 데이터를 읽어주는데, 이때 메타스토어에서 스키마 정보를 가져온다. schema on read에 대한 개념은 아래 링크(https://developers-haven.tistory.com/43) 참고 schema on read vs schema on write 빅데이터 환경에서는 실시간으로 다양한 형태(정형/비정형 등)의 데이터를 수집함에 따라 Hive의 schema-on-read 특성을 이용하게 되는데, 이에 대해서 더 자세히 알아보도록 ..

schema on read vs schema on write

빅데이터 환경에서는 실시간으로 다양한 형태(정형/비정형 등)의 데이터를 수집함에 따라 Hive의 schema-on-read 특성을 이용하게 되는데, 이에 대해서 더 자세히 알아보도록 하자. 데이터를 읽는 방법에 따라 [schema-on-read] 방식과 [schema-on-write] 방식으로 나눠지게 되는데, 이 두가지 방법의 차이점은 무엇일까? schema-on-read 방식이란? (사전적 의미) 데이터를 읽는 시점에 스키마를 정의(=확인)하는 방식 풀어서 설명하자면 데이터를 저장(Insert)하는 시점에서는 스키마(=테이블 구조)를 확인하지 않고 데이터를 읽는(Read with query) 시점에 테이블 형상대로 읽어준다. 이런 특성 덕분에 우선적으로 데이터를 HDFS에 저장해두고 이후에 스키마를 ..

[Kaggle] Google BigQuery를 활용한 Python 프로그래밍(2)

실습2: SQL쿼리를 이용하여 직접 데이터 조회해보기 이번 실습에서는 BigQuery내의 'openaq'라는 데이터 셋을 이용해볼 것이고, 해당 데이터셋은 공기질과 관련된 데이터를 가지고 있다. 먼저, 지난번 실습과 동일하게 BigQuery 패키지로부터 데이터셋을 불러오는 것부터 시작해보도록 하자. (참고) 데이터셋을 불러오는 과정이 처음에는 생소할 수 있지만 bigquery 패키지 실습을 하다보면 익숙해질 것이니 걱정하지 않아도 된다. 그리고 실제 본인이 하는 작업에 따라서 내부 데이터셋을 이용할 수도 있고, excel이나 csv와 같은 문서의 데이터를 이용할 수 있기 때문에 데이터셋을 불러오는 과정보다 데이터를 활용하는 부분을 신경써서 보는 것을 추천한다! from google.cloud import..

반응형