홈으로 돌아가기

ETL 아키텍처: asapBI, Trino, Spark, Airflow - 데이터 엔지니어를 위한

asapBI는 Trino, Spark, Airflow와 같은 도구를 통합한 단일 인터페이스를 통해 ETL 프로세스를 오케스트레이션하는 플랫폼입니다. 시스템은 간단한 작업에 대한 코드를 자동으로 생성하며, 오프라인 개발을 지원하고, 벤더 락인을 피하며, 데이터 엔지니어에게 유연성과 제어를 제공합니다.

ETL 프로세스: Trino, Spark, Airflow를 위한 단일 인터페이스 asapBI
Advertisement 728x90

# ETL 아키텍처: asapBI가 Trino, Spark, Airflow를 하나의 인터페이스로 통합하는 방법

asapBI 플랫폼은 Trino, Spark, Airflow 같은 도구를 하나의 인터페이스로 조율하며 ETL 프로세스를 간편하게 설계할 수 있게 해줍니다. 특정 벤더에 종속되지 않으며, 일상적인 작업은 자동 코드 생성으로 처리하고 복잡한 부분은 수동 조정이 가능합니다. 로컬 개발을 지원하며 변경 사항 동기화도 원활합니다.

asapBI의 통합 인터페이스 작동 원리

asapBI의 핵심은 여러 시스템에 흩어진 자산을 하나의 제어 지점으로 묶는 것입니다. 이렇게 데이터 모델과 ETL 프로세스가 고립되지 않고 연결됩니다. 이 인터페이스는 선택 사항입니다. 제거해도 동작하지만 설정이 번거로워집니다. 플랫폼 아키텍처는 오케스트레이션을 중심으로 하며, asapBI가 중앙 허브 역할을 해 외부 클러스터와 데이터베이스와 상호작용합니다.

시스템이 해결하는 주요 요구사항:

Google AdInline article slot
  • 간단한 프로세스(테이블 간 데이터 이동 등)는 드래그 앤 드롭 필드 매핑으로 처리하며, 일상 작업의 약 90%를 커버합니다.
  • 복잡한 워크플로는 SQL, Python, Java, Scala, R로 직접 코드를 작성합니다.
  • 대규모 연산은 Trino, Spark, Impala 같은 외부 클러스터에서 실행해 저장과 연산을 분리합니다.
  • 모든 로드를 한 곳에서 관리해 모니터링을 단순화합니다.
  • 오프라인 개발 지원: 인터넷 없이 로컬에서 작업 후 변경 사항 동기화.
  • 오픈소스 컴포넌트만 사용해 벤더 락인 방지와 유지보수 용이.

데이터 전송 프로세스(DTP) 생성 및 설정

asapBI에서 ETL의 기본 빌딩 블록은 DTP(Data Transfer Process)입니다. 이는 다른 테이블(다른 데이터베이스 간 가능)에서 테이블을 채우는 알고리즘입니다. DTP를 생성한 후 그래픽 인터페이스로 필드 매핑을 설정합니다. Greenplum에서 ClickHouse로의 데이터 이동처럼 DBMS 간 이동을 Trino나 Spark를 실행 엔진으로 처리합니다.

설정 후 Airflow 오케스트레이터에 DTP를 배포합니다. asapBI가 Airflow에 연결해 Spark 클러스터로 태스크를 전달합니다. 구현 언어는 Spark용 SQL 또는 Python을 선택합니다. 생성된 코드는 코드 탭에서 확인하고 편집 가능해 완전한 투명성을 보장합니다.

Spark용 자동 생성 Python 코드 예시:

Google AdInline article slot
# Spark에서 DTP용 예시 생성 코드
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("DTP_Example").getOrCreate()
df_source = spark.read.format("jdbc").option("url", "jdbc:postgresql://host/db").option("dbtable", "source_table").load()
df_target = df_source.selectExpr("col1", "col2", "col3")
df_target.write.format("jdbc").option("url", "jdbc:clickhouse://host/db").option("dbtable", "target_table").mode("overwrite").save()

DTP를 Airflow에 저장하면 실행 가능한 DAG가 자동 생성됩니다. Airflow UI나 asapBI에서 DAG를 실행하고 디버깅하며, 실행 로그도 추적합니다.

로드 체인 오케스트레이션 및 워크플로 관리

DTP를 연결해 워크플로를 만들면 Airflow 용어로 DAG가 됩니다. 간단한 체인은 태스크 트리에 DTP를 추가해 구성합니다. 조건문, 루프, 고급 로직은 자동 생성 DAG 코드를 수동 편집합니다.

Airflow의 강점은 여러 DAG를 병렬 실행하는 데 있으며, 이를 통해:

Google AdInline article slot
  • 독립 단계 병렬화로 로드 속도 향상.
  • 실패 태스크 자동/수동 재시도, 전체 체인 중단 없음.
  • 진정한 프로세스 독립성.

Airflow나 Dagster 같은 오케스트레이터가 없으면? asapBI가 선택한 데이터베이스에 배포하며 DTP 실행 함수를 자동 생성합니다. 이 코드도 편집 가능해 유연합니다.

주요 요약

  • asapBI는 오픈소스 도구로 ETL 오케스트레이션을 사용자 친화적으로 제공하며 벤더 락인을 피합니다.
  • 일상 작업은 자동 코드 생성, 복잡 시나리오는 수동 편집 가능.
  • 오프라인 개발과 로컬 테스트가 원활히 동기화.
  • 모든 것을 하나의 대시보드에서 모니터링 및 관리.
  • 블랙박스 없음: 생성 코드 항상 확인 및 수정 가능.

ETL의 미래와 데이터 엔지니어링에서의 AI 역할

AI가 발전함에 따라 전통 ETL과 데이터 모델의 필요성에 대한 질문이 제기됩니다. 이론적으로 데이터 레이크하우스에 모든 것을 저장하고 AI가 직접 분석해 인사이트를 도출하면 대시보드가 필요 없을 수 있습니다. 하지만 asapBI는 현재 필드 패스스루 같은 반복 작업 자동화에 초점을 맞추며, 복잡 로직은 엔지니어에게 맡깁니다. AI가 데이터 처리를 자율적으로 담당할 때까지 asapBI 같은 도구는 ETL 구조화와 오케스트레이션에 필수적입니다.

— Editorial Team

Advertisement 728x90

다음 읽기