본문 바로가기

전체 글58

실시간 데이터 수집-2 (AWS에서 Confluent 설치) 실제로 Confluent를 서버에 설치해본다. 리소스 한계상 Standalone 버전으로 진행했다. 설치 환경 서버 aws ec2 : t2.xlarge 유형 OS / 소프트웨어 버전 S/W Version Ubuntu 20.04.6 JAVA 11 Confluent - Community 7.6.0 JAVA 설치 java 11버전 설치 script : https://github.com/tjsdud594/Confluent/blob/main/ShellScript/install_java.sh java 17 버전 설치시 아래 에러발생 Error: the Confluent CLI requires Java version 1.8 or 1.11. See https://docs.confluent.io/current/insta.. 2024. 2. 11.
실시간 데이터 수집-1 (시나리오) 실시간 데이터 수집을 위한 시나리오를 구축한다. 어떤 데이터를 수집할 지, 가공을 어떻게 할 것인지, 어디에 저장할 것인지, 시각화는 어떻게 할 것인지. Architecture 수집대상 실시간 환율 api : 실시간 환율 정보를 가져온다. (링크) 수집기 Filebeat : json log file 형태로 기록되고 있는 실시간 환율 데이터를 수집하여 kafka topic에 저장한다. Kafka : Topic에 실시간 데이터를 queue 방식으로 저장한다. Sink Connector : Topic에 저장된 데이터를 Sink Connector를 활용하여 Target DB(Elasticearch)에 저장한다. Prometheus : node와 Kafka의 Metric 수집에 사용. 가공 Spark Stream.. 2024. 2. 11.
Confluent 구축 사양 체크 목표 Onpremise 환경을 기준으로 Confluent를 활용하여 실시간 데이터 수집 / 가공 데이터 pipeline을 구축 하기 전 필요한 서버의 최소 사양, Clustering 여부, 호환되는 JAVA, OS 를 조사하기 위함. Confluent 설치사양 Standalone Memory CPU Storage OS 32GB (JVM default 6GB) 8 (or more cores) 300GB (SSD 권장) Ubuntu 14.04 이상 Debian 8 이상 RHEL/Centos 6.8 이상 Cluster Component Nodes Storage Memory CPU Control Center - nomal Control Center - reduced 1 300 GB (SSD 권장) 128 GB .. 2024. 2. 4.
Confluent Architecture Confluent 란? 실시간 데이터 파이프라인 및 스티리밍 애플리케이션을 구축하는 데 사용되는 분산 이벤트 스트리밍 플랫폼. 실시간 분석, 데이터 수집, 이벤트 기반 아키텍쳐와 같은 사례에 적합하다. Confluent vs. Kafka Apache kafka 개발진들이 기업용으로 확장한 소프트웨어가 Confluent Kafka Confluent 개발지원언어 JAVA Java, Python, C, C++, Go, NET 관리 및 모니터링 GUI X O Kubernetes 설치여부 X O Ansible Playbook X O Auto Data Balancing X O Pre-Built Connector X O KsqlDB X O Kafka를 활용한 ETL Architecture 용어 정리 클러스터 외부 C.. 2024. 1. 28.
Airflow DAG에서 다른 DAG 호출하기 (DAG 종속성) 조사 동기 프로젝트를 진행하며 하나의 dag에 모든 task를 넣다보니 아래와 같은 문제점이 발생했다. 1. DAG가 복잡해져 가독성이 떨어진다. 2. task를 추가하는 등의 추가 작업이 어렵다 따라서, dag를 분리하여 확장성과 가독성을 향상시킬 필요성을 느꼈다. 목표 1. 이후에 진행되어야 할 dag를 어떻게 호출 할 수 있는 지 2. 이전 dag의 success / fail flag를 어떻게 받아올 지 DAG 종속성 dag를 설계할 때 dag끼리 종속성을 갖지 않는 것이 가장 좋지만 어쩔 수 없이 종속성을 만들어야하는 경우가 있다. 예시 두 dag는 종속되지만 일정이 다름 두 dag는 종속되지만 서로 다른 팀에서 소유 task는 다른 task에 종속 되지만 excution_date가 다름 타 DA.. 2024. 1. 21.
Python 자료구조 자료구조 란? 데이터에 효율적으로 접근하고 조작하기 위한 데이터의 조직, 관리, 저장 구조 다양한 자료구조가 존재하므로 상황에 맞는 구조를 사용해야한다. python에서는 list, tuple, dictionary, set을 활용하여 대부분의 자료구조를 구현할 수 있다. 자료구조의 사용 목적 데이터의 조직화를 통한 효율적인 저장, 관리 효율적인 메모리 사용 선형 자료구조 순차리스트(Array List) Python에서는 List를 통해 구현할 수 있다. 논리적인 순서와 물리적인 순서가 같은 구조 Element (요소) : 배열을 구성하는 각각의 값 Index (인덱스) : 배열에서 위치를 가리키는 숫자, 값에 대한 유일무이한 식별자 장점 크기가 정해져 있지 않다. = 데이터를 추가/삭제 시 메모리 공간이.. 2024. 1. 21.