-
Spark
Spark User Defined Functions
PySpark는 데이터 처리와 분석을 위해 다양한 방식으로 사용자 정의 함수를 활용할 수 있습니다. 그 중 UDF(User Defined Function)와 Pandas UDF는 데이터 변환 및 집계 작업을 위해 자주 사용됩니다. UDF UDF(User Defined Function)는 PySpark에서 사용자 정의... -
Spark
Spark Joining DataFrame
Spark에서는 DataFrame과 Spark SQL을 사용하여 데이터를 결합할 수 있습니다. 이 때 데이터셋의 크기가 매우 다를 경우, Broadcast를 사용하여 작은 데이터셋을 모든 노드에 분배함으로써 조인의 성능을 크게 향상시킬 수 있습니다. DataFrame DataFrame에서는 join() 함수를 사용하여 두... -
Spark
Spark Data Processing
Apache Spark는 대규모 데이터를 분산 처리할 수 있는 강력한 엔진으로, 다양한 방식으로 데이터를 처리할 수 있습니다. 가장 대표적인 데이터 처리 방법은 RDD(Resilient Distributed Dataset), DataFrame, Spark SQL입니다. 각 방식은 사용자가 데이터에 접근하고 변형하는 방식에서 차이를... -
Spark
Spark Execution Architecture
Apache Spark는 대규모 데이터 처리에 특화된 분산 컴퓨팅 시스템입니다. Spark의 핵심은 데이터를 분산하여 처리하는 데 있으며, 효율적인 데이터 처리를 위해 여러 개념들이 유기적으로 작동합니다. Execution Flow Driver Spark 애플리케이션이 실행될 때 가장 먼저 시작되는 것은... -
Hadoop
Hadoop Structure Evolution
Hadoop은 분산 데이터 처리 플랫폼으로, 데이터 처리의 혁신을 이끌며 큰 인기를 얻었습니다. Hadoop의 발전은 크게 Hadoop 1.0과 Hadoop 2.0으로 나눌 수 있으며, 이 두 버전의 구조적 차이는 리소스 관리, 작업 실행 모델, 확장성 측면에서 많은... -
Google Cloud
Google Cloud Command Tool
Google Cloud는 다양한 서비스를 CLI 명령어로 제어할 수 있도록 지원합니다. 그중에서 BigQuery, gsutil, gcloud 명령어는 데이터 처리 및 관리를 위해 자주 사용됩니다. Google Cloud Project gcloud 명령어는 Google Cloud Project의 다양한 서비스와 리소스를 관리할 수... -
dbt
dbt Quality Management
dbt (Data Build Tool)는 데이터 파이프라인을 효율적으로 구축하고 관리할 수 있도록 돕는 도구입니다. 데이터 모델을 생성하고, 테스트하며, 이를 문서화하고 추적할 수 있는 다양한 기능을 제공합니다. 또한, 성능 최적화를 위한 여러 옵션을 제공하여 데이터 엔지니어링 워크플로우를... -
dbt
dbt Project Setup
dbt (Data Build Tool)는 데이터 변환 작업을 SQL로 처리하고, ETL 파이프라인에서 데이터를 변환하는 데 초점을 맞춘 도구입니다. dbt는 데이터를 변환하고 모델링하는 과정을 간소화하여 데이터 엔지니어링을 효율적으로 수행할 수 있게 해줍니다. Setting dbt를 설치하려면 먼저 Python... -
Airflow
Airflow DAG Basics
DAG(Directed Acyclic Graph)는 Airflow에서 워크플로우를 정의하는 기본 단위로, Python 코드로 작성되며 여러 개의 Task로 구성됩니다. 각 Task의 실행 순서와 종속성을 정의할 수 있으며, 주어진 일정에 따라 자동으로 실행되어 데이터 파이프라인을 효과적으로 관리할 수 있습니다. Basic... -
Airflow
Airflow Various Executor
Executor는 Apache Airflow에서 작업을 실행하는 핵심 구성 요소로, 작업을 어떻게 처리할지에 대한 중요한 역할을 합니다. 다양한 종류의 Executor는 서로 다른 환경과 요구 사항에 맞춰 작업을 병렬로 처리하거나 분산 시스템을 활용하는 등 다양한 방식으로 동작합니다. SequentialExecutor...