-
Kafka
Kafka Processing Flow
Kafka는 분산 메시지 시스템으로, 프로듀서가 데이터를 파티션에 분배하고, 컨슈머가 그 데이터를 읽는 방식으로 메시지를 전달합니다. 컨슈머는 파티션의 오프셋을 통해 데이터를 읽고, 이를 처리한 후 오프셋을 커밋하여 메시지의 순서와 중복 처리 문제를 관리합니다 Producer Producer는 데이터를... -
Spark
Spark Submit Overview
spark-submit은 Spark 애플리케이션을 클러스터에 제출하고 실행하는 명령어입니다. 이 명령어는 애플리케이션을 실행할 환경을 설정하고 리소스를 할당하는 여러 옵션을 제공합니다. Master Configuration --master는 Spark 애플리케이션이 실행되는 클러스터의 중심 역할을 합니다. 다양한 클러스터 매니저를 사용할 수 있으며, 각... -
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...