Data Engineer
-
[Kafka] Producer와 ConsumerData Engineer 2023. 5. 16. 19:11
Producer - 카프카의 토픽으로 메시지를 전송하는 역할 - 원하는 형태에 따라 옵션을 변경하면서 다양한 방법으로 카프카에 메시지를 전송 Producer 디자인 *ProducerRecord : 카프카로 전송하기 위한 실제 데이터 - Topic(필수, 메시지 전송 주소) / Partition(특정 파티션을 지정) / Key(특정 파티션에 레코드들을 정렬) / Value(필수, 메시지 전송) - Kafka의 특정 토픽으로 메시지를 전송 각 레코드들은 프로듀서의 send() 메서드를 통해 시리얼라이저, 파티셔너를 거치게 된다. 이때 프로듀서 레코드의 선택사항인 파티션 지정 시, 파티셔너는 아무 동작도 하지 않고 지정된 파티션으로 레코드를 전달한다. 파티션을 지정하지 않은 경우 키를 가지고 파티션을 선택해 ..
-
[Kafka] 정리_01Data Engineer 2023. 5. 14. 23:06
Kafka 주요 명령어 kafka-topics.sh = 토픽을 생성하거나 토픽의 설정 등을 변경하기 위해 사용 kafka-console-producer.sh = 토픽으로 메시지를 전송하기 위해 사용함. 기본 옵션 외 추가 옵션을 지정할 수 있고, 이를 통해 다양한 프로듀서 옵션 적용 가능 kafka-console-consumer.sh = 토픽에서 메시지를 가져오기 위해 사용하며, 기본 옵션 외 추가 옵션을 지정할 수 있고, 이를 통해 다양한 컨슈머 옵션 적용 가능 kafka-reassign-partitions.sh = 토픽의 파티션과 위치 변경 등을 위해 사용함 kafka-dump-log.sh = 파티션에 저장된 로그 파일의 내용을 확인하기 위해 사용함 Kafka 주요 요소 Zookeeper Apache..
-
[Data Engineer] Kafka란 무엇인가Data Engineer 2023. 5. 7. 23:33
Apache Kafka는 빠르고 확장 가능한 작업을 위해 데이터 피드의 분산 스트리밍, 파이프 라이닝 및 재생을 위한 실시간 스트리밍 데이터를 처리하기 위한 목적으로 설계된 오픈 소스 분산형 게시 - 구독 메시징 플랫폼이다. 당연한 얘기지만 Hadoop Ecosystem의 일부로 Kafka 공식 문서에도 설명하고 있다. Kafka는 서버 클러스터 내에서 데이터 스트림을 레코드로 유지하는 방식으로 작동하는 브로커 기반 솔루션이다. Kafka 서버는 여러 데이터 센터에 분산되어 있을 수 있으며 여러 서버 인스턴스에 걸쳐 레코드 스트림을 토픽으로 저장하여 데이터 지속성을 제공할 수 있다. 이 때 토픽은 레코드 혹은 메시지를 key , value 및 timestamp로 구성된 일련의 튜플, 즉 변경 불가능한 P..
-
SaaS, Software as a ServiceData Engineer 2023. 4. 2. 23:48
SaaS는 클라우드 기반의 소프트웨어 제공 모델로, 클라우드 제공업체가 클라우드 애플리케이션 소프트웨어를 개발 및 유지/관리하고, 자동 소프트웨어 업데이트를 제공하고, 인터넷을 통해 Pay-as-you-Go 방식으로 고객에게 소프트웨어를 제공한다. 퍼블릭 클라우드 제공업체는 미들웨어, 애플리케이션 소프트웨어, 보안을 포함한 모든 하드웨어 및 전통적인 소프트웨어를 관리한다. 따라서 SaaS 고객은 비용을 크게 줄일 수 있으며, On-Premise 시스템 및 소프트웨어를 유지/관리할 때보다 더 빠르게 솔루션을 배포, 확장 및 업그레이드가 가능하며 총 소유 비용을 훨씬 더 정확하게 예측할 수 있는 장점이 있다. SaaS의 역사 2000년대 초 개발된 1세대 SaaS 솔루션은 단절, 경직된 형태였으며, 한 가지..
-
[Data Pipeline 실습] 1. 데이터 생성Data Engineer 2023. 3. 30. 17:52
원래 계획대로라면 운영체제를 들어야하는 게 맞으나, 지난 2주간 네트워크 수업을 듣다보니 일방적인 이론 수업에 흥미를 잃었다. 그래서 이번주는 T아카데미에서 했었던 데이터 파이프라인 이론과 실습을 곁들여 공부하기로 했다. 실습 과정 Twitter API로 JSON log 데이터를 받아와서 Kafka에 전송하고, Consumer를 Logstash로 지정해 하나는 ElasticSearch로, 다른 하나는 Google Cloud Service로 보내 각각 Kibana와 Zeppelin으로 분석을 할 예정이다. 실습 환경 설정 - Window 7 이상 - VirtualBox 다운로드(5.1.22 ver) - Ubuntu 설치(16.04 LTS ver) 2017년도 자료라서 그런지 현재 버전과 조금 맞지 않다....
-
OLTP와 OLAP, 그리고 Data WarehouseData Engineer 2023. 3. 16. 15:37
데이터 엔지니어 채용을 보았을 때, 몇몇 기업들은 OLAP와 OLTP에 대한 경험을 우대사항으로 표기했었다. 데이터베이스 관련 지식이 부족한 본인은 이번 기회에 이 용어가 궁금해 알아보기로 했다! OLTP, Online Transaction Processing - 온라인 트랜잭션 처리 먼저 트랜잭션 처리에 대한 의미를 살펴볼 필요가 있다. 트랜잭션(Transaction) 처리는 주기적으로 수행되는 일관 작업과 달리 클라이언트가 지연 시간이 낮은 읽기와 쓰기를 가능하게 하는 것을 의미한다. (네트워크에서 HTTP 프로토콜을 공부했을 때 GET이나 POST 방식으로 서버와 클라이언트가 정보를 주고받는 한번의 행위를 트랜잭션이라고 배웠는데, 동일한 개념으로 받아들여도 될 것 같다.) 현재 DB는 많은 여러 종..
-
데이터 처리기술_분산 데이터 저장 기술Data Engineer 2023. 3. 15. 14:10
분산 데이터 저장 기술 데이터베이스 구축시 데이터를 복수개의 데이터 저장소에 분산하여 부하를 분산할 수 있다. 몇 개의 데이터베이스가 가동불능인 경우에도 임계치 이상의 데이터베이스가 가동 가능한 경우 안전하게 데이터를 접근할 수 있도록 결함 감내 기능을 제공하며, 복수 개의 분산정보를 복수 개의 데이터 저장소에 분산함으로써 보안성을 높인 데이터베이스 시스템 기술. 분산 파일 시스템은 Master node와 Slave node, 두 개의 노드로 구성되어 있다. 마스터 노드는 실제 데이터를 저장하는 서버 및 저장되어 있는 데이터를 관리하는 역할을 하고, 슬레이브 노드는 실제 데이터를 저장하는 역할 및 사용자 요청에 따라 데이터를 전달해 주는 역할을 한다. 마스터 노드 - 분산 파일 시스템에서 사용하고 있는 ..