반응형
1.airbyte 란?
- 오픈소스 데이터 통합 플랫폼 (ELT)
- api , database, warehouse , application 간 데이터 sync, 즉 동기화 를 돕는 , 가능하게 해주는 소프트웨어 라고 하지만 내생각엔 아직 툴..
- 데이터 통합 상품
- 장점
- built for extensibility
- 커넥터 추가가 쉽고 확장성을 제공한다.
- optional nomalized schemas
- 선택적으로는 스키마를 정규화 할 수 있다.
- Full grade schfeduler
- 필요한 만큼 replication 을 자동화 할 수 있다.
- real - time monitoring
- 모든 로그를 모니터링 하고, 기능으로 제공한다.
- incremental updates
- replication 이 증분 업데이트를 기반으로 동작하여 transfer cost 를 줄여준다.
- manual full refresh
- 원할 때 수동으로 refresh 가 가능하다.
- built for extensibility
- 단점
- Stable 릴리즈 버전 없음, 아직 알파
- 사용자 액세스 관리에 대한 지원 부족
2. 왜 airbyte ?
- 기존 ETL 기반의 아키텍쳐에서 ELT 기반으로 리아키텍쳐링 할 때, 원본 데이터 소스를 이관 및 sync 해주는 역할이 중요해졌고, airbyte 가 시장에 빠르게 진입 했다고 생각한다.
- 손쉽게 커넥터 설치만으로 데이터 연동 및 sync 가 가능해졌고, 충분한 UI 를 제공하고 있다.
- airflow 로도 비슷한 구현을 할 수 있지만 개발이 필요한데.. 얘는 개발도 안해도 되고 CDC 옵션까지 제공한다.
- 커넥터가 정말 많고 다양하게 지원한다.
3. airbyte 구성 요소
- UI
- airbyte 사용자를 위한 GUI
- WebServer
- UI 와 API 사이에서 발생하는 이벤트를 핸들링 하는 웹 서버
- Config Store
- 커넥션 정보들을 담고 있음 ( credential, 주기 등등.)
- Config API
- airbyte 의 main controle plane. 직역하면 관리영역이고, airbyte 의 모든 operation(동작) 들. API 콜 포함하여 설정하고 Inovoke 를 수행한다.
- Scheduler
- API 로 요청을 받고 Temporal Service 로 병렬적으로 보낸다. 잡의 성공/실패를 트래킹 하는 역할도 있다.
- Scheduler Store
- 예약된 스케쥴 job 정보가 저장된 곳
- Temporal Service
- 큐에 쌓이는 Task 와 workflow. 를 관리한다.
- Worker
- 소스 커넥터에 연결하고, data 를 받아와 목적지에 쓰는 역할을 수행한다
- 지원되는 동기화 모드
- full refresh - overwrite - 전체 새로고침 덮어쓰기 , 모든 데이터를 다시 동기화 하고 교체
- full refresh - append - 전체 새로고침 추가 , 모든 행을 다시 동기화 하고 복제
- incremental append - 증분 추가 , 새 행을 동기화하고 이미 동기화된 행뒤에 추가
- incremental dedupe history - 중복 제거된 증분 추가, 새 행을 동기화 하고 동기화된 행을 추가하며 증분 중복제거를 기록
위 구성 컴포넌트들의 이름이 조금 다르게 되있지만 컨테이너의 로그를 보면 대략적으로 어떤 데몬이 해당 컴포넌트 역할을 하는지 알 수 있다.
** airbyte 는 job 이 수행될 때 동적으로 해당 job의 컨테이너가 새로 생성되서 동작한다. 관리형 컨테이너 서비스를 써서 구축한다면 참고하길 바란다.
참조
https://airbytehq.github.io/understanding-airbyte/high-level-view/
반응형
'Data Engineer' 카테고리의 다른 글
Chat GPT Simple Application 만들기 (0) | 2023.05.01 |
---|---|
airbyte(에어바이트) 구축 및 실습 (0) | 2023.01.02 |
Docker Compose를 이용하여 Apache kafka (카프카) 클러스터 구축 (0) | 2022.08.19 |
Apache kafka (카프카) 기초 (1) | 2022.08.19 |
kubernetes 기초 (1) (0) | 2021.12.01 |