전체 글

Data Engineering/Spark ·
해당 내용은 스파크 완벽 가이드를 개인적인 학습 내용과 함께 정리한 내용입니다. 스파크 완벽 가이드오픈소스 클러스터 컴퓨팅 프레임워크인 스파크의 창시자가 쓴 스파크에 대한 종합 안내서입니다. 스파크 사용법부터 배포, 유지 보수하는 방법까지 포괄적으로 익힐 수 있습니다. 스파크 2의www.hanbit.co.kr  - spark-submit: 명령으로 운영용 애플리케이션 실행- Dataset: 타입 안정성(type-safe)을 제공하는 구조적 API- 구조적 스트리밍- 머신러닝과 고급 분석- RDD: 스파크의 저수준 API- SparkR3.1 운영용 애플리케이션 실행하기spark-submit 명령은 애플리케이션 코드를 클러스터에 전송해 실행시키는 역할을 한다.클러스터에 제출된 애플리케이션은 작업이 종료되거나..
Data Engineering/Spark ·
해당 내용은 스파크 완벽 가이드를 학습하며 개인적 이해를 바탕으로 정리한 내용입니다.잘못된 부분이 있다면 댓글로 알려주시면 감사하겠습니다! 스파크 완벽 가이드오픈소스 클러스터 컴퓨팅 프레임워크인 스파크의 창시자가 쓴 스파크에 대한 종합 안내서입니다. 스파크 사용법부터 배포, 유지 보수하는 방법까지 포괄적으로 익힐 수 있습니다. 스파크 2의www.hanbit.co.kr 2.1 스파크의 기본 아키텍처한 대의 컴퓨터만으로는 더 이상 대규모 정보를 연산할 만한 자원이나 성능을 가지지 못한다.설령, 연산을 할 수 있다고 하더라도 빅데이터를 처리하는 경우에는 많은 시간이 걸릴 수 밖에 없다. 컴퓨터 클러스터는 여러 컴퓨터의 자원을 모아 하나의 컴퓨터처럼 사용할 수 있게 한다. 그렇다면 클러스터는 무엇인가?클러스터 ..
CS/Database ·
RDB & NoSQL 💡 RDB와 NoSQL의 차이에 대해 설명해 주세요. RDB(SQL) NoSQL 데이터 모델 테이블 Document, Key-Value, Column-Family, Graph 개발 목적 데이터 중복 방지 애자일 / 확장 가능성 / 수정 가능성 확장성 수직적 확장(Scale Up)에 용이 수평적 확장(Scale Out)에 용이 스키마 엄격한 데이터 구조 유연한 데이터 구조 트랜잭션 ACID 트랜잭션을 지원 CAP 이론을 기반으로 함 장점 명확한 데이터 구조, 데이터 중복이 없어 update 용이 유연한 데이터 구조, 새로운 필드 추가 자유로움 단점 시스템이 커지면 쿼리가 복잠함 중복 발생할 수 있어 update시 모든 컬렉션 수정 필요, 명확한 데이터 구조를 보장하지 않음 예시 Ora..
CS/Database ·
💡 Key (기본키, 후보키, 슈퍼키 등등...) 에 대해 설명해 주세요.키(key) 는 테이블(Relation)에서 특정 레코드(행)를 식별하거나 검색하기 위해 사용되는 식별자입니다. 각 레코드는 여러 개의 필드(열, column)로 구성되어 있는데, 이 중 하나의 열을 키로 지정하여 그 값을 사용해 해당 레코드를 식별하고 접근할 수 있습니다. 동시에 각 테이블 간의 관계를 말해주는 연결고리이기도 합니다.  키의 종류 슈퍼키(Super Key): 테이블 내의 행을 유일하게 식별할 수 있는 하나의 속성 또는 속성의 집합(ex. {학번}, {학번 + 이름}, {주민번호 + 학번}) - 유일성복합키(Composite Key): 2개 이상의 속성(attribute)를 사용한 키후보키(Candidate key..
ETC/Development ·
서비스 개발 기초 강의 내용을 개인적으로 정리했던 글 중 팀원들에게 가장 만족도가 높았던 글을 다시 재구성한 글입니다. Version이 필요한 이유버전(Version)는 소프트웨어 제품의 특정 릴리스에 대한 고유한 식별자다.버저닝(Versioning)은 소프트웨어 제품에 Unique한 버전 이름, 버전 번호를 할당하는 것을 의미한다. 그렇다면 Version은 왜 필요한가? 만약 한 번 릴리스하고 더 이상 개발을 진행하지 않는 프로젝트라면 버저닝이 필요하지 않다.하지만, 지속적으로 개발, 릴리스하는 경우엔 당연히 버전이 필요할 수밖에 없다. (다른 사람과 협업하는 경우 더더욱!) 아래 예시를 살펴보자. 이건 실제 내가 사용하는 앱의 앱스토어 버전 기록을 가져온 건데, 왼쪽 위의 숫자들이 버전 번호라고 생각..
Data Engineering/Airflow ·
AirflowAirflow는 Python기반의 workflow scheduler이다. 오픈 소스 플랫폼으로 배치 작업을 개발, 스케줄링, 모니터링할 수 있다. DAG(Directed Acyclic Graph)은 자료구조에서 본 그 순환하지 않는 방향이 존재하는 그래프(DAG)가 맞다.Airflow에서 DAG은 하나의 워크플로우 파이프라인이며, DAG이라는 특성상, 반복이나 순환을 허용하지 않는다.(비순환성)노드(Task): DAG의 각 노드(여기서는 A~G)는 Task로, 실행할 작업을 의미한다. Task는 Python 함수, Bash 스크립트, SQL 쿼리 등 다양한 형태로 정의될 수 있다.간선(Edge): DAG에서 간선은 Task 간의 의존성을 나타낸다. 즉, 어떤 Task가 먼저 실행되어야 하고,..
Hit the books!