Data Engineer
-
<Kafka 발제 자료>Data Engineer 2023. 8. 20. 21:45
Kafka 등장배경 링크드인에서 근무하던 Jay Kreps, Jun Rao, Neha Narkhede가 개발 데이터 파이프라인의 확장, 기종 간의 호환성, 고성능 기반의 스트림 데이터 처리의 문제를 해결하기 위해 개발 2011년 Apache 오픈소스로 공개 LINE의 Kafka 도입 사례 카카오 전사 모니터링 시스템(KEMI)의 Kafka 도입 사례 Kafka의 장점 높은 처리량, 빠른 응답속도, 안정성 빠른 데이터 수집이 가능한 높은 처리량 HTTP 기반으로 전달되는 이벤트임에도 한 자릿수 밀리초의 응답시간으로 처리 카프카 도입 전보다 광범위한 데이터 흐름 만들기 가능 이벤트 처리 순서 보장 엔터티 간 유효성 검사나 동시 수정 같은 무수한 복잡성 제거 적어도 한 번 전송 방식(At least Once)..
-
-
Mac Java 11 설치Data Engineer 2023. 7. 27. 14:09
Spring 실습을 위해 java 11을 설치해야 하는데, 꽤 오래 걸리는 작업이었다... ㅠ 우선 mac 상위에서 리스트를 검색하고, Library/Java/JavaVirtualMachines 에 들어간다. % cd Library/Java/JavaVirtualMachines jdk-20.jdk 기본적으로 깔려있는 java 20이 보인다. 먼저, oracle 공식 사이트에 접속하여 java 11을 다운로드 한다. https://www.oracle.com/java/technologies/downloads/#java11-mac 위 링크에 접속하여 스크롤을 내리다보면 다음과 같은 화면이 나온다 m2 칩을 사용하기 때문에 ARM64 DMG 를 선택하여 다운로드 받는다. (m1의 경우 x64 DMG 선택. m2 ..
-
7월 1주차 Error + Unknown 모음.Data Engineer 2023. 7. 8. 16:34
- six 모듈 : Six는 python2 및 3 호환성 라이브러리로, 유틸리티 기능을 제공한다. 두 Python 버전 모두에서 호환되는 Python 코드 작성을 목표로 Python 버전 간의 차이점을 매끄럽게 하기 위해 만들어졌다. Python 2.7 및 3.3 이상을 지원하며, 하나의 Python 파일에만 포함되어 있으므로 프로젝트에 쉽게 복사할 수 있다. https://six.readthedocs.io pyspider를 지금 뜯어보고 있는데 six 모듈은 위 설명과 같이 이전 파이썬 버전의 함수를 사용할 수 있게 해주는 모듈인 것 같다. - Python 상위/하위 폴더에 있는 파일 import 하기 파이썬에는 패키지 import 말고 내가 만든 파일을 불러 올 수 있다. 다음과 같은 문제는 깃헙에 ..
-
-
[Kafka] Consumer의 내부 동작 원리와 구현Data Engineer 2023. 6. 19. 15:04
* 컨슈머의 역할 : 오프셋 핵심 Consumer는 카프카에 저장된 메시지를 꺼내오는 역할을 하기 때문에, 컨슈머가 메시지를 어디까지 가져왔는지를 표시하는 것은 매우 중요하다. - 코드 배포로 인해 컨슈머가 일시적으로 동작을 멈추고 재시작하는 경우 - 컨슈머가 구동 중인 서버에서 문제가 발생해 새로운 컨슈머가 기존 컨슈머의 역할을 대신하는 경우 기존 컨슈머의 마지막 메시지 위치부터 새로운 컨슈머가 메시지를 가져올 수 있어야만 장애로부터 빠르게 복구 가능 컨슈머 그룹은 자신의 오프셋 정보를 카프카에서 가장 안전한 저장소인 토픽에 저장하는데, _consumer_offsets 토픽에 컨슈머 그룹별로 오프셋 위치 정보가 기록된다. [_consumer_offsets 토픽에 기록되는 내용] : 컨슈머 그룹, 토픽,..
-
[Boaz] Data Pipeline 발제자료Data Engineer 2023. 6. 7. 12:40
현대 데이터 인프라의 현실 데이터가 매우 다양한 소스에서 수집된다는 것! 이 때문에 소스 시스템에서 스키마 및 비즈니스 로직 변경을 처리하는 일률적인 방법을 찾기 힘들다. 1. 추상화 도입 가능하면 소스 시스템과 수집 프로세스 사이에 추상화 계층을 도입하는 것이 좋음 소스 시스템의 소유자가 추상화 방법을 유지/인식 하는 것이 Best! 예시 상황 : Postgres 데이터베이스에서 직접 데이터를 수집하는 대신 데이터베이스 소유자와 협력하여 데이터베이스에서 데이터 추출을 위해 쿼리할 수 있는 REST API를 구축하는 것을 고려 API가 단순히 거쳐 지나가는 단계라고 할지라도 그것이 소스 시스템 소유자가 유지 관리하는 코드에 존재한다는 것은 시스템 소유자가 어떤 데이터가 추출되고 있는지 알고 있다는 것을 ..