Data Engineer
-
[Netflix TechBlog] Data PipeLine_Asset ManagementData Engineer 2023. 6. 4. 14:35
배포판 관리 *출처 https://netflixtechblog.com/data-pipeline-asset-management-with-dataflow-86525b3e21ca https://netflixtechblog.com/ready-to-go-sample-data-pipelines-with-dataflow-17440a9e141d Data pipeline asset management with Dataflow by Sam Redai, Jai Balani, Olek Gorajek netflixtechblog.com - Asset : Any business logic code in a raw or compiled form to be executed as part of the user defined data ..
-
[Kafka] 프로듀서의 동작과 원리Data Engineer 2023. 5. 26. 13:46
프로듀서의 기본 역할은 소스에 있는 메시지들을 카프카의 토픽으로 전송하는 것이다. Partitioner - 카프카의 토픽은 성능 향상을 위한 병렬 처리가 가능하도록 하기 위해 파티션으로 나뉘고, 최소 하나 또는 둘 이상의 파티션으로 구성 - 프로듀서가 카프카로 전송한 메시지는 해당 토픽 내 각 파티션의 로그 세그먼트에 저장 - 프로듀서는 토픽으로 메시지를 보낼 때 해당 토픽의 어느 파티션으로 메시지를 보내야 할 지를 결정해야 하는데, 이때 사용하는 것이 바로 Partitioner 프로듀서가 파티션을 결정하는 알고리즘은 기본적으로 메시지의 키를 해시 처리해 파티션을 구하는 방식을 사용한다. 메시지의 키값이 동일하면 해당 메시지들은 모두 같은 파티션으로 전송된다. 만약 예상치 못한 많은 양의 메시지가 카프카..
-
[Kafka] 카프카의 내부 동작원리Data Engineer 2023. 5. 20. 14:38
Kafka의 내부 동작 원리와 구현에서 가장 중요한 부분 중 하나는 리플리케이션 동작이다. 이러한 리플리케이션 동작의 구현은 매우 어려운 부분일 뿐만 아니라 애플리케이션의 성능 저하도 불러오게 된다. 이를 위해 카프카는 안정성을 높임과 동시에 최대한 성능에 영향을 주지 않도록 설계되었다. Kafka 리플리케이션 고가용성 분산 스트리밍 플랫폼인 카프카는 무수히 많은 데이터 파이프라인의 정중앙에 위치하는 메인 허브 역할을 담당한다. 중앙에서 메인 허브 역할을 하는 카프카 클러스터가 만약 하드웨어의 문제나 점검 등으로 인해 정상적으로 동작하지 못한다거나, 카프카에 연결된 전체 데이터 파이프라인에 영향을 미친다면 이는 매우 심각한 문제가 될 수 있다. 이러한 이슈를 해결하기 위해 카프카는 초기 설계 단계에서부터..
-
[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년도 자료라서 그런지 현재 버전과 조금 맞지 않다....