[Spark] Spark Streaming(PySpark) - Kafka 메세지 가공 및 parquet 파일 저장하기
데이터 이모저모/Spark2023. 12. 26. 14:24[Spark] Spark Streaming(PySpark) - Kafka 메세지 가공 및 parquet 파일 저장하기

🧐 개요 이전 포스트 - [Spark] Spark Streaming(PySpark) - '배치 함수'를 작성하여 작업 경과 시간을 기록하고 Kafka로 발행하기 이전 포스트 - [Spark] Spark Streaming(PySpark)으로 Kafka 메세지 수신하기 이번 포스트는 지난 포스트에 이어, kafka를 통해 수신한 데이터를 가공하는 로직을 소개합니다. 해당 로직은 제가 데모를 돌리면서 실습한 부분이기 때문에 실제 현업에서의 사용 방식과는 차이가 있습니다. 이번 포스트에서 구현한 로직은 아래와 같습니다. Kafka에서 JSON 구조로 작성된 STRING 타입의 value 데이터를 발행 Spark에서 value 데이터의 타입을 Struct 타입으로 변형 Spark에서 데이터를 가공 후 기타 작업을..

[Spark] Spark Streaming(PySpark) - '배치 함수'를 작성하여 작업 경과 시간을 기록하고 Kafka로 발행하기
데이터 이모저모/Spark2023. 12. 24. 22:56[Spark] Spark Streaming(PySpark) - '배치 함수'를 작성하여 작업 경과 시간을 기록하고 Kafka로 발행하기

🧐 개요 이전 포스트 - [Spark] Spark Streaming(PySpark)으로 Kafka 메세지 수신하기 이번 포스트는 저번 포스트에 이어서, Spark Streaming으로 Kafka에 메세지를 발행하는 다른 예제를 소개합니다. 구체적으로는 작업 경과 시간을 기록하여 Kafka로 발행하고자 합니다. 이번에는 해당 기능을 구현하는 과정에서 '배치 함수'를 만들어 각 배치별로 적용될 PySpark 가공 로직을 구성해보도록 하겠습니다. (해당 기능은 추후 Grafana 대시보드에서 Kafka 스크립트의 동작 시간을 실시간 대시보드로 모니터링하기 위한 기능입니다. 해당 내용도 블로그에 포스팅하도록 하겠습니다) 🖍️ 예제 스크립트 간단한 pub/sub 기능을 구현하는 PySpark Streaming 예..

[Spark] Spark Streaming(PySpark)으로 Kafka 메세지 수신하기
데이터 이모저모/Spark2023. 12. 24. 15:51[Spark] Spark Streaming(PySpark)으로 Kafka 메세지 수신하기

🧐 개요 이번 포스트는 Spark Streaming 기능을 사용해 Kafka 채널에 발행된 메세지를 수신하는 방법을 설명합니다. Apache Spark는 Kafka에서 발행한 메세지를 스트리밍 처리하도록 기능적으로 지원하고 있습니다. 일반적으로는 JAVA API 어플리케이션을 통해 Spark Streaming 작업을 구현한다고 들었습니다만 저는 PySpark 스크립트를 작성해 구현해보도록 하겠습니다. 참고로 제가 테스트를 진행하는 환경은 다음과 같습니다. Spark Version: v3.5.0 JAVA Version: openjdk-8-jdk Kafka Host: localhost 🖍️ 공식 가이드 참조하기 Apache Spark 공식 홈페이지에 Kafka 스트리밍 관련 가이드 문서를 제공하고 있습니다...

[주저리] 개념으로 이해하는 메세지 큐(Message Queue)와 카프카(Kafka)
데이터 이모저모/Kafka2023. 12. 24. 00:41[주저리] 개념으로 이해하는 메세지 큐(Message Queue)와 카프카(Kafka)

🧐 개요 이번 포스트에서는 일전의 제가 카프카의 개념을 이해하는 과정에서 배우고 적었던 내용들을 설명하고자 합니다. 주니어 개발자로서 '메세지 큐(Message Queue)와 카프카(Kafka)'에 대한 개념을 이해하게 된 것은 최근의 일이었습니다. 컴퓨터 분야에 입문한지 이제 막 1년이 된 저에게 있어 사뭇 낯설게 느껴지는 개념들이었던 것 같습니다. 그간 제 머릿속에서 카프카의 개념은 아래와 같았습니다. "다양한 데이터 원천에서 수집된 데이터는 빅 데이터 아키텍처 기반으로 구성된 DataLake 환경에 저장된다. Apache Kafka는 이렇게 DataLake 환경에 모인 빅 데이터를 서빙하는 통합 메세지 브로커로서, 각 서비스 및 어플리케이션에서 특정 데이터에 빠르게 접근할 수 있도록 도와준다.” 컴..

[PostgreSQL] 외부 IP로부터의 접속 관리하기(pg_hba, postgresql)
데이터 이모저모/SQL2023. 12. 23. 21:28[PostgreSQL] 외부 IP로부터의 접속 관리하기(pg_hba, postgresql)

🧐 개요 지난 포스팅에서 PostgreSQL의 사용자 권한을 설정하는 방법을 다루면서 '환경 설정을 통해 외부 IP로부터의 접속을 허용할 수 있다' 고 언급하였는데 오늘은 그 방법을 확인하도록 하겠습니다. conf 디렉토리 경로 확인하기 저는 MacOS 환경에서 brew 명령어로 패키지를 설치하였기 때문에 다음의 명령어를 입력해줍니다. cd "$(brew --prefix postgresql)" 이제 해당 디렉토리 내부 어딘가에 있는 'conf 파일들이 모인 폴더'를 찾으시면 됩니다. 패키지 관리자마다, 혹은 PostgreSQL 설치 환경마다 위치가 상이할 수 있습니다. 저 같은 경우에는 아래의 경로에 conf 파일들이 모여 있습니다. /opt/homebrew/opt/postgresql@14/share/p..

데이터 이모저모/SQL2023. 12. 23. 00:39[PostgreSQL] 유저 생성 및 권한 설정하기

🧐 개요 이번 포스트는 PostgreSQL 서버에서 유저를 생성하고 권한을 부여하는 방법을 기술합니다. 데이터베이스 내부에는 일반적으로 다양한 종류의 데이터가 기록되어 있으며, 많은 서비스들이 데이터베이스 내부의 데이터를 활용합니다. 따라서 데이터베이스에 접근하는 사용자가 많은 만큼, 권한을 차등 분배하여 적절한 보안 설계를 진행할 필요가 있습니다. 모든 사용자가 동일한 권한을 가진다면, 실수로 데이터베이스를 훼손하는 경우가 발생할 수 있기 때문이죠. 🛠️ 유저 생성하기 -- 유저 생성 CREATE USER WITH PASSWORD ''; -- 0.0.0.0 접속 허용 ALTER USER CONNECTION LIMIT -1; -- 데이터베이스 생성 권한 부여 ALTER USER CREATEDB; 처음 생..

image