데이터 엔지니어링
-
[Kafka] ksqldb 실습환경 구축해보기데이터 엔지니어링/Kafka 2022. 7. 31. 16:50
KSQLDB 실습 환경 KsqlDB를 실습하면서 배워보는 시간을 가져볼 예정입니다. 먼저 stream이 있어야 하기 때문에 stream을 하나 만들어 실습을 진행하겠습니다. 먼저 진행하기에 앞서 제가 사용하게 될 아키텍처를 설명 하자면 아래와 같습니다. Kafka클러스터를 구축 하였고 Broker서버 1개 order라는 토픽을 만들어 메세지를 주고 받겠습니다. KsqlDB는 클러스터 외에 서버를 구축해야 하므로 외부에 설치를 진행하도록 하고 Ksql-cli로 KsqlDB에 접속하여 조작을 할것입니다. 서버를 만들어서 사용하면 좋겠지만, 여건이 안되므로 Docker파일을 작성하여 진행하였습니다. 위의 그림처럼 만들기 위해 설정을 해놨습니다. 아래를 복사해서 사용하시면 되겠습니다. version: '3' s..
-
[kafka] KsqlDB란? - Ksqldb 주요 개념(push, pull query)과 kafka에서 사용하는 Streaming Proces데이터 엔지니어링/Kafka 2022. 7. 31. 11:39
KSQLDB를 알기 전에 알아야 할 것 - Batch Processing vs Stream Processing Ksql은 Streaming processing을 하기 위한 툴입니다. 그래서 Batch Processing하고 Stream Processing의 차이점을 알아야 하는데요. 아래와 그 차이점을 설명 해 놨습니다. 가장 큰 차이점은 데이터가 무한하다는 가정을 한다는 것인데, 이 부분이 KSQL과 기본 SQL에 차이가 나는 부분입니다. KsqlDB란? KsqlDB란 confluent에서 만든 Streaming processing용 툴입니다. Sql구문을 사용하여 Streaming Processing을 사용할 수 있으며, 클러스터 외에 새로운 KsqlDB용 서버 및 클러스터를 구축하여 사용할 수 있습..
-
[Kafka]kafka 필수 개념인 Topology와 Streaming processing 종류 알아보기- , Kpub/sub, Kstreams, KsqlDB의 차이점데이터 엔지니어링/Kafka 2022. 7. 22. 21:27
Kafka 기본 아키텍쳐 producer - broker - consumer 기본적인 아키텍쳐는 source에서 message를 만들고 broker에 보내주면 consumer가 그 메세지를 받아서 소비하는 형식이다. 위에 그림은 1대1 매칭을 나타낸다. 그런데 메세지를 기반으로 내가 원하는 데이터로 처리하는 것을 보통 원한다.예를 들어 카드를 사용할 때 1초안에 3번 이상 결제된데이터, 주식 상승률이 5퍼 이상이 되었을 때 푸쉬 알림하기 등 메세지의 내용만으로 처리하기 힘든 것을 processing하고 컨슘하게 하는 형식을 가질 필요성이 많았다. 그래서 생겨 난 것이 Topology이다. Topology(토폴로지) 토폴로지는 기본적으로 네트워크 토폴로지를 나타낸다. 특히, 노드들의 연결성을 나타낸다. 망..
-
[Apache Kafka]구성요소 이해하기(Cluster, Broker, Topic, Partition, Producer, Consumer, Zookeeper)데이터 엔지니어링/Kafka 2022. 7. 14. 21:02
Kafka 기본 아키텍처 Topic이란? Topic은 파티션의 그룹이라고 할 수 있음 Topic은 카프카 데이터 스트림이 어디에 Publish될지 정하는데 쓰임 Topic은 파티션들을 모아두는 곳이라고 이해해도 좋음 Producer는 Topic을 지정하고 Message를 게시 Consumer는 Topic을 지정하고 Message를 개시(POST) Consumer는 토픽으로부터 메시지를 받아옴 카프카의 메시지는 디스크에 정렬되어 저장 되며, 새로운 메시지가 도착하면 지속적으로 로그에 기록 Partition이란? Partition은 요청하는 메세지들의 모임이라고 보면된다. Partition마다 commit log가 따로 쌓인다. 모든 기록들은 Offset이라는 ID를 부여받는다. Immutable(불변) 속..
-
[Apache Kafka]Kafka가 만들어진 이유를 알아보자(개발 이유, 쓰는 이유 등)데이터 엔지니어링/Kafka 2022. 7. 11. 21:33
Kafka가 만들어진 이유를 알기전에 먼저 Real-time Streaming에 대해 알고 넘어가야한다. 위에 그림은 현대의 데이터 인프라 아키텍쳐를 종합해놓은 그림이다. 현대에는 수많은 데이터가 싸이게 되고 이 데이터를 언제, 어떻게 얼마나 빨리 데이터를 처리하고, 가져오고 활용하는지에 대한 생각을 많이 하고 있다. 그리고 데이터의 처리가 바로 신뢰성으로 직결되기 때문에 실시간 처리의 Event Streaming(realtime-streaming)에 대한 수요도 급증하고 있다. Event Streaming이란? Event Streaming이란, 실시간으로 많은 형태의 Event(클릭, 조회, 검색, 메세지 보내기 등등)를 처리하는 것을 말한다. 예전에는 이런 형태의 실시간 처리가 불가능 하였지만, 지금..
-
[Apache Spark]Spark RDD의 한계점 및 Dataframe, SQL 등장, 최적화 원리데이터 엔지니어링/Spark 2022. 7. 11. 20:23
RDD Shuffling & partition이해하기 Shuffling이란 썪는다는 의미이다. Partition은 부분으로 나눈다는 의미도 된다. RDD가 분산처리를 하기 위해 데이터를 Shuffling하고 Partition을 나눠서 데이터 연산 처리를 한다음 데이터를 추출하여 받는다. 하지만, Shuffling을 하면 연산처리는 어떻게 작용을 할까? Shuffling을 하게 되면 Partition 나뉜 데이터에서 네트워크 연산(node들의 통신)이 일어나게 된다. 연산 속도는 인메모리 >> 디스크 I/O >> 네트워크 순으로 빠르다. 그런데 Shuffling은 네트워크 연산이기 때문에 앞에서 데이터가 어느 정도 정리가 된 후에 해야한다. 아래의 그림을 보면 어려가지 key-value값이 있는데 여기서 ..
-
모던 데이터 엔지니어링 아키텍처 알아보기(data engineering loadmap)데이터 엔지니어링/데이터 엔지니어링 기본 2022. 7. 8. 21:37
해당 글은 아래의 내용과 긱뉴스의 내용을 바탕으로 작성하였습니다. You searched for modern data infra | Andreessen Horowitz A new site for understanding the future, how tech shapes it, and how we build it. a16z.com 데이터 인프라의 목적 데이터 기반의 의사 결정을 도와 주기 위해 서비스/제품을 데이터의 도움을 받아 향상시키기 위해 최신 데이터 인프라 구성요소 source - 다양한 곳에서 나오는 데이터의 모든 것 Ingestion and Transformation - ETL의 ET의 모든 영역을 담당 Storage - ETL의 L(Load)에 해당하며 보통 Data Warehouse와 Dat..
-
[Airflow]variables를 이용한 전역변수 설정데이터 엔지니어링/AirFlow 2022. 6. 27. 08:45
이전에 xcom을 이용하여 task instance간 데이터를 주고 받는 법을 알아봤는데 이번에는 전역으로 아무 DAGRun에서 데이터를 공유하고 사용하는 방법에 대해 알아 보겠습니다. Variables라는 기능인데 web ui 에서 admin- variables 라는 탭이 있습니다. variables 생성 방법 variables를 클릭하면 아래와 같이 구성할 수 있는 화면이 나옴 + 버튼을 눌러 생성가능, 아래와 같이 두개를 구성해 줄수 있음 그냥 text도 되고, json도 가능 save를 눌러 저장한 모습 구성 방법 불러오는 방법은 Variable 객체를 import 하고 key-value를 이용하여 값을 가져와 사용하면 된다. json은 json에 맞게 deserialize하여 사용한다. Vari..