데이터 저장을 위한 6가지 옵션 기술

6 Optional Technologies for Data Storage

특히 빅 데이터 및 분석에서 비즈니스 문제는 하나의 도구로 모든 문제를 해결하기에는 너무 광범위하고 심오하며 복잡합니다. 이 문서에서는 데이터 저장을 위한 6가지 선택적 기술에 대해 설명합니다.

1. 구조화된 데이터 저장

구조화된 데이터 스토리지는 수십 년 동안 사용되어 왔으며 가장 친숙한 데이터 스토리지 기술입니다. Oracle, MySQL, SQL Server 및 PostgreSQL과 같은 대부분의 트랜잭션 데이터베이스는 소프트웨어 애플리케이션에서 빈번한 데이터 쓰기를 처리하기 때문에 행 기반입니다.

기업은 종종 보고를 위해 트랜잭션 데이터베이스를 동시에 사용합니다. 이 경우 데이터를 자주 읽어야 하지만 데이터를 쓰는 빈도는 훨씬 적습니다. 데이터 읽기에 대한 수요가 증가함에 따라 데이터 읽기 성능을 개선하고 분석 요구 사항을 충족하는 데 도움이 되는 열 형식 파일 형식의 혁신과 같이 구조화된 데이터 저장의 쿼리 필드에 더 많은 혁신이 도입되었습니다.

라인 기반 형식은 파일에 데이터를 라인으로 저장합니다. 행 기반 쓰기는 디스크에 데이터를 쓰는 가장 빠른 방법이지만 관련 없는 많은 데이터를 건너뛰어야 하기 때문에 반드시 가장 빠른 방법은 아닙니다.

열 기반 형식은 모든 열 값을 파일에 함께 저장합니다. 동일한 데이터 유형이 이제 함께 그룹화되기 때문에 압축이 더 잘 됩니다. 종종 불필요한 열을 건너뛸 수 있기 때문에 더 나은 읽기 성능을 제공합니다.

구조화된 데이터 스토리지에 대한 일반적인 선택을 살펴보겠습니다. 예를 들어, 주문 테이블에서 특정 월의 총 판매 수를 쿼리해야 하지만 테이블에 50개의 열이 있습니다. 행 기반 아키텍처에서는 쿼리 시 전체 테이블의 50개 열을 스캔하지만, 컬럼 기반 아키텍처에서는 쿼리 시 주문 판매 열만 스캔하므로 데이터 쿼리 성능이 향상된다. 트랜잭션 데이터와 데이터 분석을 처리하기 위한 데이터 웨어하우스의 필요성에 중점을 두고 관계형 데이터베이스를 자세히 살펴보겠습니다.
(1) 관계형 데이터베이스

RDBMS는 OLTP(온라인 트랜잭션 처리) 애플리케이션에 더 적합합니다. 인기 있는 관계형 데이터베이스에는 Oracle, MSSQL, MariaDB, PostgreSQL 등이 있습니다. 이러한 전통적인 데이터베이스 중 일부는 수십 년 동안 사용되어 왔습니다.

전자 상거래, 은행 업무, 호텔 예약을 비롯한 많은 애플리케이션이 관계형 데이터베이스를 기반으로 합니다. 관계형 데이터베이스는 테이블 간의 복잡한 조인 쿼리가 필요한 트랜잭션 데이터를 매우 잘 처리합니다. 트랜잭션 데이터 요구 사항의 관점에서 관계형 데이터베이스는 다음과 같이 원자성, 일관성, 격리 및 내구성 원칙을 준수해야 합니다.
원자성: 트랜잭션은 처음부터 끝까지 완전히 실행되며 오류가 발생하면 전체 트랜잭션이 롤백됩니다.
일관성: 트랜잭션이 완료되면 모든 데이터가 데이터베이스에 커밋됩니다.
격리: 여러 트랜잭션이 서로 간섭하지 않고 격리되어 동시에 실행되어야 합니다.
내구성: 중단(예: 네트워크 또는 정전)이 발생하는 경우 트랜잭션은 마지막으로 알려진 상태로 복구할 수 있어야 합니다.

일반적으로 관계형 데이터베이스의 데이터는 보고 및 집계를 위해 데이터 웨어하우스로 덤프됩니다.
(2) 데이터 웨어하우스

데이터 웨어하우스는 OLAP(온라인 분석 처리) 애플리케이션에 더 적합합니다. 데이터 웨어하우스는 대량의 구조화된 데이터에 대한 빠른 집계 기능을 제공합니다. 데이터를 일괄적으로 로드해야 하므로 웨어하우스에서 핫 데이터에 대한 실시간 통찰력을 제공할 수 없습니다.

최신 데이터 웨어하우스는 열 기반 스토리지를 사용하여 쿼리 성능을 개선합니다. 컬럼 스토리지 덕분에 이러한 데이터 웨어하우스는 매우 빠른 쿼리 속도를 제공하고 I/O 효율성을 향상시킵니다.

데이터 웨어하우스는 하나 이상의 데이터베이스에서 축적된 데이터를 저장할 수 있는 중앙 리포지토리입니다. 비즈니스 데이터의 분석 보고서를 생성하기 위해 현재 및 과거 데이터를 저장합니다.

데이터 웨어하우스는 여러 시스템의 데이터를 중앙에 저장하지만 데이터 레이크로 간주할 수는 없습니다. 데이터 웨어하우스는 구조화된 관계형 데이터만 처리할 수 있는 반면 데이터 레이크는 구조화된 관계형 데이터와 JSON, 로그 및 CSV 데이터와 같은 구조화되지 않은 데이터를 모두 처리할 수 있습니다.

2. NoSQL 데이터베이스

Dynamo DB, Cassandra 및 Mongo DB와 같은 NoSQL 데이터베이스는 관계형 데이터베이스에서 자주 발생하는 확장성 및 성능 문제를 해결할 수 있습니다. 이름에서 알 수 있듯이 NoSQL은 비관계형 데이터베이스를 나타냅니다. NoSQL 데이터베이스는 서로 다른 테이블의 데이터를 연결하기 위해 잘 정의된 구조적 메커니즘 없이 데이터를 저장합니다(조인, 외래 키 또는 패러다임 없음).

NoSQL은 컬럼, 키-값, 검색, 문서 및 그래프 모델을 포함한 다양한 데이터 모델을 사용합니다. NoSQL 데이터베이스는 확장 가능한 성능, 고가용성 및 탄력성을 제공합니다.

NoSQL은 일반적으로 엄격한 데이터베이스 스키마를 가지고 있지 않으며, 각 레코드는 열(속성)의 수에 제한이 없습니다. 즉, 동일한 테이블의 한 행에는 4개의 열이 있고 다른 행에는 10개의 열이 있을 수 있습니다. 파티션 키는 관련 속성을 포함하는 값이나 문서를 검색하는 데 사용됩니다. NoSQL 데이터베이스는 고도로 분산되어 있으며 복제할 수 있습니다. NoSQL 데이터베이스는 성능 문제 없이 내구성이 뛰어나고 가용성이 높습니다.

3. NoSQL 데이터베이스 유형

NoSQL 데이터베이스의 주요 유형은 다음과 같습니다.

열 형식 데이터베이스: 열 형식 데이터 저장소는 전체 행을 스캔하는 대신 데이터를 쿼리할 때 열을 스캔하는 데 도움이 됩니다. 항목 테이블에 10개의 열과 100만 개의 행이 있고 인벤토리에 있는 항목의 수량을 쿼리하려는 경우 열 데이터베이스는 전체 테이블을 스캔하지 않고 항목 수량 열에만 쿼리를 적용합니다.

문서 데이터베이스: 가장 인기 있는 문서 데이터베이스는 MongoDB, Couchbase, MarkLogic, Dynamo DB 및 Cassandra입니다. 문서 데이터베이스를 사용하여 반구조화된 데이터를 JSON 및 XML 형식으로 저장할 수 있습니다.

그래프 데이터베이스: 그래프 데이터베이스는 꼭짓점과 꼭짓점 사이의 링크(가장자리라고 함)를 저장합니다. 그래프는 관계형 및 비관계형 데이터베이스에 구축할 수 있습니다.

메모리 내 키-값 저장소: 메모리에 데이터를 저장하고 데이터를 자주 읽는 시나리오에서 사용됩니다. 애플리케이션의 쿼리는 먼저 인메모리 데이터베이스로 이동하고 데이터가 캐시에서 사용 가능한 경우 기본 데이터베이스에 도달하지 않습니다. 메모리 내 데이터베이스는 복잡한 쿼리와 사용자 프로필과 같은 데이터에 대한 빈번한 요청을 초래하는 사용자 세션 정보를 저장하는 데 적합합니다.

NoSQL은 많은 사용 사례가 있지만 데이터 검색 서비스를 구축하려면 모든 데이터를 인덱싱해야 합니다.

4. Elasticsearch

Elasticsearch는 클릭스트림 및 로그 분석과 같은 빅 데이터 시나리오에서 가장 널리 사용되는 검색 엔진 중 하나입니다. 문자열 토큰을 포함하여 속성 수에 관계없이 웜 데이터에 대한 임시 쿼리는 검색 엔진에서 잘 지원됩니다. Elasticsearch는 매우 유명합니다. 일반 이진 또는 개체 저장소는 구조화되지 않은, 인덱싱할 수 없는 데이터 및 특수 도구가 이해할 수 없는 형식의 기타 데이터에 적합합니다.

로그 검색 및 분석은 일반적인 빅 데이터 애플리케이션 시나리오이며 Elasticsearch는 웹 사이트, 서버 및 IoT 센서의 로그 데이터를 분석하는 데 도움이 될 수 있습니다. Elasticsearch는 은행, 게임, 마케팅, 애플리케이션 모니터링, 광고 기술, 사기 탐지, 추천 및 IoT와 같은 수많은 산업 애플리케이션에서 사용됩니다.

5. 비정형 데이터 저장

구조화되지 않은 데이터 스토리지가 필요한 경우 Hadoop은 확장 가능하고 매우 유연하기 때문에 완벽한 선택인 것 같습니다. 소비자 등급 장치에서 실행되고 거대한 도구 생태계가 있으며 실행하기에 좋은 것 같습니다.

Hadoop은 마스터노드와 자식노드의 모드를 채택하고 있으며, 데이터는 여러 자식노드에 분산되어 있으며, 마스터노드는 데이터에 대한 연산을 조정하고 쿼리 연산을 수행한다. Hadoop 시스템은 MPP(Massively Parallel Processing)에 의존하므로 구조적이든 비구조적이든 다양한 유형의 데이터를 빠르게 쿼리할 수 있습니다.

Hadoop 클러스터가 생성될 때 슬레이브 서버에 생성된 각 자식 노드에는 로컬 HDFS(Hadoop Distributed File System)라는 디스크 스토리지 블록이 수반됩니다. Hive, Ping 및 Spark와 같은 일반적인 처리 프레임워크를 사용하여 저장된 데이터를 쿼리할 수 있습니다. 그러나 로컬 디스크의 데이터는 연결된 인스턴스의 수명 동안만 유지됩니다.

Hadoop의 스토리지 계층(즉, HDFS)을 사용하여 데이터를 저장하면 스토리지와 계산이 함께 결합됩니다. 스토리지를 추가한다는 것은 컴퓨터를 더 추가해야 한다는 것을 의미하며, 이는 컴퓨팅 성능도 향상시킵니다. 최대의 유연성과 최고의 비용 효율성을 위해 컴퓨팅과 스토리지는 서로 독립적으로 분리되고 확장되어야 합니다.

일반적으로 개체 스토리지는 모든 종류의 데이터를 비용 효율적인 방식으로 저장하는 데이터 레이크에 더 적합합니다. 개체 스토리지가 지원하는 클라우드 기반 데이터 레이크는 컴퓨팅과 스토리지를 유연하게 분리할 수 있습니다.

6. 데이터 레이크

데이터 레이크는 정형 및 비정형 데이터의 중앙 집중식 리포지토리입니다. 데이터 레이크는 중앙 집중식 스토리지에 대량의 데이터를 저장하고 분석하는 대중적인 방법이 되고 있습니다. 간단한 분석을 위해 오픈 소스 파일 형식을 사용하여 데이터를 있는 그대로 저장합니다. 데이터를 현재 형식 그대로 저장할 수 있으므로 데이터를 미리 정의된 스키마로 변환할 필요가 없어 데이터 수집 속도가 빨라집니다.

데이터 레이크의 장점은 다음과 같습니다.

다양한 소스의 데이터 수집: 데이터 레이크를 사용하면 중앙 위치에 다양한 소스(예: 관계형, 비관계형 데이터베이스 및 스트림)의 데이터를 저장하고 분석하여 단일 소스를 생성할 수 있습니다. 데이터가 여러 장소에 분산되어 있는 이유와 같은 질문에 답합니다. 진실의 유일한 근원은 어디에 있습니까?

데이터를 효율적으로 수집 및 저장: Data Lake는 스키마 없이 반정형 및 비정형 데이터를 비롯한 모든 유형의 데이터를 수집할 수 있습니다. 이는 다양한 소스에서 다양한 형식의 데이터를 신속하게 수집하고 대규모로 효율적으로 저장하는 방법에 대한 질문에 답합니다.

생성된 데이터의 양이 계속 확장됨에 따라: 데이터 레이크를 사용하면 스토리지 계층을 컴퓨팅 계층에서 분리하여 각 구성 요소를 개별적으로 확장할 수 있습니다. 이것은 생성된 데이터의 양에 따라 확장하는 방법에 대한 질문에 답합니다.

서로 다른 소스의 데이터에 분석 적용: 데이터 레이크를 사용하면 읽을 때 데이터 패턴을 식별하고 서로 다른 소스에서 수집된 데이터의 중앙 집중식 데이터 카탈로그를 생성할 수 있습니다. 이를 통해 언제든지 신속하게 데이터를 분석할 수 있습니다. 이것은 여러 분석 및 처리 프레임워크를 동일한 데이터에 적용할 수 있는지 여부에 대한 질문에 답합니다.

관련 문서

더 많은 특별 제안 살펴보기

  1. Short Message Service(SMS) & Mail Service

    최저 USD 1.99부터 시작하는 10,000개의 이메일 패키지

wave
phone 문의하기