• Streaming 데이터는 종종 지연(late arrival)이 발생한다.예를 들어 네트워크 지연, 데이터 지연 수집 등. 이런 환경에서 Watermark는 얼마나 오래 기다릴지 설정해주는 기준이다.워터마크(Watermark)란?event_time 컬럼을 기준으로예: “10분 워터마크” 설정 → = `withWatermark("event_time", "10 minutes")`이 기준 안에 들어온 데이터만 확실히 처리하고,기준보다 늦게 온 데이터는 처리 보장하지 않음즉, +10분까지는 버리고 기다려주고, 이후엔 마감하고 간편하게 상태를 정리하는 개념이다. Window 기반 스트리밍과 Watermarkfrom pyspark.sql.functions import window(df .withWatermark(..

  • Spark 작업 최적화를 위해 Spark UI의 Summary Metrics는 매우 유용한 정보를 제공한다.특히 Task 별 Input Size, Shuffle, Duration을 보면 데이터 분포 불균형이나 병목 현상을 쉽게 파악할 수 있다.항목별 개념 요약항목의미Duration각 Task가 실행된 시간 (높으면 병목 가능)GC TimeGarbage Collection 시간 (높으면 메모리 이슈 가능)Input Size / RecordsTask가 처리한 입력 데이터 크기와 레코드 수최소값, 25백분위수, 중앙값, 75백분위수 및 최대값이 거의 동일해야 하며 128MB와 256MB 사이 어딘가에 있어야 한다.e.g. 어떤 경우에는 입력 크기가 1GB에서 시작할 수 있는데, 이는 코어를 과도하게 활용하고 ..

  • Databricks에서는 동적 보기(Dynamic View)를 통해컬럼 수준(Column-level) 및 행 수준(Row-level)에서 데이터 접근 제어를 유연하게 설정할 수 있다.Unity Catalog에서 지원하며, ID 기반 Access Control List(ACL) 구현이 가능하다.주요 Dynamic View 함수current_user() : 현재 사용자의 이메일을 반환is_account_group_member('group') : Unity Catalog 그룹 기준으로 사용자 포함 여부 확인is_member('group') : Hive 메타스토어 기반 그룹 포함 여부 확인예제 테이블: customers_silverDESCRIBE TABLE customers_silvercol_namedata_t..

  • Databricks의 Delta Lake는 성능 향상을 위해 다양한 파일 최적화 기능을 제공한다. 아래는 대표적인 4가지 기능을 정리해보고자 한다.수동 최적화 OPTIMIZE 명령어를 통해 수동을 최적화 명령을 실행하여 작은 파일을 압축하는 기능을 지원하는 것은 이미 알고 있을 것이다.이 경우 대상 파일 크기는 일반적으로 1G이다. 1. 수동 최적화 (OPTIMIZE)사용자가 명시적으로 실행하는 파일 병합 명령이다.많은 작은 파일들을 더 큰 파일로 합쳐서 I/O 비용을 줄이고 읽기 성능을 개선한다.정기적으로 실행하거나, 배치 처리 후 실행하는 것이 일반적이다.OPTIMIZE my_table;2. Z-Order 정렬 (OPTIMIZE ... ZORDER BY)OPTIMIZE 명령과 함께 사용하여 특정 컬럼..

  • Databricks 테이블 복사 방법 정리 1. CTAS (Create Table As Select)CREATE TABLE new_table ASSELECT * FROM original_table;데이터를 복제하여 새로운 테이블 생성한다.원본 테이블과 완전 독립적이다.❌ 메타데이터, 히스토리 등은 복사되지 않음저장 공간을 추가로 차지함사용 예시: 필터링된 테이블을 새로 만들거나 변형해서 분석할 때2. Shallow Clone (쉘로우 클론)CREATE OR REPLACE TABLE cloned_tableSHALLOW CLONE original_table;데이터 파일은 공유하되, 메타데이터는 분기된다.속도가 매우 빠르다 (파일 복사 없음)❌ 원본이나 클론 중 하나가 변경되어도 서로 영향 없다.원본이 삭제되..

  • Change Data Capture (CDC) CDC (Change Data Capture)는 데이터 소스에서 발생하는 삽입, 수정, 삭제 같은 변경 사항을 감지하고대상 시스템에 이를 반영하는 방식이다. CDC 이벤트 종류삽입 (Insert): 새로운 레코드 추가수정 (Update): 기존 레코드 변경삭제 (Delete): 기존 레코드 제거CDC Feed? CDC 피드는 레코드의 전체 데이터 + 메타데이터를 포함한 변경 이벤트다.여기에는 다음 정보가 포함됨:변경된 데이터 레코드변경 유형 (insert, update, delete)버전 번호 또는 타임스탬프 → 변경 순서를 나타냄Delta Lake에서의 CDC 처리 방법CDC 처리는 MERGE INTO 문을 통해 삽입, 수정, 삭제를 한 번에 처리할 수 있..

  • Copyright 2024. GRAVITY all rights reserved