본문 바로가기
기타

[서비스] Airbyte 도입기

by yonikim 2021. 4. 22.
728x90

bin log 도입을 위해 힘써봤으나 ERROR 삼연타를 맞으며 ([Node.js] bin log(바이너리 로그) 도입기 BUT FAIL),

13일만에 투자받았다는 오픈소스 ELT 개발사인 Airbyte 의 서비스를 도입해 보기로 했다.

 


ETL vs ELT


 

ETL 은 Extract, Transform 및 Load 의 약어로, 다른 RDBMS 소스 시스템에서 데이터를 추출하여 데이터를 변환(가공)한 후 데이터웨어하우스 시스템에 데이터를 로드하는 방식이다.

 

ELT 는 데이터 이동에 대한 도구 접근 방식을 보는 다른 방법이다. 데이터를 쓰기 전에 변환하지 않고 그대로 로드해서 대상 시스템이 변환을 수행할 수 있도록 하는 방식이다. ELT 는 일반적으로 Hadoop 클러스터, 데이터 어플라이언스 또는 클라우드 설치와 같은 비 SQL 데이터베이스와 함께 사용된다 한다.

 

  ETL ELT
방법 스테이징 서버에서 데이터를 변환하고 데이터웨어하우스의 DB에 옮김 데이터웨어하우스의 DB에 데이터가 남음
코드 사용 Compute-intensive 변형, 적은 양의 데이터 대용량 데이터
변환 ETL 서버나 스테이징 서버에서 변환 실행 타겟 시스템에서 변환 실행
적재 시간 데이터가 스테이징 서버에 먼저 적재되고 나중에 타겟 시스템에 적재됨. 시간에 민감 타겟 시스템에 한번만 로드되기 때문에 빠름
변환 시간 데이터 변환이 완료될 때까지 기다려야 되기 때문에, 데이터 사이즈가 커질수록 변환에 소요되는 시간이 증가함
ELT 프로세스에서 속도는 데이터 사이즈에 절대 의존하지 않습니다.
유지보수 시간 로드 및 변환할 데이터를 선택해야 하므로 높은 유지보수가 필요 데이터를 항상 사용할 수 있기 때문에 유지보수에 드는 시간이 낮음
구현 복잡도 초기 단계에서는 구현하기 쉬움 프로세스를 구현하기 위해서는 이에 대한 숙련된 기술과 툴에 대한 깊은 이해가 요구됨

(출처: www.guru99.com/etl-vs-elt.html)

 

 


Airbyte 도입하기


1. 설치하기

$ git clone https://github.com/airbytehq/airbyte.git
$ cd airbyte

 

2. .env 파일에서 LOCAL_ROOT, LOCAL_DOCKER_MOUNT 의 Path 수정

VERSION=0.18.2-alpha
DATABASE_USER=docker
DATABASE_PASSWORD=docker
DATABASE_DB=airbyte
CONFIG_ROOT=/data
WORKSPACE_ROOT=/tmp/workspace
DATA_DOCKER_MOUNT=airbyte_data
DB_DOCKER_MOUNT=airbyte_db
WORKSPACE_DOCKER_MOUNT=airbyte_workspace
# todo (cgardens) - when we are mount raw directories instead of named volumes, *_DOCKER_MOUNT must
# be the same as *_ROOT.
# Issue: https://github.com/airbytehq/airbyte/issues/578
LOCAL_ROOT=/Users/yonikim/Desktop/airbyte
LOCAL_DOCKER_MOUNT=/Users/yonikim/Desktop/airbyte
TRACKING_STRATEGY=segment
# todo (cgardens) - hack to handle behavior change in docker compose. *_PARENT directories MUST
# already exist on the host filesystem and MUST be parents of *_ROOT.
# Issue: https://github.com/airbytehq/airbyte/issues/577
HACK_LOCAL_ROOT_PARENT=/tmp

 

3. Airbyte 띄우기

$ docker-compose up

 

4. http://localhost:8000 으로 접속

- 나는 email 주소를 넣지 않고 [Continue] 버튼을 클릭했다.

 

5. 소스 가져올 DB 정보 입력

 

6. 타겟 정보 입력

- 나는 JSON 파일로 떨어지게끔 설정했는데, 데이터는 ${LOCAL_ROOT}/${destination_path} 에 떨어질 것이다.

 

7. Load 하고자 하는 데이터를 선택하고, Sync Frequency 를 선택해 준다.

 

8. Name 을 클릭하고 클릭하여 들어가면 Status 탭이 나올텐데, [Sync now] 버튼을 클릭하면 Extract 와 Load 가 실행된다.

 

9. Load 하고자 하는 데이터를 수정하거나 sync 방식을 변경하고 싶을 땐 Settings 탭으로 들어가면 된다.

728x90

'기타' 카테고리의 다른 글

개발 전 ADR 작성하기  (1) 2024.02.28
네이버 검색에서 티스토리 노출하기  (2) 2023.11.19
[Copilot] 이제 코딩도 AI  (0) 2021.07.20