목록Home (246)
without haste but without rest
ClickHouse ClickHouse는 SQL 쿼리의 온라인 분석 처리(OLAP)를 위한 컬럼 지향 DBMS다. 전통적인 데이터베이스 보다 100~1000배 더 빠르게 작동하고 서버당 초당 수억에서 수십억 행과 수십 기가바이트의 데이터를 처리한다. 제한 사항 트랜잭션 미지원 UPDATE / DELETE 구현이 부족 벤치마크 결과 Clickhouse가 Hadoop 스택 기반의 Hive와 MySQL 보다 빨랐다. 열지향 디비가 많이 있지만 클릭하우스가 왜 더 빠른지는 더 찾아봐야겠다. 아래 영상의 제목은 당신이 들어보지 못한 가장 빠른 데이터 웨어하우스란 제목의 웨비나 https://www.youtube.com/watch?v=fGG9dApIhDU
OLTP and OLAP: a practical comparison OLTP와 OLAP는 유사해보이지만 다른 종류의 시스템이다. Online Transaction Processing(OLTP)는 트랜잭션을 실시간으로 캡쳐, 저장, 처리한다. Online Analytical Processing(OLAP)는 OLTP 시스템에서 집계된 기록 데이터에 복잡한 쿼리를 사용해서 분석하는 시스템이다. OLTP OLTP 시스템에서는 데이터를 자주 읽고, 쓰고, 업데이트되기 때문에 빠른 처리에 중점을 둔다. 그리고 트랜잭션이 실패하면 빌트인 로직이 데이터의 무결성을 보장한다. 백엔드 디비에서 유저의 요청을 처리하거나 결과를 반영하는 시스템이 이에 해당한다. OLAP 데이터 마이닝, 분석, BI(Business Intel..
빅데이터를 지탱하는 기술 277~278p Redshift, BigQuery는 데이터 웨어하우스를 위한 클라우드 서비스로 자주 비교되는데, 이 둘의 구조는 완전히 다르다. 가장 큰 차이점은 Redshift가 전용 리소스(dedicated resource)인 것에 비해 BigQuery는 공유 리소스(shared resource)라는 점이다. Redshift는 전통적인 MPP 데이터베이스의 흐름을 이어 왔기에 스토리지와 계산 노드가 일체화된 환경에서 효율적으로 쿼리를 실행하게 되어 있다. Redshift 자원이 전용이라 다른 사용자가 사용할 수 없기 때문에 성능이 안정적이다. 또한, 노드 수를 늘리면 스토리지 용량과 계산 능력이 모두 증가하므로, 데이터 양에 대해 일정한 성능이 유지된다. BigQuery 수천..
0. Docker 도커는 리눅스 운영체제의 네임스페이스와 컨트룰 그룹을 이용하여 컨테이너라고 부르는 격리된 개발 환경을 제공한다. 개발 환경에서 소프트웨어들은 버전이 지속적으로 업데이트된다. 이는 협업 과정에서 버전 차이로 인한 생산성과 안정성에 대한 문제를 초래한다. 이때 운영체제단의 네임스페이스와 컨트롤 그룹을을 이용하는 컨테이너 기술을 활용하면 애플리케이션 실행에 필요한 운영체제, 라이브러리 등을 격리된 실행환경에 구축하므로 개발 환경 그리고 더 나아가 운영 환경 간의 차이로 인한 생산성 저하 문제에서 자유로워질 수 있다. 컨테이너는 하나의 프로세스라고 볼 수 있는데, 정지된 상태로도 관리되기 때문에 명확한 표현으로는 실행 가능한 이미지의 인스턴스다. 자바는 운영체제와 상관없이 JVM이 설치되어 있..
Reference ElasticSearch 모든 검색 엔진의 시초는 Lucene(루씬)이다. 엘라스틱 서치는 아파치 루씬을 기반으로 하는 준 실시간 분산 검색 엔진이다. JSON 기반의 비정형 데이터 분산 검색 및 분석을 지원한다. 준 실시간 검색 서비스, 분산 및 병렬처리 그리고 멀티 테넌시 기능을 제공하고 다양한 기능을 플러그인 형태로 구현하여 적용할 수 있는 것이 특징이다. 클러스터로 구성 가능하므로 검색 대상의 용량이 증가하면 수평적으로 확장할 수 있다. 엘라스틱서치는 웹 문서 검색, 소셜 데이터 분석, 쇼핑몰 검색 등에 활용되고 있고, 빅데이터 분석/처리 및 MSA 환경의 로그 모니터링 등에도 활용되고 있다. 1. Inverted Index(역색인) 일반적으로 색인의 목적은 문서의 위치에 대한 ..
0. Flume 플럼은 로그 데이터를 효율적이고 안정적으로 수집할 수 있는 프레임워크다. 하둡 에코시스템에서 버퍼 스토리지 역할로 사용한다. 스트리밍 데이터를 카프카로 받고 HDFS에 바로 저장하면 블록이 수도없이 생긴다. 따라서 일정 크기 이상까지 데이터를 모은 뒤 HDFS에 저장해야한다. 해당 버퍼 역할을 위해 사용할 수 있는 것이 플럼이다. 1. 아키텍처 이미지 출처 플럼은 source, channel, sink 세 가지로 구성되어있다. source는 플럼이 데이터를 받아오는 곳이다. channel은 플럼 자체로 메모리 기반과 디스크 기반 중에서 선택할 수 있다. sink는 최종적으로 데이터를 전송하는 곳이다. 플럼은 위 세가지 사항을 명시한 conf 파일을 작성하여 실행한다. 2. conf 파일 ..
Hadoop: The Definitive Guide 0. Hadoop 하둡은 컴퓨터 클러스터를 구축하여 대규모 데이터 셋을 처리할 수 있는 프레임워크이다. 단일 서버에서 수천 대의 머신으로 이루어진 클러스터로 확장 가능하도록 설계되었다. 관계형 데이터베이스와의 가장 큰 차이점은 관계형 데이터베이스의 경우 상대적으로 적은 양의 데이터를 낮은 지연 시간에 처리하기 위해 데이터셋을 인덱싱하기 때문에 지속적으로 변경되는 데이터셋에 적합하다. 반면 하둡은 데이터를 한 번 저장하고 여러번 읽는 어플리케이션에 적합하다. 베이스 아파치 하둡 프레임워크는 아래 모듈을 포함한다. Hadoop Common HDFS(Hadoop Distributed File System) MapReduce YARN (Yet Another R..
0. Hive 하둡의 맵리듀스 작업을 실행하는 방법은 여러가지가 존재한다. 정형, 반정형, 비정형 데이터에 대해 자바 맵리듀스 프로그램을 사용하는 기존 방법 Pig를 사용해서 구조화된 데이터와 반구조화된 데이터를 스크립팅(절차적 언어)로 처리하는 방법 Hive를 사용해서 구조화된 데이터를 맵리듀스용 쿼리 언어인 HiveQL 사용해서 처리하는 방법 Hive는 하둡에서 구조화된 데이터를 처리하기 위한 데이터 웨어하우스 인프라 도구다. 빅데이터를 요약하고 쿼리 및 분석을 쉽게 만들어준다. 기존의 자바 기반으로 프로그램을 작성해야하는 맵리듀스를 SQL로 작성가능하다는 것이 포인트다. (분석 엔진은 현재는 Tez를 기반으로 사용하는 것으로 알고 있고, 인메모리 기반인 Presto(프레스토)도 하이브와 함께 언급되..