분류 전체보기
-
[Pandas] Series CRUD 알아보기Python 2024. 2. 21. 07:30
- 목차 들어가며. Pandas Series 자료구조의 간단한 데이터 CRUD 에 대해서 알아보도록 하겠습니다. Create. 먼저 Series 를 생성하는 방법에 대해서 알아보도록 하겠습니다. Series 는 간단히 Python List 자료구조를 통해서 생성이 가능합니다. 아래 예시처럼 숫자 타입의 리스트를 준비하여 pandas 의 Series 함수를 통해서 Series 를 생성할 수 있습니다. Series 함수의 data 인자를 통해서 리스트를 입력하고, name 인자를 통해서 Series 의 이름을 설정할 수 있습니다. import pandas as pd numeric_ls = [1, 2, 3, 4, 5, 6, 7, 8, 9] sr = pd.Series(data=numeric_ls, name="n..
-
[Clickhouse] ReplicatedMergeTree 알아보기Database/Clickhouse 2024. 2. 18. 07:05
- 목차 Clickhouse Cluster 구현하기.먼저 아래의 2개 이상의 Clickhouse Node 가 실행되는 Multi Replica 구성을 만들어야합니다.아래 링크는 docker-compose 를 통해서 Clickhouse Cluster 를 구축하는 내용을 적은 페이지인데요.간단한 명령어들로 구성된 페이지이기 때문에 클러스터 구축을 선행하시는 것을 추천드립니다. https://westlife0615.tistory.com/880 [ClickHouse] remote_servers 설정 알아보기- 목차 들어가며.ClickHouse 는 분산 테이블(Distributed Table) 을 통해 여러 노드에서 데이터를 처리하고 저장할 수 있습니다.이때, 각 노드 간 통신 및 데이터 분배를 위해 remote..
-
[Kafka] max.block.ms 알아보기Kafka 2024. 2. 18. 07:04
- 목차 들어가며.이번 글에서는 Kafka Producer 설정인 max.block.ms 에 대해서 알아보겠습니다.max.block.ms 는 Kafka Producer 가 레코드를 생성하는 과정에서 대기하는 최대 시간을 설정하는 값인데요.이를 이해하기 위해서 몇가지 배경지식이 필요합니다. Accumulator & Batch. 먼저 카프카 프로듀서는 데이터를 생성할 때에 레코드를 하나씩 하나씩 생성하지 않습니다.카프카 프로듀서가 브로커에게 one by one 형식으로 레코드를 전송하지 않는 구조이구요.대신 레코드들을 하나의 Batch 에 모은 후에 Batch 를 브로커에게 전달하게 됩니다."batch.size" 라는 카프카 프로듀서의 설정은 하나의 Batch 에 얼마 만큼의 레코..
-
[Kafka-Connect] Debezium MySQL Connector 구현하기Kafka 2024. 2. 18. 07:04
- 목차 들어가며. 이번 글에서는 간단하게 Debezium MySQL Connector 을 활용하여 MySQL CDC 를 구현하는 방법에 대해서 알아보려고 합니다. MySQL Docker Container 실행하기. 먼저 MySQL Docker Container 를 실행합니다. test_db 데이터베이스와 test_table 테이블을 생성합니다. 그리고 Replication 을 수행할 user 인 kafkaconnect 를 생성합니다. cat docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=1234 -p 3306:3306 \ --mount type=bind,source=/tmp/init.sql,target=/docker-entrypoint-initdb.d/init..
-
[MySQL] binlog 는 언제 생성될까 ( binary log )Database 2024. 2. 18. 07:03
- 목차 들어가며. 이번 글에서는 MySQL 의 binlog 파일이 언제 생성되며, 데이터 변경 사항이 binlog 파일에 기록되는 시점에 대해서 알아보려고 합니다. 이 글에서는 실습을 위주로 진행하며, Docker Container 를 기반으로 실습을 진행합니다. MySQL Container 실행하기. 아래 명령어를 통해서 MySQL Docker Container 를 실행합니다. docker run --platform linux/amd64 -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql:8.0.23 그리고 binlog 관련 설정들을 살펴보겠습니다. log_bin 설정이 ON 인지 확인하기. log_bin 설정이 ON 인 경우에 binlog..
-
[Kafka-Streams] Json 기반 Custom Serdes 구현하기Kafka 2024. 2. 17. 17:49
- 목차 들어가며. Kafka Streams 에서 JSON 기반의 데이터를 직렬화/역직렬화 할 수 있는 Custom Serdes 를 구현하는 방법에 대해서 알아보려고 합니다. 우선 이번 글에서 사용할 데이터는 Kaggle 에서 제공되는 Bank Client 데이터를 사용할 예정입니다. https://www.kaggle.com/datasets/henriqueyamahata/bank-marketing Bank Marketing source: https://archive.ics.uci.edu/ml/datasets/bank+marketing www.kaggle.com bank-additional-full.csv 파일의 간단한 형태는 아래와 같습니다. +---+-----------+--------+--------..
-
[Clickhouse] Docker 로 Clickhouse 구현하기Database/Clickhouse 2024. 2. 17. 17:05
- 목차 들어가며. 이번 글에서는 Docker 를 활용해서 Clickhouse 를 구축하는 글을 작성하려고 합니다. 사용할 Docker Image 는 bitnami/clickhouse 이미지입니다. 간단한 MergeTree 엔진의 Table 을 생성하고 데이터를 취급하는 예시들을 작성할 예정입니다. bitnami/clickhouse 이미지를 사용하는 이유는 추후에 Kubernetes 에서 Clickhouse 를 구축하는 상황에서 Bitnami Helm Repo 의 Clickhouse Chart 가 사용됩니다. 그래서 yandex 를 포함한 다른 배포버전보다 bitnami 를 선택하였습니다. Clickhouse Docker Container 구현하기. 아래 명령어를 통해서 Clickhouse Contain..
-
[ClickHouse] Multi Sharding 구현하기 ( Docker, Shards )Database/Clickhouse 2024. 2. 17. 16:21
- 목차 들어가며.ClickHouse 는 Multi Sharding 을 구현할 수 있습니다.Distributed Table Engine 을 통해서 생성되는 MergeTree Family 들이 존재하며,Distributed Table 들은 Partition Key 를 통해서 여러 ClickHouse Node 들로 분배되어 저장됩니다.Distributed Table 을 잘 설명할 수 있는 사진 몇장을 아래에 첨부해두었습니다.이 이미지 자료를 통해서 좀 더 상세히 설명드리면,ClickHouse 는 여러 노드들로 구성되어 하나의 클러스터를 구성할 수 있습니다.만약 2개의 서버로 클러스터를 구성한다면 2개의 Sharding 을 적용하거나1개의 Shard 에서 Primary - Replica 를 1개씩 적용할 수도..
-
[Kubernetes] HPA 알아보기 ( Horizontal Pod Autoscaler )Kubernetes 2024. 2. 16. 22:56
- 목차 들어가며. 이번 글에서는 Kubernetes 의 HPA (Horizontal Pod Autoscaler) 에 대해서 알아보는 시간을 가지려고 합니다. ReplicaSet 또는 Deployment 로 여러 개의 Pod 를 손쉽게 운용할 수 있습니다. 이는 HA 의 관점에서 안정적으로 Pod 를 일정 갯수만큼 유지시키는 Kubernetes 의 기능인데요. 이들은 반드시 일정 갯수라는 제한이 있기 때문에 리소스의 부하 상태에 따라 유연히 Scale In/Out 이 불가능합니다. Kubernetes 에서는 이러한 관점에서 Autoscaler 를 제공합니다. HPA 세팅하기. HPA 는 CPU 또는 메모리의 상황에 따라서 유연하게 Pod 가 Scale In/Out 됩니다. 실제로 테스트를 통해서 Kube..
-
[MySQL] Master Slave 구성해보기 ( Replication , Replica )Database 2024. 2. 16. 22:56
- 목차 들어가며. 이번 글에서는 두개의 MySQL 을 통해서 Master - Slave 구성을 해보려고 합니다. Docker 를 기반으로 2개의 MySQL Container 를 생성하고, 하나의 Master 그리고 다른 하나를 Slave 로써 동작하게 설정합니다. MySQL 구성하기. 먼저 Master 와 Slave 의 my.cnf 를 설정합니다. log-bin 설정은 binlog 파일의 prefix 에 해당하는 문자열을 설정하는 옵션이구요. binlog, relay-log 에 대한 설정을 추가합니다. 그리고 Replication 을 위한 USER 와 GRANT 정보를 생성하는 init.sql 또한 생성하였습니다. cat select * from test.test_table; +------+------..