본문 바로가기

IT31

CITUS DB - 기본 개념 Postgres Extension으로 최신 Postgres 기능, 도구 및 에코시스템을 이용할 수 있습니다. Postgres를 샤딩, 분산 SQL 엔진, 참조 / 분산 테이블과 같은 기능을 갖춘 분산 데이터베이스로 Scale-out 수 있도록 합니다. 쿼리 엔진은 요청받는 SQL 쿼리를 서버 간 병렬 처리로 빅 데이터 세트에 대하여 더 빠르게 응답합니다. 일반적으로 100GB의 데이터에 이상의 워크로드를 처리합니다. 1. 분산 테이블 분산 테이블은 Citus 성능의 핵심이라 할 수 있습니다. 위 그림은 분산 테이블인 'table'에 대한 SELECT 문 실행의 예시입니다. 애플리케이션으로부터 코디네이터 노드의 테이블에 대한 SELECT문 요청이 들어왔을 때, 메타정보를 참조하여 각 워커 노드에 분산 저장.. 2022. 9. 19.
스파크 실행과 언어 API 1. 개요 스파크 대다수의 코드는 대화형 실행 방식으로 수행할 수 있습니다. 스파크는 스칼라로 구형되어 자바 가상 머신 기반으로 동작하고 사용자는 파이썬, JAVA, 스칼라, R, SQL로 스파크를 사용할 수 있습니다. 그러므로 작업 환경에서 자바를 반드시 설치해야 합니다. 파이썬 API를 사용하려면 파이썬 인터프리터 2.7 버전 이상이 필요합니다. R을 사용하려면 작업 컴퓨터에 R을 설치해야 합니다. 2. 스파크 다운로드하기 1) 로컬 환경 로컬 환경에서는 자바가 설치되어야 있어야 하며 파이썬으로 스파크를 사용하려면 설치된 파이썬 버전을 확인합니다. 스파크 공식 홈페이지 (http://spark.apache.org/dowloads.html)에 접속해 패키지 유형을 Pre-built for hadoop .. 2022. 9. 7.
MySQL 권한 - 1 MySQL 8.0 권한(Privilege) MySQL 5.7 버전까지 권한은 글로벌 권한과 객체 단위의 권한으로 구분됐다. 데이터베이스, 테이블 외 객체에 적용되는 권한을 글로벌 권한, 데이터베이스나 테이블을 제어하는 데 필요한 권한을 객체 권한이라고 한다. 객체 권한은 GRANT 명령어로 권한을 부여할 때 특정 권한을 반드시 명시해야 한다. 글로벌 권한은 GRANT 명령어에서 특정 객체를 명시하지 말아야 한다. 하지만 ALL은 글로벌과 객체 권한 두 가지 용도로 사용될 수 있다. 특정 객체에 ALL 권한이 부여되면 해당 객체에 적용될 수 있는 모든 객체 권한을 부여하고 글로벌로 ALL이 사용되면 글로벌 레벨에서 사용 가능한 모든 권한을 부여한다. 권한 종류 글로벌 권한 FILE: File_priv 파일.. 2022. 9. 5.
스파크 데이터 구조 1. 스파크 데이터 구조 DateFrame 1) 개념 스파크의 데이터 구조중 가장 대표가 되는 DataFrame은 마치 엑셀의 격자모양, 일반적인 RDB의 컬럼, 로우의 스키마 구조와 유사합니다. 하지만 엑셀과의 분명한 차이는, 엑셀은 한대의 컴퓨터에서 작동하지만 스파크 DataFrame은 여러 컴퓨터에 분산되어 있습니다. 왜냐하면 한대의 컴퓨터에 대한 데이터 저장과 처리는 연산이 너무 오래 걸릴 수 있기 때문입니다. 스파크는 파이썬과 R을 모두 지원하기 때문에 파이썬(Pandas) 라이브러리의 DataFrame을 스파크 DataFrame으로 쉽게 변환할 수 있습니다. 2) 파티션 스파크 파티션은 클러스터의 물리적 머신에 존재하는 로우의 집합을 의미합니다. 스파크는 모든 익스큐터의 병렬 작업을 위해 파티.. 2022. 8. 26.
스파크의 기본 개념 - 1 1. 스파크의 역사 아파치 스파크는 UC 버클리 대학에서 2009년 스파크 연구 프로젝트로 시작되었습니다. 그다음 해에는 UC버클리 대학교 AMPLab 소속인 마테이 자하리아, 모샤라프 카우 두리, 마이클 프랭클린, 스콧 쉔커, 이온 스토이카가 발표한 논문 'Spark: Cluster Computiong with Working Sets'을 통해 세상에 처음으로 알려지게 되었습니다. 하둡 맵리듀스는 수백, 수천 개의 노드로 구성된 클러스터에서 병렬로 데이터를 처리하는 최초의 오픈소스 시스템이자 클러스터 환경용 병렬 프로그래밍 엔진의 대표주자였습니다. AMPLap은 새로운 프로그래밍 모델의 장단점을 이해하기 위해 맵리듀스 사용자들과 함께 협업을 진행했습니다. 그리고 다양한 사례에서 발견한 문제점들을 정리해서.. 2022. 7. 25.
SQL의 기본 개념 - 2 SQL의 역할 SQL의 역할은 크게 DML, DDL 두 가지로 볼 수 있다. DML(데이터 조작어, Data Mainpulation Language)은 데이터 추출, 저장, 삭제 등 데이터를 조작하는 것에 관한 것이고, DDL(데이터 정의어, Data Definition Language)은 데이터가 저장되는 테이블이나 각종 객체들을 생성하는 역할을 한다. DML 데이터를 조작하는 역할인 DML의 기본 패턴에는 3이 아닌 4가지 유형이 존재한다. 실제 SQL문에서는 데이터를 저장하는 행위를 데이터의 입력과 수정 두 가지로 다시 구분하기 때문이다. 다시 말하자면, 새로 생성되어 들어가는 데이터는 입력(Insert)에 속하고, 기존 데이터를 변경하는 것은 수정(Update)에 속한다. 조회: SELECT 삭제.. 2022. 7. 13.