일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 웹/모바일
- 백준 #baekjoon # 2563
- 네이버
- 네이버 부스트 코스
- 8기
- Virtual Box 7.0.6
- id # tr # 환경변수
- 후기
- 부스트캠프
- 보기 편하라고 만든
- Ubuntu 20.04
- 운영체제론
- Today
- Total
목록데이터 엔지니어링 (28)
Miner
처리 시스템 구조 Producer(Publisher)가 있어서 데이터 생성 생성된 데이터를 메세지 큐와 같은 시스템에 저장 Kafka, Kinesis, Pub/Sub 등의 시스템 존재 데이터 스트림(Kafka에서는 토픽이라 부름) 마다 별도의 데이터 보유 기한 설정 Consumer(Subscriber)가 있어서 큐로부터 데이터를 읽어서 처리 Consumer마다 별도 포인터 유지, 다수의 Consumer가 데이터 읽기를 공동 수행하기도 함 해당 기술을 이용해서, 구글 검색 엔진의 데이터 처리 - 계속적인 검색 인덱스 업데이트 구글이 기술적인 부분을 공개하지 않았지만 가능하다는 것을 보여줌,,
데이터 배치 처리 배치 처리 - 주기적으로 데이터를 한 곳에서 다른 곳으로 이동하거나 처리 주기 = daily, hourly, 5분에 한번, 10분에 한번 (1분단위는 못함) 처리량(Thriughput)이 중요 데이터를 모아서 처리 처리 시스템 구조 분산 파일 시스템(HDFS, S3) 분산 처리 시스템(MapReduce, Hive/Presto, Spark DataFrame, Spark SQL) 처리 작업 스케줄링에 보통 Airflow 사용 데이터 실시간 처리 연속적인 데이터 처리 realtime vs semi-realtime (micro batch) realtime : 특정한 이벤트가 발생했을 때 (~카드를 사용했을 떄) Semi-realtime : 분단위 보다 적은 간격으로 그 사이에 모아진 데이터를 ..
일반적인 데이터 처리의 단계 데이터 수집 (Data Collection) 데이터 저장 (Data Storage) 데이터 처리 (Data Processing) Decision Science 의사 결정을 데이터 기반으로 과학적으로 하는 것 Product Science 우리가 만드는 서비스의 품질을 데이터를 기반으로 개선하는 것 처음에는 배치로 시작 ( 이 경우 처리할 수 있는 데이터의 양이 중요 ) 서비스가 고도화되면 실시간 처리 요구가 생기기 시작함 ( Realtime 처리 vs Semi Realtime 처리 ) 동일 데이터 소비가 필요한 케이스 증가 : 다수의 데이터 소비자 등장 처리량(Throughput) vs 지연시간(Latency) 처리량 : 주어진 단위 시간 동안 처리할 수 있는 데이터의 양 클수..
Kafka / Spark Streaming 구글이 데이터 분야에 끼친 영향 구글이 데이터 분야에 미친 영향은 하둡 등을 통한 배치 프로세싱부터 시작해서 텐서플로우, K8s 등 이루 말 할 수 없다. 1. 구글 검색 엔진의 등장 기존의 검색 엔진은 기본적으로 웹 페이지 상의 텍스트를 보고 랭킹을 결정 -> 신뢰가 높은 결과가 나오지 않게 됨 구글은 웹 페이지들간의 링크를 기반으로 중요한 페이지를 찾아서 검색 순위 결정 (페이지 랭크 논문) 2004년 여름에 상장, 2021년 2월 기준 1.41T로 급성장 / 검색 마케팅 플랫폼으로 확장, 안드로이드 개발로 모바일 생태계 지배, 유튜브 인수를 통한 스트리밍 시장 석권 다양한 논문 발표와 오픈소스 활동으로 개발자 커뮤니티에 큰 영향을 미침 페이지 랭크 더 중요..
Spark Session 생성 Spark 프로그램의 시작은 Spark Session 이라는 Object를 만드는 것 그리고 Spark Session에 다양한 환경설정을 하게 됨 프로그램마다 하나를 만들어 Spark Cluster와 통신: Singleton 객체 Spark 2.0에서 처음 소개됨 Spark Session을 통해 Spark이 제공해주는 다양한 기능을 사용 DataFrame, SQL, Streaming, ML API 모두 이 객체로 통신 config 메소드를 이용해 다양한 환경설정 가능 단 RDD와 관련된 작업을 할때는 SparkSession 밑의 sparkContext 객체를 사용 Spark Session API 문서 pyspark.sql.SparkSession — PySpark 3.1.1 ..
RDD, DataFrame, Dataset Immutable Distributed Data RDD (Resilient Distributed Dataset) - 클러스터내의 서버에 분산된 데이터를 지칭, 레코드별로 존재하지만 스키마가 존재하지 않음, 구조화, 비구조화 된 데이터 모두 지 RDD(low_level) 가 가장 밑 바닥에 있는 구조, 그 위에 DataFrame과 Dateset 이 올라가 있는 구조 RDD로 할 수 있는 일은 많지만 생산성이 낮아서 대부분 파이썬으로 코딩을 한다고 하면 DataFrame을 사용하고 Scala혹은 Java로 코딩한다고 하면 Dataset을 사용한다. 구조화된 데이터를 사용한다고 하면 SparkSql을 사용하는 것이 일반적, Pyspark에서는 DataFrame을 사용..
Summary 데이터 처리에서 중요한 개념 : Partition, Shuffling 데이터 구조 : RDD, DataFrame, Dataset Spark Session 생성과 설정 DataFrame 프로그래밍 Spark 데이터 시스템 아키텍처 ( 종합선물세트 같은 ) 외부데이터 : NOSQL, RDMS 데이터 병렬처리가 가능하려면? 데이터가 먼저 분산되어야함 하둡 맵의 데이터 처리 단위는 디스크에 있는 데이터 블록(128MB) hdfs-site.xml에 있는 dfs.block.size 프로퍼티가 결정 Spark에서는 이를 파티션(Partition)이라 부름. 파티션의 기본크기도 128MB spark.sql.files.maxPartitionBytes : HDFS등에 있는 파일을 읽어올 때만 적용됨 다음으로..
spark 3.0, PySpark 사용, Spark 프로그램을 Yarn 위에서 돌릴 때 Spark 프로그램 실행 환경 개발/테스트/학습 환경 (Interactive Clients) : 노트북(주피터, 제플린), Spark Shell 프로덕션 환경 spark-submit (command-line utility) : 가장 많이 사용됨 데이터브릭스 노트북 : 노트북 코드를 주기적으로 실행해주는 것이 가능 REST API Spark Standalone 모드에서만 가능 API를 통해 Spark 잡을 실행 실행코드는 미리 HDFS등의 파일 시스템에 적재되어 있어야 함 Spark 프로그램의 구조 Driver 실행되는 코드의 마스터 역할 수행 (Yarn의 Application Master) Executor 실제 태스크..