데이터 엔지니어링(46)
-
[🧙Kafka] 카프카 구축 (4) - 카프카 설정 구성하기
About 카프카를 사용할 때 운영으로 사용하려면 구성을 잘 조절해야 한다. 스트리밍 데이터로 많은 데이터가 들어오고 나가기 때문에 비용 차이, 속도 차이가 클 수 있다. /config/server.properties 파일을 수정하여 설정을 적용할 수 있다. 카프카 구성하기 broker.id=1 카프카는 클러스터로 구축할 때 broker.id를 기준으로 브로커를 분류하기 때문에 하나의 클러스터에서 여러개의 broker.id를 지정할 수 없고 각기 다르게 지정해주어야 한다. port=9092 카프카는 기본 포트로 9092를 사용한다. num.network.threads=3 네트워크 요청을 처리하는 쓰레드 수 지정할 수 있다. num.io.threads=8 IO가 발생했을 때 사용되어지는 쓰레드의 개수를 지..
2021.04.07 -
[🧙Kafka] 카프카 구축 (3) - 카프카 클러스터 REST API로 사용하기
About 카프카 구축 (1) 과 카프카 구축 (2) 에서 구축했던 카프카 클러스터는 각자 다른 host를 가지고 있기 때문에 프로듀서가 카프카로 요청을 보낼 때 어디로 보내야 할 지 확실하지가 않다. 프로듀서에서 카프카 클러스터 중 하나의 브로커로 보낸다고 했을 때 그 브로커가 어떠한 문제로 종료되면 요청을 보낼수가 없다. 그래서 하나의 엔드포인트가 필요하다. 엔드포인트에 요청을 보내면 문제가 생긴 인스턴스가 아닌 곳으로 요청을 보내 처리할 수 있도록 고가용성을 확보할 수 있다. 직접 REST API를 만드려고 했으나 Confluent에서 오픈소스로 지원해주어서 사용하여 구축하려고 한다. Confluent의 기능을 사용할 수 있는 방법은 두가지가 있다. Confluent Platform 과 Conflu..
2021.04.07 -
[🧙Kafka] 카프카 구축 (2) - 카프카 도커로 쉽게 설치하기
About 이번에는 카프카를 도커로 설치하고 '카프카 설치 (1)' 에서 했던 주키퍼 앙상블을 연결하려고 한다. 하나의 컴퓨터에서 클러스터를 구성해보고, 배포할 때 크게 변경 없이 배포하기 위해 도커로 구성하려고 한다. 카프카 브로커는 5개로 구성하고 크기를 쉽게 변경 가능하도록 하려고 한다. Tutorial & Example 1. 작업할 폴더를 생성한다. 2. Dockerfile을 아래와 같이 작성한다. FROM ubuntu:18.04 RUN mkdir -p /root/install RUN apt-get update WORKDIR /root/install ENV DEBIAN_FRONTEND noninteractive ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ..
2021.04.06 -
[🧙Kafka] 카프카 구축 (1) - 주키퍼 앙상블 쉽게 구축하기
About 카프카 브로커에서 브로커와 토픽의 메타데이터를 저장하기 위해 주키퍼를 사용한다. 주키퍼를 단독으로 구성할 수도 있지만, 주키퍼를 클러스터로 구성하여 고가용성을 확보한 것을 주키퍼 앙상블(Zookeeper Ensemble)이라고 한다. 주키퍼 서버는 홀수로 구성하는 것을 권고하고 있기 때문에 3대로 구성하려고 한다. 홀수로 구성하는 이유는 예를 들어서 4대로 구성을 했을 때 결함에 대한 장애 대비 기능(failover)가 3대로 구성한 것과 다르지 않기 때문인데, 짝수로 구성해도 다른 큰 문제는 없다. 하나의 OS에서 3개의 도커를 띄워 구성해보려고 한다. Tutorial & Example 1. 작업할 폴더를 생성한다. 2. Dockerfile을 아래와 같이 작성한다. FROM ubuntu:18..
2021.04.06 -
[🔥Spark] Spark Streaming 이란?
Spark Streaming 개요 스트리밍 처리는 실시간으로 들어오는 데이터를 처리하는 것을 말하는데, 스파크 스트리밍은 배치 처리를 해준다. 배치 처리란 A시간 부터 B시간까지의 처리를 한 묶음, B시간 부터 C시간까지의 처리를 한 묶음으로, 처리를 하는 것을 말한다. n초에 한 번씩 실행하는 등의 지정을 할 수 있다. 스파크 스트리밍은 특정 포트를 통해 데이터를 받아들일 수 있으며 데이터를 전부 불러와서 처리하는 것이 아닌 특정 시간 사이에 들어온 데이터를 처리하는 방식이다. Example 1. 스파크 세션을 생성한다. 2. 스트리밍 데이터프레임 생성한다. 3. 변형 작업을 한다. 4. 목적지로 출력한다. 5. 1을 더하는 출력 결과 예시는 다음과 같다. -------------------------..
2021.04.01 -
[데이터 엔지니어링 간단 정리] 스노우플레이크(Snowflake) - 클라우드 기반 데이터 웨어하우징
스노우플레이크(snowflake) 클라우드 컴퓨팅 기반 데이터 웨어하우징 회사이다. 2012년 7월에 설립되었고 2014년 10월에 공개적으로 출시되었다. 서비스로서의 데이터 웨어하우스(SaaS)를 제공해주며 복잡하게 구성된 데이터 웨어하우스를 완전관리 해준다. 빠르고 사용하기 쉽고 유연한 데이터 스토리지, 처리 및 분석 솔루션을 제공해준다. snowflake 소개 AWS Snowflake AWS에서도 스노우플레이크를 제공해준다. 일본 리전은 2018년에 생겻다. aws.amazon.com/ko/financial-services/partner-solutions/snowflake-data-warehouse/ Snowflake Data Warehouse on Amazon Web Services (AWS) S..
2021.03.31