일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- Kafka
- spark executor memory
- Speculative Execution
- redshift
- Spark 실습
- SQL
- topic
- Spark SQL
- Airflow
- Spark Partitioning
- Spark Caching
- 데이터 파이프라인
- Salting
- DataFrame Hint
- colab
- KDT_TIL
- k8s
- off heap memory
- backfill
- Spark
- etl
- Dag
- Kubernetes
- aws
- disk spill
- CI/CD
- Docker
- AQE
- 빅데이터
- mysql
- Today
- Total
목록TIL (66)
JUST DO IT!
📚 KDT WEEK 14 DAY 3 TIL UDF UDAF Explode ⚒️ UDF - User Defined Function DataFrame이나 SQL에서 적용할 수 있는 사용자 정의 함수 Scalar 함수 : UPPER, LOWER ... Aggregation 함수(UDAF) : SUM, MIN, MAX Google Colab에서 실습을 진행한다. pyspark와 py4j 환경설치 !pip install pyspark==3.3.1 py4j==0.10.9.5 SparkSession 생성 from pyspark.sql import SparkSession spark = SparkSession \ .builder \ .appName("Python Spark UDF") \ .getOrCreate() 간단한..
📚 KDT WEEK 14 DAY 3 TIL SparkSQL SparkSQL Colab 실습 Hive 메타스토어 유닛 테스트해보기 🟥 SparkSQL 구조화된 데이터 처리를 위한 Spark 모듈 데이터프레임에 테이블 이름을 지정하면, SQL 함수 사용 가능 HQL(Hive Query Language)와 호환 제공하여, Hive 테이블들을 읽고 쓸 수 있다 SQL이 데이터프레임 작업보다 가독성이 더 좋고 Spark SQL Engine 최적화하기에도 좋음 SQL 사용방법 ( 데이터프레임 = df ) df.createOrReplaceTempView("Tablename") group_df = spark.sql(""" SELECT gender, count(1) FROM Tablename GROUP BY """) p..
📚 KDT WEEK 14 DAY 2 TIL Pandas로 처리하기 Spark로 처리하기 Spark 환경 설정 및 csv 파일 처리하기 데이터 프레임에 함수 사용해보기 Spark SQL로 처리해보기 알아두면 좋은 기능 이전 글에서 Spark 데이터처리 실습을 해보았다. https://sunhokimdev.tistory.com/60 Spark 데이터처리 실습 - TIL230704 📚 KDT WEEK 14 DAY 2 TIL Spark 데이터처리 Spark 데이터구조 🟥 Spark 데이터처리 빅데이터의 효율적 처리 ➡️ 병렬처리 ➡️ 데이터의 분산 필요 하둡 맵의 데이터 처리단위는 데이터 블록(128MB, 조절 sunhokimdev.tistory.com 저번과 같은 환경을 사용한다. Colab에서 입력할 때는 ..
📚 KDT WEEK 14 DAY 2 TIL Spark 데이터처리 Spark 데이터구조 🟥 Spark 데이터처리 빅데이터의 효율적 처리 ➡️ 병렬처리 ➡️ 데이터의 분산 필요 하둡 맵의 데이터 처리단위는 데이터 블록(128MB, 조절가능) Spark에서는 이 데이터 블록을 파티션(Partition)이라고 부른다. 적절한 파티션의 수 : Executor의 수 x Executor의 CPU의 수 ➡️ 병렬 처리 최대화 ♒ Spark 데이터 처리 흐름 데이터프레임은 작은 파티션들로 구성된다. 입력 데이터프레임을 원하는 결과가 나올 때까지 다른 데이터 프레임으로 계속 변환되는 과정으로 흐른다. ex) sort, group by, filter, map, join.. 등의 함수로 인해 계속 변환되는 것! 🔄️ 셔플링 ..
📚 KDT WEEK 14 DAY 1 TIL 빅데이터 하둡(Hadoop) Spark 🟥 빅데이터 서버 한대로 처리할 수 없는 규모의 데이터 기존의 소프트웨어로는 처리할 수 없는 규모의 데이터 빅데이터 예시) 모바일 디바이스 데이터(위치정보 등), 각종 IoT 센서 데이터, 네트워킹 디바이스 등 📦 빅데이터의 처리 특징 빅데이터를 손실없이 보관할 방법 : 스토리지 병렬 처리를 통한 처리 시간 단축 비구조화된 데이터( ex. 웹 로그파일)는 SQL만으로는 처리가 어려움 ➡️ 따라서 대용량 분산 시스템이 필요 분산 파일 시스템과 분산 컴퓨팅 시스템 Fault Tolerance : 소수의 서버가 고장나도 동작해야 함 Scale Out(서버 추가) 형식의 확장이 용이 해야함 🟦 하둡(Hadoop) 다수의 노드로 구..
📚 KDT WEEK 12 DAY 5 TIL 데이터 카탈로그 🟥 데이터 카탈로그 데이터 자산의 효율적인 관리하는 프레임웍이자, 데이터 자산 메타 정보 중앙 저장소 많은 회사들이 데이터 카탈로그를 메인 데이터 거버넌스 툴로 사용함 데이터 자산 : 테이블 (데이터베이스), 대시보드, 문서/메시지, ML 피쳐, 데이터 파이프라인... 등등 데이터 카탈로그의 주요 기능 주요 데이터 플랫폼 지원 : 주요 DW, BI Tools, ELT와 ETL 툴 등등 대부분을 지원 비즈니스 용어집(Business Glossary) 주석/문서/태그 등 협업 기능 데이터 리니지 데이터 모니터링, 감사. 트레이싱 강력한 검색 기능(통합, NLP 검색) 데이터 추천 기능 데이터 카탈로그의 중요성(데이터 거버넌스 관점) 데이터 자산에 대..
📚 KDT WEEK 12 DAY 5 TIL Dbt Seed Dbt Sources Dbt Snapshots Dbt tests 🟥 DBT Seed 많은 dimension 테이블들은 크기가 작고 많이 변하지 않으므로 이를 파일형태로 데이터웨어하우스로 로드하는 방법 Seeds는 작은 파일 데이터를 지칭한다. (보통 csv) 대충 굉장히 작은 csv 파일을 seeds/에 하나 만들었다. dbt seed 명령어를 통해 DB에 적재할 수 있다. colab에서 Redshift에 연결해서 테이블을 확인해보았다. 🟦 DBT Sources Staging 테이블들 만들 때 입력 테이블들이 자주 바뀐다면? > 각 테이블에 별칭 제공하는 기능 처음 입력이 되는 ETL 테이블들 대상으로 별칭을 제공하고 최신 레코드 체크 기능도 제..
📚 KDT WEEK 12 DAY 4 TIL Data Build Tool (DBT) DBT 간단한 실습 🟥 Data Build Tool ELT용 오픈소스 (In-warehouse data transformation) 다양한 데이터 웨어하우스를 지원(Redshift, Snowflake, Bigquery...) 데이터 변경 사항을 이해하기 쉽고 롤백도 가능 데이터간 리니지 확인 가능 데이터 품질 테스트 및 에러 보고 히스토리 테이블로 테이블 변경 추적 데이터 웨어하우스위에 DBT를 올리고, DBT를 주기적으로 실행하기 위해 Airflow를 사용하는게 일반적 📦 DBT 구성 컴포넌트 : 데이터 모델(models), 데이터 품질 검증(tests), 스냅샷(snapshots) DBT 설치(redshift) pip3..
📚 KDT WEEK 12 DAY 4 TIL Airflow 운영 Airflow 대안 🟥 프로덕션 사용을 위한 Airflow 환경 설정 1. airflow.cfg core 섹션의 dags_folder가 들어있는 디렉토리 설정 dag_dir_list_interval에 설정된 dag 폴더 스캔 주기 설정(초단위) 모든 DAG를 한번씩 실행해보기 때문에, 이게 곤란한 DAG들은 airflowignore 활용 2. DB의 정보를 주기적으로 백업하는게 좋다. Airflow의 기본 DB는 Sqlite이지만 Postgres나 MySQL로 바꾸는 경우, airflow.cfg의 core 섹션의 sql_alchemy_conn 설정 변경과 Executor 변경필요 3. Authentication과 보안 기본으로 주어지는 어드민..
📚 KDT WEEK 12 DAY 3 TIL Task Grouping Dynamic Dags 📦 Task Grouping Task 수가 많은 DAG라면 Task들을 성격에 따라 관리할 수 있음 Airflow 2.0에서부터는 SubDAG 대신 Task Grouping 사용 ex) start > 파일 1, 2, 3 다운로드 Task > 파일 1, 2, 3 Process Task > end 구조로 DAG를 작성했다. from airflow.models.dag import DAG from airflow.operators.empty import EmptyOperator from airflow.operators.bash import BashOperator from airflow.utils.task_group impo..