DataHub 기본 구조
·
DataHub
기본 Skill-SetFE : ReactBE : Spring, PythonMQ : KafkaDB : Postgre, ESBatch pipeline : Airflowclient 요청을 처리할 때DataHub는 Data Discovery Platform이다. 사용자가 메타데이터를 효율적으로 검색할 수 있도록 돕는 플랫폼.많은 양의 데이터더라도 효율적으로 검색할 수 있도록 읽기 작업을 Postgre와 ES에 나눠 진행한다.검색어/필터 기반 검색은 ES로, 정해진 객체 urn이 있다면 Postgre에서 읽어온다. Front에서 Back으로는 graphql이라는 쿼리로 통신한다.Front에서 요청하는 값을 지정해 Back으로 보내면 ES나 Postgre를 찔러서 응답 결과를 다시 graphql로 싸서 Front로..
Github cherry-pick
·
DataHub
여러 명이 관리하는 깃헙 레포에서는 다양한 일이 발생한다..최근에 한 문제 상황을 cherry-pick CLI로 해결하여 이를 기록해보려 한다. Diff우선, 깃헙에서 코드 관리는 무조건 diff를 기준으로 업데이트한다. 레포의 기존 코드와 commit된 코드의 차이를 업데이트하는 것이다. commit된 코드를 레포의 기존 코드로 모두 덮어쓰기를 하지 않는다는 것을 유념해야 한다.똑같은 소리 아닌가? 예를 들어 살펴보자. 레포에 dev, main 브랜치가 있고, 아래의 코드를 두 브랜치 공통 base 코드라고 가정해보자.answer = 0for i in range(10): answer += iprint(answer) 이후 dev 브랜치에 아래의 두 커밋이 추가되었다.answer = 0for i in ra..
대규모 프로젝트에 디버깅툴 달기
·
DataHub
대규모 프로젝트 BE를 로컬에서 디버깅하고 싶다면 어떤 설정들을 해줘야 할까?   해당 프로젝트는 모듈별로 도커 이미지로 말아 k8s 위에 배포되어 있다고 가정해보자. 보통 대규모 프로젝트는 FE / BE 이렇게 단순하게 이뤄져 있지 않다.Web에서 사용자가 이벤트를 발생시키면, 인증 처리를 거친 뒤, 비동기적으로 처리하기 위해 Middle-Ware로 Kafka와 같은 MQ를 둔다.MQ는 이벤트에 따라 BE, ElasticSearch와 같은 서비스로 이벤트를 전달한다.각 이벤트들은 최종적으로 DB에 데이터를 전달한다.이렇게 대규모 프로젝트들은 FE, MQ, BE, DB 등 다양한 컴포넌트로 구성되어 있어 각각이 통신을 하고 있다. 프로젝트의 구조를 알았으니 디버깅 툴을 다는 방법을 알아보자.디버깅을 하려..