Data Engineer
-
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가 단순히 거쳐 지나가는 단계라고 할지라도 그것이 소스 시스템 소유자가 유지 관리하는 코드에 존재한다는 것은 시스템 소유자가 어떤 데이터가 추출되고 있는지 알고 있다는 것을 ..
-
[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 리플리케이션 고가용성 분산 스트리밍 플랫폼인 카프카는 무수히 많은 데이터 파이프라인의 정중앙에 위치하는 메인 허브 역할을 담당한다. 중앙에서 메인 허브 역할을 하는 카프카 클러스터가 만약 하드웨어의 문제나 점검 등으로 인해 정상적으로 동작하지 못한다거나, 카프카에 연결된 전체 데이터 파이프라인에 영향을 미친다면 이는 매우 심각한 문제가 될 수 있다. 이러한 이슈를 해결하기 위해 카프카는 초기 설계 단계에서부터..