본문 바로가기
728x90
SMALL

Python/Data Engineering11

Kafka 설치하는 방법 (feat. ubuntu) 1. 글을 작성하게 된 계기 기존에 회사에서 Redis를 이용해서 fastapi - redis - celery 구조로 서빙을 구축했었다. 그러나 앞으로는 kafka를 사용하기 위해서 ubuntu 서버에 kafka를 설치하는 방법에 대해서 정리하고자 한다. 2. Apache Kafka 설치 방법 1. 다운로드를 위해 kafka 사이트 접속 - 링크 2. 우클릭 후 링크 주소 복사 클릭 3. 링크를 활용해 필요파일 설치 wget -d https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz 4. 다운로드한 파일 압축 풀기 tar -xzf kafka_2.13-3.7.0.tgz 5. 잘 설치되었는지 확인을 위한 zookeeper 실행 설치된 폴더로 이동 cd.. 2024. 4. 3.
MLOps 기술들 설명 (데이터, 모델, 서빙 등) 1. 데이터 - 데이터 수집 파이프라인 (Data Ingestion Pipeline): Sqoop: Apache Hadoop과 관계형 데이터베이스 사이에서 대량의 데이터를 효율적으로 전송하는 도구. Flume: 대량의 로그 데이터를 효율적으로 수집, 집계 및 이동하는 분산형, 안정적이고 사용 가능한 서비스. Kafka: 이벤트 스트리밍을 위한 분산 플랫폼으로, 실시간 데이터 파이프라인 및 스트리밍 애플리케이션을 구축하는 데 사용됨. Flink: 대용량 데이터 처리 및 분석을 위한 오픈 소스 스트림 처리 프레임워크. Spark Streaming: 배치 처리 엔진인 Spark의 확장으로, 스트림 처리를 지원함. Airflow: 워크플로우를 프로그래밍 방식으로 작성, 예약 및 모니터링하는 플랫폼. - 데이터 .. 2023. 12. 29.
Python asyncio를 활용한 비동기 프로그래밍 1. 글을 쓰게 된 이유 서비스 프로그램을 만들면서 asynico를 사용해서 코딩을 해야하는데 생각보다 비동기를 사용하면 굉장히 좋은 서비스를 만들 수 있고 속도 문제도 해결할 수 있다는 사실을 알게되었다. 2. 파이썬에서 비동기 프로그래밍 - 자바스크립트와 같이 애초에 비동기 방식으로 동작하도록 설계된 언어는 익숙한 개념이다 - 파이썬과 같이 동기 방식으로 동작하는 언어에서는 생소하지만 - 파이썬 3.4에서 asyncio 모듈이 표준 라이브러리로 추가되면서 - 파이썬 3.5에서 async / await 키워드가 문법으로 채택이 되면서 - 파이썬도 외부 라이브러리 없이 프로그래밍이 가능해졌다. 3. 핵심 문법 - def(동기 방식) / async def(비동기 방식) 아래와 같은 비동기 방식으로 만들어진.. 2023. 8. 25.
Ray를 활용한 Python 병렬 처리 하기 (feat. gpt api) 1. 글을 작성하게 된 계기 - GPT API를 호출하는 경우가 많다. - GPT API를 호출할 때 순차적으로 하면 너무 오래 걸린다. - API 호출을 병렬로 처리해서 처리해 보자. 2. Ray 이해하기 2-1. Ray 구성 이해하기 1. Task - 호출하는 곳과 다른 프로레스에서 실행되는 함수 또는 클래스 - @ray.remote 라는 데코레이터로 감싸면 그 함수는 task가 된다. - Remote Function이라 부르며, 호출자와는 비동기적으로 실행 - remote()를 사용해서 호출 가능, ObjectRef 라는 값을 반환한다. 이때, ray.get(ObjectRef)를 하면 Task를 실행하고 값을 반환받을 수 있음. 2. Object - Task를 통해 반환되거나 ray.put()을 통.. 2023. 8. 22.
DataFrame에서 줄 바꿈, 띄어쓰기 중복 제거 1. 글을 쓰게 된 계기 python DataFrame에서 실제 데이터셋을 수집하다 보면 띄어쓰기 또는 줄 바꿈이 여러 번 반복되는 경우를 쉽게 찾아볼 수 있다. 그럴 때 DataFrame에서 replace를 이용해서 쉽게 한 줄로 띄어쓰기 한 번으로 변환하는 코드를 설명하고자 한다. 2. 사용 방법 df['컬럼이름'].str.replace('\s+', ' ') 다음과 같이 사용하면 해당 컬럼이름에 해당하는 값들을 string 값으로 변경하고 줄 바꿈, 띄어쓰기를 띄어쓰기 1번으로 모두 줄일 수 있다. 예시코드는 다음과 같다. test_data = ['test\n\n\n\ntest111', '22test\n\n\n test'] for i in test_data: print(i) df = pd.DataFr.. 2023. 2. 10.
한국어 문장 분리기 (kss - korean sentence splitter) 사용방법 1. 글을 쓰게 된 계기 한국어 데이터 전처리를 진행하게 되면 자주 한국어 문장 분리기를 사용하곤 해서 사용 방법을 정리했습니다. 2. 한국어 문장 분리기 (kss) 사용방법 - KSS(Korean Sentence Splitter) : 한국어 문장을 분리할 수 있는 모듈 (github repo) from kss import split_sentences test_txt = "카페를 왔는데 원두 종류도 여러가지로 너무 맛있었다. 8시가 되면 불이 꺼지는데 은은하게 분위기도 있다. 다음에 또 와봐야지 ㅋㅋ" print(split_sentences(test_txt)) # 출력값 : ['카페를 왔는데 원두 종류도 여러가지로 너무 맛있었다.', '8시가 되면 불이 꺼지는데 은은하게 분위기도 있다.', '다음에 또 .. 2023. 2. 10.
728x90
LIST