전체 글
-
RocksDB Leveled Compaction 알아보기Database/RocksDB 2024. 1. 10. 17:11
- 목차 들어가며. Leveled Compaction 은 RocksDB 의 Compaction 종류 중의 하나입니다. RocksDB 는 LSM-Tree 파일 구조를 취하기 때문에 SSTable 의 Compaction 은 중요한 기능 중의 하나입니다. 이번 글에서는 Leveled Compaction 에 대해서 알아보는 시간을 가지려고 합니다. Level 이란 ? RocksDB 는 MemTable 과 SSTable 이라는 In-Memory Structure 와 On-Disk Structure 를 가집니다. Level 이라는 개념은 SSTable 에 적용되는데요. Level 은 SSTable 에 대하여 Merge 가 수행된 정도를 의미합니다. Level 0 부터 시작하여 Level n 까지 Level 의 범위..
-
[python] datetime 여러 활용법 알아보기 ( datetime, timezone, truncate)Python 2024. 1. 10. 16:58
- 목차 들어가며.이번 글에서는 Python 의 Datetime 모듈의 여러가지 사용 사례들을 작성해보려고 합니다.Python 개발을 하다보면 Datetime 모듈을 활용해야하는 경우가 많습니다.저의 경우에는 매번 "Timezone" 을 어떻게 변경할지, 오늘의 시작/종료 시각으로 어떻게 변경할지 등에 대해서 항상 헷갈리곤 합니다.그래서 이번 블로그에서 여러가지 케이스와 Datetime 응용하는 사례에 대해서 설명해보려고 합니다. 여러가지 사례들.python 의 Datetime 모듈의 활용법은 아래와 같습니다.datetime 라이브러리에서 datetime 모듈을 import 하는 구조로 보통 활용됩니다.from datetime import datetime, timezone 가장 흔히 사용되는 함수는 n..
-
RocksDB WAL (Write-Ahead Log) 알아보기Database/RocksDB 2024. 1. 10. 16:56
- 목차 들어가며. RocksDB 는 스토리지 엔진으로써 LSM-Tree 를 사용합니다. LSM-tree 는 구조적으로 Write-Ahead log 를 취하게 되는데, Write-Ahead Log (WAL log) 에 의해서 Recovery 가 가능해집니다. 먼저 Write-Ahead Log (WAL log) 에 대해서 간단하게 알아보도록 하겠습니다. 클라이언트는 RocksDB API 를 통해서 데이터를 삽입합니다. ( 참고로 RocksDB 에서 취급하는 데이터의 형태는 Key-Value Pair 모양을 따릅니다. ) 클라이언트의 데이터 생성 요청을 WAL log 에 로그 형태로 삽입됩니다. 그리고 MemTable 과 SSTable 로 생성 요청이 전달되죠. 아래의 이미지처럼 Write Log 가 먼저 ..
-
RocksDB Column Family 알아보기Database/RocksDB 2024. 1. 10. 09:19
- 목차 들어가며. RocksDB 의 Column Family 는 SQL 의 Table, NoSQL 의 Collection 과 유사합니다. 즉, Key-Value Pair 들을 저장하는 논리적인 단위입니다. 즉, RocksDB 의 데이터베이스는 Column Family 라는 단위로 데이터들이 저장될 파티션을 나누게 되구요. 만약 명시적으로 Column Family 를 생성하지 않는다면 default Column Family 를 사용하게 됩니다. Column Family 는 여러가지 장점을 가집니다. 장점들은 SQL Table 과 같이 데이터의 저장 단위를 분리하였기 때문에 파생되는 장점입니다. 첫번째 장점은 Column Family 단위로 MemTable 과 SSTable 그리고 Bloom Filter ..
-
RocksDB Architecture 알아보기 (LSM-tree)Database/RocksDB 2024. 1. 10. 07:45
- 목차 관련된 글. https://westlife0615.tistory.com/566 RocksDB Architecture 알아보기 (LSM-tree) - 목차 들어가며. RocksDB 는 LSM-Tree 형식의 구조를 취합니다. LSM-Tree 를 설명하기 위해서 MemTable, SSTable, WAL Log, Compaction 등의 배경지식이 필요한데요. 이번 글에서 RocksDB 를 구성하는 요소들에 대해 westlife0615.tistory.com https://westlife0615.tistory.com/567 RocksDB Column Family 알아보기 - 목차 들어가며. RocksDB 의 Column Family 는 SQL 의 Table, NoSQL 의 Collection 과 유사합..
-
[ClickHouse] Block 알아보기Database/Clickhouse 2024. 1. 10. 06:46
- 목차 들어가며. 이번 글에서는 ClickHouse 의 Block 의 개념에 대해서 알아보려고 합니다. ClickHouse MergeTree 엔진의 Table 을 생성하고, 해당 테이블에 데이터를 추가하게 되면 Parts 가 생성됩니다. ClickHouse Parts 의 개념은 아래의 페이지에서 알 수 있는데요. Parts 에 대해서 간단한 설명을 해보려고 합니다. https://clickhouse.com/docs/en/operations/system-tables/parts parts | ClickHouse Docs system_tables-parts} clickhouse.com Parts 란 ? https://westlife0615.tistory.com/737 [ClickHouse] Parts & P..
-
Kubernetes Deployment 알아보기Kubernetes 2024. 1. 9. 17:27
- 목차 함께 보면 좋은 글. https://westlife0615.tistory.com/412 Kubernetes ReplicaSet 알아보기 - 목차. 함께보면 좋은 글. https://westlife0615.tistory.com/210 Kubernetes Pod 이해하기 소개 Pod는 쿠버네티스의 가장 기본적인 구성요소입니다. 컨테이너 환경을 오케스트레이션하는 쿠버네티스 입장에서 westlife0615.tistory.com https://westlife0615.tistory.com/407 KinD 알아보기. - 목차 소개. KinD 는 "카인드" 라고 발음되며, 로컬 머신에서 쿠버네티스를 간편하게 실행할 수 있는 도구입니다. KinD 는 Kubernetes in Docker 의 약자이구요. Dock..
-
[ Kafka Producer ] 불안정한 네트워크에서 데이터 생성하기 ( Acks, Retries )Kafka 2024. 1. 9. 05:22
- 목차 들어가며. 이번 글에서는 카프카 클러스터의 네트워크를 의도적으로 불안정하게 만든 이후에 Kafka Producer 가 어떻게 해야 안정적으로 데이터를 생성할 수 있는지 알아보려고 합니다. 아래의 링크는 Docker 를 활용하여 카프카 클러스터를 구축하는 내용이 적힌 페이지의 주소입니다. https://westlife0615.tistory.com/474 Docker 로 Kafka Cluster 구축해보기. - 목차 소개. 저는 로컬 환경에서 카프카 관련 테스트를 진행하는 경우가 많이 생기더군요. 그래서 docker-compose 를 활용하여 Kafka, ZooKeeper 클러스터를 구축하는 내용을 작성하려고 합니다. docker-com westlife0615.tistory.com 실험. 아래의 명..
-
[Kafka-Streams] mapValues 알아보기Kafka 2024. 1. 9. 05:22
- 목차 들어가며. 이번 글에서는 kafka streams API 의 mapValues 의 기능에 대해서 알아보려고 합니다. mapValues API 는 kafka streams 의 Stateless 한 데이터 변형을 제공하는 기능입니다. 이전 상태와 무관하가 현재 처리하는 데이터의 상태와 변형에 집중합니다. 아래 링크는 Docker 로 Kafka Cluster 를 간단히 구축하는 내용을 적은 웹사이트의 링크입니다. https://westlife0615.tistory.com/474 Docker 로 Kafka Cluster 구축해보기. - 목차 소개. 저는 로컬 환경에서 카프카 관련 테스트를 진행하는 경우가 많이 생기더군요. 그래서 docker-compose 를 활용하여 Kafka, ZooKeeper 클러..
-
[SparkML] StandardScaler 알아보기 ( 표준화, Feature Scaling )Spark/SparkML 2024. 1. 8. 21:07
- 목차 소개. 이번 소개글에서 SparkML 의 StandardScaler 에 대해서 알아보려고 합니다. StandardScaler 는 데이터셋의 feature 를 표준화 관점에서 변경하는 것을 의미합니다. 그럼 표준화는 무엇일까요 ? 그래서 먼저 Standardization 인 표준화에 대해서 간단히 알아보겠습니다. 표준화는 데이터의 분포를 변경하는 행위입니다. 평균을 0 으로, 그리고 분산을 1 로 설정하여 데이터의 분포를 변경합니다. 즉, 표준정규분포를 갖도록 재조정됩니다. 표준화의 공식은 아래와 같습니다. $$ X^{'}=\frac{X-\mu }{\sigma} $$ $\sigma$ 은 표준편차를 의미하고, $\mu$ 는 평균을 의미합니다. Feature Scaling 은 왜 필요할까?. 표준화 ..