BigData
-
[Parquet] Dictionary Encoding 알아보기BigData/Parquet 2024. 3. 24. 10:26
- 목차 들어가며. 이번 글에서는 Parquet 의 Dictionary Encoding 에 대해서 알아보려고 합니다. Dictionary Encoding 은 큰 길이의 String 을 Number 와 같은 숫자로 표현할 수 있는 방식입니다. 예를 들어, "Python", "Java" "Golang" 과 같인 3개의 텍스트를 Unicode 로써 표현하게 되면 문자의 길이만큼 4byte * length 의 용량을 차지하게 되겠죠 ? 하지만 이를 나열 순서에 따라 0, 1, 2 로 표현하게 되면 데이터의 압축이 가능해집니다. 이러한 방식으로 문자열을 bit 레벨로 압축시켜 표현하는 방식을 Dictionary Encoding 이라고 부릅니다. Encoding ? 인코딩이란 원본 데이터를 변형하는 것을 의미합니다..
-
[Apache Arrow] Pyarrow Table 알아보기BigData/Parquet 2024. 3. 8. 22:42
- 목차 들어가며. 이번 글에서는 Pyarrow 의 Table 에 대해서 알아보려고 합니다. 여러 예제와 함께 설명을 진행할 예정이구요. python 3.10 버전과 pyarrow 16.0.0 버전을 사용합니다. 먼저 사용할 데이터를 간단히 소개드립니다. Kaggle 에서 제공되는 Movie Industry 데이터셋을 사용하구요. 영화와 관련된 메타데이터들이 csv 파일 형식으로 제공됩니다. https://www.kaggle.com/datasets/danielgrijalvas/movies?select=movies.csv Movie Industry Four decades of movies www.kaggle.com Table 생성하기. kaggle 사이트로부터 내려받은 csv 파일은 /tmp/movie.c..
-
[Avro] Avro Schema 알아보기BigData 2024. 3. 6. 22:33
- 목차 들어가며.이번 글에서는 Avro Schema 에 대한 다양한 예시들을 살펴볼 예정입니다.Python 과 "avro-python3==1.10.2" 모듈을 사용하여 다양한 데이터셋을 다루어보도록 하겠습니다.전반적인 데이터들은 Kaggle 에서 제공되는 데이터를 활용하도록 하겠습니다. Enum.제한된 갯수를 가지는 Categorical Data 를 대상으로 Enum 타입을 적용할 수 있습니다.예를 들어, 날씨 정보가 ['drizzle' 'rain' 'sun' 'snow' 'fog'] 와 같은 5가지 경우를 가진다고 한다면 Enum 타입을 을 사용할 수 있습니다.아래 Kaggle 의 seattle_weather 데이터셋을 통해서 자세한 내용을 살펴보도록 하겠습니다. https://www.kaggle.c..
-
Docker 로 Minio Storage 구현하기BigData 2024. 1. 12. 06:38
- 목차 들어가며. Docker Container 를 기반으로 Minio Storage 를 생성하는 방법에 대해서 알아보도록 하겠습니다. AWS S3 같은 Object Storage 는 Data-Lake 의 용도로 활용됩니다. 그래서 Kafka-Connect, Spark, Flink 와 같은 데이터 프로세싱 어플리케이션에 의해서 DataSource, DataSink 의 타겟으로 활용됩니다. DataLake 를 구성하기 위한 첫단계로서 로컬 환경에서 Minio Storage 를 구성하는 방법에 대해서 알아보도록 하겠습니다. Minio Container 실행하기. Production 환경에서 bitnami 의 도커 이미지나 Helm Chart 가 흔히 사용됩니다. 이번에서도 bitnami/minio 이미지를..
-
Checksum 알아보기 (Data Integrity, 데이터 무결성, 체크섬)BigData 2023. 12. 23. 21:30
- 목차 소개. 데이터 무결성 (Data Integrity) 을 검증하는 하나의 방식인 checksum 에 대해서 알아보려고 합니다. 체크섬은 네트워크 트래픽이나 Disk IO 관점에서 주로 사용되는 방식이구요. Disk IO 도 하나의 네트워크라고 생각했을 때에 데이터가 전송되는 과정에서 올바르게 카피되었는지를 판단하는 하나의 방식입니다. 예를 들어, 인터넷을 통해서 파일을 다운로드하는 경우가 있습니다. 웹 브라우저를 통해서 어떠한 파일을 다운로드는 받을 때, 파일을 관리하는 파일서버는 웹브라우저라는 클라이언트에게 파일을 제공합니다. 파일 서버는 전송해야할 파일의 checksum 을 계산하고 클라이언트에게 checksum 을 제공합니다. 클라이언트는 시간을 들여 파일을 모두 다운로드받게 되며, 그 이후..
-
ASCII 코드 알아보기BigData 2023. 12. 22. 17:01
- 목차 소개. 아스키 코드 (ASCII Code) 는 American Standard Code 의 약자입니다. 아스키 코드는 대표적인 인코딩 표준 중의 하나인데요. 소문자 알파벳인 a 부터 z 까지, 대문자 알파벳인 A 부터 Z 까지 그리고 모든 아라비안 숫자와 특수문자를 인코딩하는 방식을 제공합니다. 아스키 코드는 미국에서 만들어진 표준 인코딩 방식이기 때문에 American Standard Code 라고 이름이 붙여졌습니다. 그래서 기본적으로 세계 각국의 문자들을 표현할 수 없는 한계를 지니고 있습니다. 이번 글에서는 아스키 코드에 대해서 알아보는 시간을 가지려고 합니다. 인코딩이란 ? 컴퓨터의 보급으로 전자문서라는 가상의 문서가 생깁니다. 그리고 문서들은 문자들로 구성이 되죠. 키보드로 타이핑하는..
-
Parquet Reader 알아보기BigData/Parquet 2023. 12. 8. 05:37
- 목차 함께 보면 좋은 글. https://westlife0615.tistory.com/50 Parquet 알아보기 - 목차 관련된 글 https://westlife0615.tistory.com/333 Avro Serialization 알아보기. - 목차 관련된 글 https://westlife0615.tistory.com/332 Avro File 알아보기 - 목차 소개. Avro 는 두가지 기능을 제공합니다. 첫번째는 직 westlife0615.tistory.com 소개. Parquet Reader 들이 어떠한 방식으로 Parquet 파일을 읽어들이는지 자세히 살펴보려고 합니다. Apache Arrow 기반의 라이브러리들은 많은 부분이 추상화되어 있어, Parquet 파일을 읽어들이는 방식이 명료하게..
-
Trino 도커로 따라하기BigData 2023. 12. 3. 11:52
- 목차 소개.Trino 에 대해서 자세히 알아보기 이전에 Trino 를 설치하고 사용해보는 간단한 세션을 가져보려고 합니다. 본 내용은 Docker 를 사용하여 진행할 예정입니다. 설치하기.도커를 통해서 진행할 예정이구요. 관련 도커 문서의 웹 링크는 아래와 같습니다. https://trino.io/docs/current/installation/containers.htmlTrino in a Docker container — Trino 434 DocumentationTrino in a Docker container The Trino project provides the trinodb/trino Docker image that includes the Trino server and a default conf..
-
Thrift 알아보기BigData 2023. 11. 4. 16:58
- 목차 함께 보면 좋은 글 https://westlife0615.tistory.com/361 RPC (Remote Procedure Call) 알아보기 - 목차 소개. RPC 는 Remote Procedure Call 의 약자입니다. 의미는 "원격 서버에 있는 함수를 사용한다" 라는 뜻인데요. 프로그래밍에서 함수를 뜻하는 여러 표현들이 있습니다. Function, Procedure, Method 등 westlife0615.tistory.com 소개. Thrift 는 분산환경 시스템에서 많은 역할을 수행하는 도구입니다. 많은 역할을 수행하다보니 "Thrift 는 바로 이것이다 !" 라고 쉽게 정의를 내리기보단 주요한 역할들을 알아보려고 합니다. 먼저, Thrift 는 RPC 프레임워크로써 동작합니다. R..
-
Avro Serialization 알아보기.BigData 2023. 10. 5. 13:18
- 목차 관련된 글 https://westlife0615.tistory.com/332 Avro File 알아보기 - 목차 소개. Avro 는 두가지 기능을 제공합니다. 첫번째는 직렬화 기능입니다. Avro 는 Serialization Framework 로서 직렬화와 역직렬화를 위한 방식을 제공합니다. 두번째는 File Format 으로 사용됩니다. A westlife0615.tistory.com 소개. Avro 는 대표적인 Serialization Format 입니다. Avro 가 다른 Serialization Format 과 다른 특징은 아래의 기술한 내용들인데요. 1. Binary Format 을 사용한다. 2. Schema 를 필요로한다. 3. 프로그래밍 언어나 환경에 영향을 받지 않는다 등등 이 ..