FlyData 소개
Integrate.io의 데이터 전송 서비스는 사실 두 가지로 구성되어 있습니다. 지금까지 주로 다뤄온 것은 ETL 서비스인 Xplenty이지만, 이 외에 ELT 서비스인 FlyData도 함께 제공됩니다. 본문에 들어가기 전에 FlyData를 간단히 소개합니다. FlyData는 주로 MySQL 등의 데이터베이스에서 Amazon Redshift와 같은 데이터 웨어하우스로 데이터를 실시간에 가깝게 동기화하는 데 특화된 클라우드 기반 데이터 통합 서비스입니다. CDC(Change Data Capture) 기술을 활용해 데이터베이스의 변경 사항을 거의 실시간으로 DWH에 반영할 수 있는 것이 특징입니다.
주요 특징
- 실시간 CDC 복제: 데이터베이스의 변경 사항을 즉시 캡처
- 간단한 설정: 비교적 적은 설정만으로 복제를 시작 가능
- 데이터 웨어하우스에 특화: 데이터 웨어하우스로의 동기화에 최적화된 설계

FlyData에 대해서는 이 정도로 살펴보았습니다.


개요
현대의 데이터 환경에서는 단순히 데이터를 수집하는 것만으로는 부족하며, 수집한 데이터를 분석·가공한 뒤 다시 운영 시스템에 반영하는 순환형(Circular) 데이터 흐름이 중요해지고 있습니다. 이 문서에서는 다음 두 가지 도구를 조합해 이러한 순환 구조를 구현하는 방법을 소개합니다.
이 두 도구를 조합하면 데이터 수집 → 중앙 집중 분석 → 결과 역배포로 이어지는 하나의 완결된 데이터 순환 파이프라인을 구축할 수 있습니다.

아키텍처 설명
아래는 순환형 데이터 통합 아키텍처의 구성이며, 이어서 그 흐름을 설명합니다.
각 단계의 역할
순환형 데이터 통합 아키텍처의 각 단계를 살펴보겠습니다.-
단계 1: ELT — FlyData를 통한 데이터 수집
- CDC(Change Data Capture) 방식으로 각 운영 DB의 변경 내용을 실시간 또는 준실시간으로 Snowflake에 연계
- 데이터 변환 없이 원본(Raw) 데이터를 먼저 DWH에 저장(ELT의 핵심)
- 여러 이종 데이터베이스를 하나의 DWH로 통합
-
단계 2: 분석·연산 — Snowflake 내에서의 처리
- 수집한 원본 데이터를 바탕으로 SQL View, Stored Procedure, dbt 등을 활용해 **조정 데이터(Reconciled Data)**를 생성
- 예: 재고 조정값, 정산 금액, 집계된 사용자 점수 등
-
단계 3: ETL — Xplenty를 통한 데이터 역배포
- Xplenty의 비주얼 파이프라인으로 Snowflake의 가공 데이터를 읽어옴
- 필요한 변환(필드 매핑, 타입 변환, 필터링) 적용 후
- 각 운영 DB에 Merge(Upsert), Append, Truncate & Insert 등의 방식으로 역송신
사례: EC 플랫폼의 재고·정산 데이터 동기화
사례 배경
- 여러 리전(일본, 미국, 한국)에 개별 운영 DB를 보유한 EC 서비스
- 각 리전의 결제 데이터를 중앙에서 집계해 글로벌 결제 조정값을 계산
- 계산된 조정값을 각 리전의 DB에 반영해야 하는 요건이 존재
단계 1: FlyData로 각 리전 DB → Snowflake로 수집



- [일본 MySQL] → (CDC) → Snowflake:
raw.jp_payments - [미국 PostgreSQL] → (CDC) → Snowflake:
raw.us_payments - [한국 MySQL] → (CDC) → Snowflake:
raw.kr_payments


단계 2: Snowflake에서 글로벌 결제 조정값 계산

단계 3: Xplenty로 조정 데이터 → 각 리전 DB로 역배포
Xplenty 파이프라인 구성 예시:
- JP MySQL, US PostgreSQL, KR MySQL 각각에 개별 Xplenty 파이프라인을 구성하거나, 단일 파이프라인 내에서 분기 처리
- Xplenty 스케줄러에서 Snowflake의 계산이 완료된 후 자동 실행되도록 설정(의존 관계 체이닝)
장점과 단점
장점
단점
주의 사항
-
데이터 루프 방지(가장 중요)
- 역배포 데이터에는 출처를 식별할 수 있는 메타 컬럼(
source_system,is_adjusted,updated_by등)을 반드시 추가하십시오. - FlyData의 CDC 필터 설정 또는 Snowflake의 View 로직에서, 역배포 데이터를 재수집 대상에서 제외하는 처리를 반드시 구현하십시오.
- 역배포 데이터에는 출처를 식별할 수 있는 메타 컬럼(
-
멱등성(Idempotency) 보장
- Xplenty의 역배포 파이프라인이 중복 실행되더라도 데이터가 이중으로 삽입되지 않도록, 반드시 Merge(Upsert) 모드와 명확한 기본 키(PK)를 설정하십시오.
-
실행 순서·의존 관계 관리
- Snowflake의 연산(View 갱신,
dbt run등)이 완료된 이후에만 Xplenty 파이프라인이 실행되도록 스케줄 또는 의존 관계 트리거를 설정하십시오. - Xplenty의 Dependent Execution 또는 Webhook Trigger 기능을 활용할 수 있습니다.
- Snowflake의 연산(View 갱신,
-
오류 발생 시 부분 롤백 전략
- 역배포 도중 일부 DB에만 데이터가 반영되고 나머지에서 실패하면 데이터 불일치가 발생합니다.
- Xplenty의 단일 트랜잭션 모드(Single Transaction Mode) 또는 Pre/Post-action SQL을 활용해 롤백 전략을 수립하십시오.
-
모니터링과 알림 설정
- FlyData와 Xplenty 양쪽에 장애 알림(Hook)을 설정해, 파이프라인의 어느 구간에서 오류가 발생하더라도 즉시 감지할 수 있도록 하십시오.
- Xplenty의 Slack, PagerDuty, Email Hook을 활용하면 효과적입니다.
-
민감 데이터 처리
- 개인정보(PII)나 금융 정보가 포함된 데이터를 역배포하는 경우, Xplenty의 Select 또는 Filter 컴포넌트를 사용해 불필요한 민감 필드를 제외하거나 마스킹 처리하십시오.