1. PostgreSQL
- 오픈소스 RDB
- 표준 SQL 준수, 분석에 필요한 구문 제공
2. Apache Hive
- RDB에서 대량의 데이터를 처리할 때 보틀넥이 발생하는 데이터 I/O를 해결
- 고속으로 데이터를 처리하기 위한 아키텍처로 분산 파일 시스템이 고안됨
- 분산 파일 시스템
- 거대한 데이터를 작게 분할해서 여러 개의 디스크에 분산시켜 저장하고 각 디스크에서 동시에 데이터를 읽어 고속으로 대용량 처리가 가능함
- 분산 파일 시스템
- 하이브는 HDFS 분산파일 시스템 위의 데이터를 SQL스러운 인터페이스로 처리하는 시스템
- 동시에 처리한 데이터에 대한 순서를 맞춰주는 것이 중요한데, 이 방법이 MapReduce
- Hive → Hadoop 생태계의 일부, HiveQL로 MapReduce 잡으로 변환하여 병렬 분산 처리 수행
- 파일 기반 시스템이라서 특정 레코드 변경, 제거가 어려움
- 인덱스도 존재하지 않아 쿼리 실행 시, 파일 전체를 조작해야함
- 쿼리 실행 시, 동적으로 데이터 정의가 가능하다는 장점이 있다.
- ‘Korea, Seoul, GangseoGU’라는 데이터 1개가 있을 때, 국가/시/구처럼 3개의 컬럼으로 사용하는 것도 가능하고 통으로 하나의 문자열로 사용도 가능하다.
- 데이터 사용에 대한 구체적인 방법은 모르지만 어쨌든 필요한 데이터라면 그냥 저장해두고, 필요한 시점에 동적으로 스키마를 정의할 수 있다.
- JAVA - Hive
- 간단한 쿼리 결과를 Hive에서 얻고자 한다면 오버헤드가 커질 수 있다.
- 최근에는 MapReduce말고 Spark, Tez로 사용하거나 데이터형식을 최적화해서 리액턴시를 낮출 수 있다.
- 전문성 요구, 진입 장벽 높음
Amazon Redshift
- AWS에서 제공하는 분산 병렬 RDB
- Hive와 비슷하게 분산 환경에서 병렬 처리를 하지만 Redshift는 그냥 RDB임
- PostgreSQL과 호환성을 가지므로 PostgreSQL 전용 ODBC/JDBC 드라이버나 psql 클라이언트에서 RedShift 접속 가능함
- RedShift는 비용이 발생하기 때문에 개인보다는 상업 목적으로 사용함
- 성능 튜닝을 하거나 비용을 줄이려면 최적의 노드 수와 스펙을 예측해서 인스턴스 실행과 종료를 관리해야 한다.
- 전문 지식 필요
- Redshift는 column 기반 스토리지를 사용한다.
- 분석에 적합한 아키텍처
Google BigQuery
- 빅데이터 분석을 위해 구글이 제공하는 클라우드 서비스
- Redshift와 거의 비슷하지만 직접 노드 인스턴스 관리가 필요없다.
- 다루는 데이터의 양으로 비용이 발생하기 때문에, 데이터 양이 적으면 적은 비용으로 운용이 가능함
- 유료 구글 애널리틱스를 사용하면 쉽게 연동이 가능함
- 기존에 사용하는 legacy SQL은 표준 SQL과 다르게 동작하는 부분이 많음
- 그래서 standard SQL 제공
SparkSQL
- MapReduce를 사용한 분산 처리 프레임워크인 Apache Spark의 기능 중 SQL 관련 기능을 나타내는 말
- 머신러닝, 그래프 처리, 실시간 스트리밍 등 다양한 처리르 쉽게 분산 처리할 수 있는 기능을 제공
- 빅데이터 활용과 관련된 대부분의 처리를 한 번에 구현할 수 있다.
'Data Science' 카테고리의 다른 글
실무 SQL 공부 3-2 - 데이터 가공 SQL (0) | 2022.01.15 |
---|---|
실무 SQL 공부 3-1 - SQL로 데이터 가공 (0) | 2022.01.15 |
실무 SQL 공부 2 - 데이터 (0) | 2022.01.15 |
Visualization - matplotlib histogram (0) | 2021.08.28 |
Visualization - matplotlib line chart, scatter chart (0) | 2021.08.28 |