데브코스 TIL/빅데이터, 스트리밍 데이터 처리 32

데이터 처리 변천

강의 데이터 처리 단계 데이터 수집 (Collection) 데이터 저장 (Storage) 데이터 처리 (Processing) 데이터 저장 시스템 변천 1980년대 후반 : Data Warehouse 2000년대 후반 : Data Lake 2010년대 중반 : Cloud Data Platform / Messaging Queue 2021년 : Data Mesh SLA "SLA"(Service Level Agreement)는 서비스 제공업체와 고객 간의 계약 혹은 합의 입니다. 서비스 품질, 성능 및 가용성의 합의된 수준을 개괄적으로 기술 통신, 클라우드 컴퓨팅에서 사용 사내 시스템 간에도 가능 성능 처리량(Throughput) : 단위 시간 동안 처리할 수 있는 데이터의 양 지연시간(Latency) : 데이..

배치 처리 소개

강의 배치 처리 "배치 처리"는 주기적으로 데이터를 한 곳에서 다른 곳으로 이동하거나 처리하는 것입니다. 가장 중요한 성능은 처리량(Throughput) 입니다. 처리 주기 : 시간, 분, 일 단위 처리 시스템 구조 분산 파일 시스템 : HDFS, S3 분산 처리 시스템 : MapReduce, Hive/Presto, Spark DataFrame, Spark SQL 처리 작업 스케줄링 : Airflow

Spark 클라우드

강의 AWS Spark AWS에서 Spark를 실행하기 위해서는 EMR(Elastic MapReduce)를 이용하는 것이 일반적입니다. "EMR"은 Hadoop의 YARN과 유사한 기능을 제공하는 AWS의 서비스 입니다. worker node : EC2 서버 HDFS : S3 실행 과정 AWS EMR 클러스터 생성 옵션 : Spark 실행 m5.xlarge 노드 3개 선택 기본 파일 시스텀 선택 : S3 마스터 노드 포트 번호 22 지정 마스터 노드를 드라이버 노드로 사용 : SSH 이용하여 로그인 PySpark 잡 코드 실행 ssh -i 프라이빗키.pen hadoop@마스터노드호스트이름 spark-submit --master yarn stackoverflow.py # stackoverflow.py fr..

Spark 내부동작

강의 내부 연산 Transformations Narrow Dependencies 독립적인 Partition level 작업 병렬처리 가능 select, where, filter, map, count Wide Depedencies Shuffling이 필요한 작업 groupby, reduceby, partitionby, repartition, coalece Actions Read, Write, Show, Collect Job 실행 Lazy Execution 내부 동작 Action → Job → Stages → Tasks Action : 하나의 Job 생성 및 코드 실행 Jobs : 다수의 Stage로 구성 후 Shuffling 발생시 추가 생성 Stages : DAG 형태의 Task 병렬 실행 가능 Task..

Spark 파일 포맷

강의 Spark 파일 포맷 Unstructured : Text 눈으로 확인 가능 Semi-structured : JSON, WML, CSV 눈으로 확인 가능 Structured : PARQUET, AVRO, ORC, SequenceFile 압축된 정보 스키마 제공 # 파일 다운로드 !wget https://pyspark-test-sj.s3.us-west-2.amazonaws.com/appl_stock.csv from pyspark.sql import * from pyspark.sql.functions import * if __name__ == "__main__": spark = SparkSession \ .builder \ .appName("Spark Writing Demo") \ .master("loc..

Spark Unit Test

강의 Unit Test "Unit Test"는 코드 상의 특정 기능을 테스트하기 위해 작성된 코드 입니다. 정해진 입력에 대한 예상된 출력 확인 형태 CI/CD를 사용할 때 전체 코드의 테스트 커버리지 중요 언어별 정해진 테스트 프레임워크 사용 Java : JUnit .NET : NUnit Python : unittest 실습 # 파일 다운로드 !wget https://s3-geospatial.s3-us-west-2.amazonaws.com/name_gender.csv from pyspark.sql import SparkSession spark = SparkSession \ .builder \ .appName("Python Spark Unit Test") \ .getOrCreate() df = spark..