[PySpark] PySpark vs. Pandas 속도 비교
·
Databases/Data Engineering
서론 PySpark를 통해 대량의 데이터를 빠르게 처리할 수 있다. 또한 디스크 기반이 아닌 메모리 기반 처리를 통해 반복적인 계산이 많은 경우에 장점을 가진다. PySpark를 사용하는 경우, 사용하지 않는 경우(Pandas) 처리 속도가 어느 정도 차이가 나는지 간단히 확인해보고자 한다.코드# 예제 데이터 생성names = [f'Name{i}' for i in range(1, 101)]mbti_types = ['INTJ', 'ENTP', 'INFJ', 'ENFP', 'ISTJ', 'ESFP', 'ISFJ', 'ESTP', 'INTP', 'ENTJ', 'ISTP', 'ENFJ']data = { 'Name': names, 'MBTI': [random.choice(mbt..
Hadoop과 구성 요소
·
Databases/Data Engineering
HadoopHadoop은 대규모 데이터 처리 및 저장을 위한 Java 기반 오픈 소스 프레임워크로, 주로 분산 컴퓨팅 환경에서 사용된다.하둡은 데이터 스토리지나 관계형 데이터베이스 솔루션이 아니다.HDFS를 통해 데이터를 저장하고, MapReduce를 활용하여 데이터를 병렬로 처리한다.구성 요소HDFSHDFS(Hadoop Distributed File System)는 하둡의 저장 시스템으로 대규모 데이터 세트를 여러 서버에 분산 저장한다.데이터는 블록 단위로 나누어지고 여러 노드에 복제되어 저장된다.HDFS는 읽기 작업을 중심으로 만들어졌기 때문에 수정이 불가능하다.일반적인 블록 크기는 128MB 또는 256MB이다.HDFS의 구조HDFS는 Master-Slave 구조이다.Master-Slave 구조는 ..
[Airflow] DAG 선언 및 실행하기
·
Databases/Data Engineering
참고https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/dags.html#running-dagsDAG방향 비순환 그래프(Directed Acyclic Graph, DAG)는 방향이 존재하며 사이클이 존재하지 않은 그래프를 말한다. Airflow와 같은 작업 스케쥴링 툴에서 자주 사용하는 개념이다. Airflow에서 DAG는 작업(task)과 작업 간의 의존성을 정의하는 구조이다. 작업은 DAG의 기본 단위이며, 의존성을 통해 작업 간의 실행 순서를 정의한다. 스케쥴링을 통해 특정 주기나 이벤트에 따라 자동으로 실행될 수 있도록 할 수 있다.DAG 선언 import datetime from airflow import DAG from ai..
[Airflow] Airflow의 Branching 알아보기
·
Databases/Data Engineering
BranchingAirflow의 Branching은 DAG 내에서 조건에 따라 특정 작업을 선택적으로 실행할 수 있도록 하는 기능이다. 사용되는 두 가지 개념이 있다.BranchPythonOperator는 파이썬 함수를 호출하여 조건에 따라 다음에 실행할 작업을 결정한다. 특정 조건을 평가하여 그 결과에 따라 다음 실행할 태스크의 ID를 반환한다.DummyOperator는 선택되지 않은 경로의 태스크를 대체한다. 이 연산자는 아무 작업도 수행하지 않지만 DAG의 흐름을 유지하는 데 사용된다. 전체 코드from airflow import DAGfrom airflow.operators.python_operator import BranchPythonOperator, PythonOperatorfrom airfl..
[Airflow] Airflow 실행하기 with Docker
·
Databases/Data Engineering
참고https://leeyh0216.github.io/posts/airflow_install_and_tutorial/ Airflow 튜토리얼 실행해보기Airflow 튜토리얼 실행해보기 Airflow 기본 개념 - DAG와 Operator 개요 Airflow를 사용할 일이 많아질 것 같아 사용법 정리 포스팅을 진행한다. Ubuntu 환경에서 설치, 운영, 활용 실습을 진행하려 했으나,leeyh0216.github.io Apache AirflowApache Airflow는 데이터 파이프라인을 작성, 스케쥴링, 모니터링하기 위한 오픈 소스 플랫폼이다. 복잡한 데이터 처리 작업을 하는 데 유리하며, ETL(추출, 변환, 적재) 프로세스에 많이 사용된다. 스케쥴링 기능은 cron 표현식을 통해 작업의 실행 주기를..
[Docker] 도커란? 도커 설치하기
·
Databases/Data Engineering
참고https://www.youtube.com/watch?v=LXJhA3VWXFA&t=146sDocker도커란 소프트웨어를 컨테이너라는 격리된 환경에서 실행할 수 있도록 하는 플랫폼이다. 애플리케이션, 시스템 설정, 의존성 등을 하나로 묶어 배포할 수 있다. 도커를 사용하게 되면 일관된 환경에서 애플리케이션을 배포 및 실행할 수 있게 된다. 이는 애플리케이션의 이식성을 높인다. 패키징된 애플리케이션(컨테이너)는 OS와 무관하게 실행 가능하며, 비슷한 동작을 하는 가상 머신보다 가볍고 빠르다. 이는 도커가 호스트 OS의 커널을 공유하고 각 컨테이너가 독립적인 user space를 가지기 때문이다. 따라서 컨테이너는 더 적은 리소스를 사용하게 되는 것이다. 이는 보안 측면에서도 이점이 있다. 도커의 이미지는..
데이터 파이프라인이란?
·
Databases/Data Engineering
정의데이터 파이프라인은 데이터 수집, 처리, 저장, 분석을 위한 자동화된 프로세스이다.단계데이터 수집: DB, API, 로그 등에서 데이터를 수집한다. 수집한 데이터들의 형식과 구조는 다양할 수 있다.데이터 정제: 데이터의 중복을 제거하거나 결측값 처리, 데이터 형식 변환 등의 작업을 수행한다.데이터 변환: 정제된 데이터를 분석이나 저장에 적합한 형식으로 변환한다. 이 과정에서 데이터 집계, 필터링, 조인 연산 등이 사용될 수 있다. 또한 ETL(Extract, Transform, Load) 프로세스의 일환으로 수행된다.데이터 저장: 변환된 데이터를 데이터베이스, 데이터 웨어하우스, 데이터 레이크 등 적절한 곳에 저장한다. 데이터의 접근성 및 효율성을 고려해야 한다.데이터 웨어하우스: 대량의 데이터를 체..