분류 전체보기
-
[Flink] Async IO Retry Strategy 알아보기Flink 2024. 3. 23. 10:50
- 목차 들어가며. 이번 글은 Flink Async IO 의 Retry Strategy 에 대해서 알아보려고 합니다. 이전에 작성하였던 https://westlife0615.tistory.com/781 글과 이어지는 내용입니다. [Flink] Async IO 알아보기 ( AsyncDataStream ) - 목차 들어가며. 이번 글에서는 Flink DataStream API 의 Async IO 에 대해서 알아보도록 하겠습니다. Async IO 는 Flink DataStream API 에서 제공하는 비동기처리를 위한 기술입니다. Java 가 기본적으로 제공하 westlife0615.tistory.com Async IO 는 네트워크 통신을 수행하는 Task 를 효율적으로 수행하기 위해서 주로 사용됩니다. 네트..
-
[Flink] Async IO 알아보기 ( AsyncDataStream )Flink 2024. 3. 23. 06:48
- 목차 들어가며. 이번 글에서는 Flink DataStream API 의 Async IO 에 대해서 알아보도록 하겠습니다. Async IO 는 Flink DataStream API 에서 제공하는 비동기처리를 위한 기술입니다. Java 가 기본적으로 제공하는 Future 모듈과 그 형식은 유사합니다. 그렇기 때문에 N 개의 Input 을 동시에 처리할 수 있습니다. Map, FlatMap 같은 Stateless Operator 는 event by event 형식으로 동기적인 순서로 데이터를 처리하는 반면, Async IO 를 통하여 1개 이상의 데이터를 효율적으로 처리할 수 있게 됩니다. 이 이미지처럼 Async IO 를 사용하게 되면 Async IO Operator 인 AsyncDataStream 은 ..
-
[Nginx] Web Content Serving 알아보기 ( default.conf )Nginx 2024. 3. 18. 07:05
- 목차 들어가며.이번 글에서는 Nginx 를 활용하여 웹 서버를 구성하는 방법에 대해서 알아보도록 하겠습니다.xml, csv, 이미지 파일 등 여러가지 웹파일을 서빙하는 웹서버를 Nginx 로 구성할 수 있습니다.Nginx 로 웹서버를 구성하기 위해서 Nginx 의 설정 파일을 수정해야하는데요.default.conf 파일을 통해서 Nginx 웹서버 구성 방법에 대해서 알아보도록 하겠습니다. Directive.server block.Nginx 의 default.conf 파일은 일반적으로 아래와 같이 구성됩니다.server Block 은 Nginx 웹서버를 구성하기 위한 하위 디렉티브들을 포함하는 블록입니다.server { listen 80; server_name _; loca..
-
[Numpy] copy & view 알아보기 (Shallow, Deep Copy)Python 2024. 3. 18. 07:05
- 목차 키워드.Shallow & Deep Copy. Copy & View.Numpy 의 ndarray 는 copy 와 view 라는 함수를 제공합니다.Numpy 의 copy 와 view 함수는 ndarray 를 복사하는 기능을 수행하는데요.copy 는 Shallow Copy , view 는 Deep Copy 기능을 제공합니다. Shallow Copy.프로그래밍에서 Copy 는 Shallow 와 Deep Copy 로 나뉘어집니다.각 Copy 는 우리말로 얕은 복사와 깊은 복사라고 하는데요.Shallow Copy (얕은 복사) 로 복사된 데이터는 메모리에 상주하는 원본 객체의 레퍼런스를 유지합니다.반면 Deep Copy (깊은 복사) 는 원본 객체의 레퍼런스를 유지하지 않고 오로지 값만을 복사하게 됩니다...
-
[Spark] Spark 로 Web File Reader 구현하기 ( SparkFiles )Spark 2024. 3. 18. 07:04
- 목차 들어가며.Spark 를 활용하여 http 프로토콜로 호스팅되는 웹 파일을 다운로드해야하는 경우가 존재합니다.일반적인 Spark 의 File Reader 를 통해서 웹파일을 다운로드하는 것을 불가능합니다.이 과정에서 SparkFiles 모듈을 사용하며, 이는 여러 이점이 존재합니다.첫번째 이점은 Spark Application 의 메모리보다 큰 용량의 파일을 손쉽게 읽어들일 수 있습니다.Http Streaming 방식으로 웹파일을 읽어들이는 수고로움을 덜 수 있습니다.두번째 이점은 기존의 Spark 프로그래밍 패턴을 사용할 수 있습니다.외부의 모듈을 활용하게 되면, 외부 모듈의 사용법에 따라 프로그래밍을 수행해야합니다.하지만 SparkFiles 는 Spark 의 내장 모듈로써 Spark 의 프로그..
-
[Pandas] DataFrame concat 알아보기Python 2024. 3. 9. 22:44
- 목차 키워드.concataxisignore_index 들어가며.Pandas 에서 여러개의 DataFrame 을 하나의 DataFrame 으로 병합하는 방법인 concat 함수이 대해서 알아보도록 하겠습니다.Pandas 의 다른 병합 기능인 merge 함수는 두개의 DataFrame 을 병합하는 Join Operation 을 수행합니다.반면, concat 함수는 두개 이상의 DataFrame 들을 하나의 거대한 DataFrame 으로 병합합니다.이는 Horizontal 또는 Vertical 한 두 방향으로 병합이 가능하며, Column 을 추가하거나 Row 를 추가하는 모든 병합을 제공합니다. 기본적인 동작.기본적인 동작은 아래와 같습니다.아래와 같이 두개의 DataFrame 을 생성하고, pd.con..
-
[Numpy] Boolean Indexing 알아보기 ( Boolean Mask )Python 2024. 3. 9. 21:36
- 목차 키워드.Boolean Indexing.Element-wise Calculation. 들어가며.Numpy 의 ndarray 는 Boolean Indexing 이라는 기능이 제공됩니다.만약 a = np.array([1,2,3,4,5]) 라는 ndarray 객체가 존재한다고 가정하겠습니다.a 는 1, 2, 3, 4, 5 인 5개의 데이터를 가지는 1차원 배열인데요.아래와 같이 bool_index 를 생성한 이후에 a[bool_index] 와 같은 형식으로 사용하게 되면,True 와 같은 Index 의 ndarray 의 값이 추출됩니다.a = np.array([1,2,3,4,5])bool_index = [True, True, False, False, False]print(f"a : {a[bool_ind..
-
[Python] threading Condition 알아보기 ( wait, notify )Python 2024. 3. 9. 21:36
- 목차 들어가며.파이썬은 멀티쓰레딩을 위해서 "thread" 와 "threading" 모듈을 제공합니다.흔히 "thread" 모듈은 멀티쓰레딩 프로그래밍을 위한 고수준의 API 를 담당하고,"threading" 모듈은 저수준의 기능을 제공하는 것으로 알려집니다.이번 글에서는 "threading" 모듈의 Condition 과 관련된 기능을 설명하며, 여러가지 케이스에 대해서 실습을 진행해보도록 합니다. Condition.Condition 객체는 여러 Thread 간의 동기화를 제공합니다. Synchroization 이란 ?먼저 동기화에 대해서 간단히 알아보겠습니다.동기화의 의미를 한자로 풀어보면 同期 로 작성되는데요. 이는 같음을 의미하는 "동(同)" 과 시간을 의미하는..
-
Cross Entropy 알아보기AI-ML 2024. 3. 8. 22:42
- 목차 키워드.- Probability- Surprise- Entropy- Cross Entropy 들어가며.이번 글에서는 Cross Entropy 에 대해서 알아보는 시간을 가지도록 하겠습니다. Cross Entropy 를 이해하기 위해서 몇가지 사전지식들이 요구되며, 사전 지식인 Probability, Surprise, Entropy 에 대해서 설명을 선행하면서 Cross Entropy 에 대해 알아보겠습니다. Probability.먼저 확률에 대해서 설명하도록 하겠습니다. 확률은 어떤 사건 X 가 발생하는 빈도를 표현하는 방식입니다. 확률을 계산하는 공식은 “사건 X 의 발생 빈도 / 전체 사건의 총 발생 횟수” 와 같습니다. 사건 X 는 전체 사건의 부분 집합으로 가정하며 그렇기에 확률의 범위는..
-
[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..