본문 바로가기

전체 글58

RDD vs. Dataframe (In Python) RDD 란?Resilient : RDD lineage 그래프를 통한 fault-tolerant가 빠졌거나, node의 실피로 인한 손상된 파티션을 다시 실행시킨다Distributed : 클러스터의 여러 노드에 데이터가 분산되어 저장Dataset : 원천 데이터값 혹은 값의 값들로 이루어진 파티션된 collection 데이터                 (튜플 혹은 다른 레코드로써 사용될 수 있는 데이터 객체들)필요한 상황고수준 API에서 제공하지 않는 기능이 필요한 경우(JAVA, Scala에만 해당, Python은 성능손실이 크다)-> 클러스터의 물리적 데이터 배치를 아주 세밀하게 제어해야 함-> map, filter, reduce와 같은 하위수준의 변환의 경우RDD를 사용해 개발된 기존 코드를 유지해.. 2024. 6. 16.
Spark Cluster 구조 및 작동원리 Spark Cluster Architecture작동구조Spark DriverSpark Application을 제출 시 가장 먼저 제출되는 위치spark application의 실행을 조정하는 프로그램/프로세스기본기능을 실행하고 cluster manager에 연결되는 SparkContext/SparkSession을 생성 SparkContext/SparkSession Spark의 기능(Function)을 사용할 수 있는 진입점Spark 환경구성에 해당하는 SparkConf를 포함하고 있다.Spark 2 이상부터는 SQLContext, HiveContext, StreamingContext가 모두 결합된 SparkSession 사용을 권장 Cluster ManagerWorker Node에 리소스 및 task 할.. 2024. 6. 9.
데이터 디스커버리 플랫폼 앞서 데이터를 관리에 있어 필요한 메타데이터, 데이터 리니지, 데이터 거버넌스의 개념에 대해서 알아보았다. 하지만 이러한 개념적인 부분 외에 실제 기업에서 데이터를 관리하기 위해 어떤 TOOL을 사용하고 있는지를 알아야 실제 기능을 체감할 수 있을 듯 하여 현재 상용중인 소프트웨어를 조사하게 되었다.각 기업의 기술블로그를 기초로 어떤 사용 소프트웨어가 있는지 각 장단점을 정리하는 것을 목표로 한다.데이터 디스커버리 플랫폼이란? (DDP, Data Discovery Platform)다양한 곳에서 생성되고 만들어지는 데이터를 사용자가 파악하는 것이 어려워지고 히스토리를 파악하기 힘듦데이터 이용자에게 어떤 데이터가 어디에 어떻게 생성되어 존재하는지에 관한 정보를 편리하게 제공데이터 파악에 대한 시간을 줄여서 .. 2024. 5. 26.
메타데이터 관리 ETL작업을 진행하며 가장 힘들었던 것은 원천데이터를 파악하는 것이었다.각 DB의 테이블명과 컬럼명만으로는 어떤 테이블인지 각 컬럼이 어떤 데이터인지 알기가 힘들었고,이후 ETL 작업이 완료 된 뒤에는 각 Mart table의 메타데이터를 확인하기 힘들어 유지보수에 애를 먹었다.또한 현업에게 데이터를 제공하는 과정에서 용어의 차이로 의사소통이 수월하지 못했다.이런 과정을 거쳐 DW를 관리함에 있어 메타데이터를 한 눈에 관리할 수 있는 기능이 필요하다 생각했고 해당내용에 대해 공부한 기록을 남길예정이다. 메타데이터란?데이터의 통합적인 관리를 위해서 파악해야 하거나 통제해야 할 대상이나 항목DB Schema데이터 구조데이터 표준데이터 흐름데이터 권한...RDB 기준 메타데이터비즈니스 메타데이터비즈니스 사용자.. 2024. 5. 19.
SQL 기초 튜닝(1) 현장에서 데이터 검증 시 sql을 통해 진행했는데 데이터가 많을 경우 응답시간이 길어져 검증에 어려움을 겪었다.DBA분의 도움을 받아 쿼리를 튜닝할 수 있었고, 응답시간이 30% 이상 줄어든 것을 보고 튜닝의 중요성을 알게되었다.이번 글을 작성하며 최소한의 sql 작성 시 피해야 할 구조를 파악하는것을 목표로 한다.이번 글에서는 MYSQL을 기준으로 최적화 방법을 기재해 두었다. 1. 인덱스 사용 인덱스를 생성하여 특정 열의 데이터를 쉽게 찾을 수 있다.따라서 조건절에 자주 사용되는 컬럼을 인덱스로 생성하여 쿼리의 실행속도를 높일 수 있다. 조건절에 사용 시 (where / group by / order by) 조건절에 명시된 칼럼이 인덱스 칼럼의 순서와 위치가 같아야 한다.만약 인덱스 칼럼 중 (idx.. 2024. 5. 16.
데이터 거버넌스란? (Data Governance) 정의데이터 수집, 저장, 처리, 폐기 방법에 적용되는 내부 표준(데이터 정책)을 설정하는 것.데이터를 어떻게 수집 할 것인지데이터를 어디에 어떻게 저장 할 것인지데이터의 가명화처리나 보관주기, 백업 주기등을 어떻게 할 것인지저장주기를 넘은 데이터를 어떻게 폐기할 것인지 데이터의 권한관리를 어떻게 할 것인지...데이터의 보안, 개인정보 보호, 정확성, 가용성, 사용성을 보장하기 위해 수행하는 모든 작업사람이 취해야 하는 조치, 따라야 하는 프로세스, 데이터의 전체 수명주기 동안 이를 지원하는 기술이 포함데이터 리니지도 데이터 거버넌스의 일부라 볼 수 있다.구성요소데이터 관리 (메타데이터 관리, 데이터 사전 구축, 데이터 저장소 관리, ...)데이터 보호 (데이터 보안 정책, 접근제어, 암호화기술, 백업 및.. 2024. 5. 7.