전체 글
-
[Spark] approxCountDistinct 알아보기Spark 2024. 2. 22. 20:39
- 목차 들어가며.이번 글에서는 SparkSQL 의 approxCountDistinct 함수에 대해 알아보려고 합니다.approxCountDistinct 은 특정 칼럼의 값들이 몇개의 범주로 구성되어있는지를 파악하는 함수입니다.즉, Categorical Data 의 종류 갯수를 파악합니다.approxCountDistinct 는 이름에서 유추할 수 있듯이, 대략적인 결과를 획득하기 위한 함수인데요.큰 규모의 데이터셋에 대해서 약간의 오차를 허용하고 결과 획득 시간을 단축하기 위한 목적을 가집니다. 사용할 데이터.사용할 데이터는 Kaggle 의 Bank Marketing 데이터를 사용합니다.아래 링크에서 다운로드받으실 수 있습니다.https://www.kaggle.com/datasets/henriqueyam..
-
[pytorch] NLLLoss 알아보기 (Negative Log Likelihood)AI-ML 2024. 2. 22. 20:39
- 목차 키워드.- Likelihood- NLL Loss Likelihood 란 ?이번 글의 주제인 NLL Loss 의 NLL 은 Negative Log Likelihood 의 약자입니다.그래서 우선적으로 Likelihood 의 의미에 대해서 간략히 알아보려고 합니다.Likelihood 는 우리말로 가능성, 가능도, 우도 등으로 불립니다.Likelihood 는 수식으로 아래와 같이 표현됩니다.$$ L(\theta | x) $$ $ \theta $ 는 모델의 파라미터 또는 확률 분포의 여러 변수들을 의미하구요.그리고 X 는 데이터 또는 Random Variable 을 의미합니다. 정확한 이해를 위해서 여러가지 예시를 설명드리겠습니다. 정규 분포와 Likelihood.대한민국 성인 남성의 키를 정규분포로 표..
-
[Python] io.BytesIO truncate 알아보기Python 2024. 2. 22. 07:05
- 목차 들어가며.이번 글에서는 파이썬의 io 모듈의 BytesIO 에 대해서 알아봅니다.특히, BytesIO 로 생성된 ByteBuffer 의 truncate 기능에 대해서 자세히 알아보려고 합니다. 파이썬의 io 모듈은 StringIO 와 BytesIO 객체를 제공합니다.이들은 메모리 상에 저장된 문자 정보를 마치 파일을 다루는 듯한 API 를 제공합니다.그래서 read, seek, truncate 등의 File Read, Write API 를 사용할 수 있습니다. 하지만 이들이 저장하고 관리하는 실질적인 데이터를 동일합니다.아래의 예시처럼 이들은 "모든 소문자 알파벳들"을 저장할 뿐이며, 제공되는 API 가 다르죠.data: str = "abcdefghijklmnopqrst..
-
[Hadoop] HADOOP_USER_NAME 환경변수 알아보기Hadoop 2024. 2. 21. 07:30
- 목차 들어가며. 로컬 환경의 터미널에서 원격의 Hadoop 시스템에게 명령을 요청하는 경우가 종종 생기곤 합니다. 이때에 hdfs dfs 커맨드를 사용하게 되는데 별다른 조치없이 hdfs 커맨드를 사용하게 되면, 실제 로컬 머신의 Active User 가 hdfs File System 의 사용자로 설정됩니다. 이를 방지하는 방법에 대해서 알아보도록 하겠습니다. 간단히 Hadoop 실행하기. 아래의 링크는 docker-compose 를 통해서 간단히 Hadoop Cluster 를 생성하는 내용의 페이지입니다. https://westlife0615.tistory.com/20 [Hadoop] Docker 로 Hadoop Cluster 실행하기 ( docker-compose ) - 목차 소개. 하둡을 이해하..
-
[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/686#7 [Clickhouse] Shard & Replica Cluster 구성하기 - 목차 들어가며. 이번 글에서는 docker-compose 를 활용하여 Clickhouse Cluster 를 구성하는 내용을 작성하려고 합니다. ClickHouse 의 docker-co..
-
[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 파일의 간단한 형태는 아래와 같습니다. +---+-----------+--------+--------..