OLTP와 OLAP는 무엇입니까? 그들 사이의 차이점은 무엇입니까?


294

실제로 그들은 무엇을 의미합니까? 내가 찾은 모든 기사가 나에게 아이디어를 제공하지 않거나 내 지식이 그것을 이해하기에는 충분하지 않습니다.

어떤 사람이 처음부터 이것을 배울 수있는 자원을 줄 것입니까?


8
시작 하려면 datawarehouse4u.info/OLTP-vs-OLAP.html참조한 다음 자세한 내용과 차이점에 대한 자세한 링크는 Google을 참조하십시오.
시크릿

1
좋아, 간단한 DB 작업은 OLTP 범주에 있고 복잡한 대규모 데이터 처리는 OLAP에 있습니다. 이것이 기본 개념입니다.
Amarnath R Shenoy

1
@AmarnathRShenoy 예 삽입, 업데이트, 삭제는 OLTP를 처리합니다
Nagaraj S

9
@AmarnathRShenoy 주제를 연구하는 데 더 많은 노력을 기울여야합니다. Nagaraj S의 답변에서 제공 한 두 가지 리소스는 말 그대로 Google이 반환 한 상위 2 페이지였습니다. 당신은 다른 사람이 당신을 위해 일하도록 할 때 지식에서 자신을 속이는 것입니다. 더 나은 SO 질문 작성에 대한 팁은 SO 도움말 페이지를 참조하십시오 : 질문하는 방법? .
Austin A

답변:


363

OLTP와 OLAP 사이에 더 나은 솔루션이 있습니다.

  • OLTP (On-line Transaction Processing)는 특정 시스템의 운영에 관여합니다. OLTP는 많은 짧은 온라인 트랜잭션 (INSERT, UPDATE, DELETE)을 특징으로합니다. OLTP 시스템의 주안점은 매우 빠른 쿼리 처리에 중점을 두어 다중 액세스 환경에서 데이터 무결성을 유지하고 초당 트랜잭션 수로 측정되는 효과를 유지합니다. OLTP 데이터베이스에는 상세하고 최신 데이터가 있으며 트랜잭션 데이터베이스를 저장하는 데 사용되는 스키마는 엔터티 모델 (일반적으로 3NF)입니다. 회사 데이터베이스에서 이메일 업데이트와 같은 개별 레코드에 액세스하는 쿼리가 포함됩니다.

  • OLAP (온라인 분석 처리)는 기록 데이터 또는 보관 데이터를 처리합니다. OLAP은 거래량이 비교적 적은 것이 특징입니다. 쿼리는 종종 매우 복잡하며 집계가 관련됩니다. OLAP 시스템의 경우 응답 시간이 효과 측정입니다. OLAP 응용 프로그램은 데이터 마이닝 기술에서 널리 사용됩니다. OLAP 데이터베이스에는 다차원 스키마 (일반적으로 스타 스키마)에 저장된 집계 된 기록 데이터가 있습니다. 때때로 쿼리는 작년의 회사 이익과 같은 관리 레코드의 많은 양의 데이터에 액세스해야합니다.


7
매우 명확한 정보. 공유 해주셔서 감사합니다. 의심을 없애는 데 도움이되었습니다.
CapturedTree

"OL"은 무엇을 의미합니까?
Zach Smith

다른 사람들도 새로 고침이 필요한 경우 : 3NF 는 데이터 복제를 줄이고 참조 무결성을 보장하기 위해 데이터베이스 디자인을 표준화하는 데 사용되는 일반적인 형식입니다.
Martin Thoma

1
OL은 "온라인"을 의미하며, 이는 일괄 처리가 아닌 실시간 데이터 처리 완료를 의미합니다.
Ganesh Jadhav

229

매우 짧은 답변 :

데이터베이스마다 용도가 다릅니다. 저는 데이터베이스 전문가가 아닙니다. 경험 법칙 :

  • 분석을 수행하는 경우 (예 : 기록 데이터 집계) OLAP을 사용하십시오.
  • 거래를하는 경우 (예 : 전자 상거래 장바구니에서 주문 추가 / 제거) OLTP를 사용하십시오.

짧은 답변:

두 가지 예제 시나리오를 고려해 보겠습니다.

시나리오 1 :

온라인 상점 / 웹 사이트를 구축 중이며 다음을 수행 할 수 있기를 원합니다.

  • 사용자 데이터, 비밀번호, 이전 거래 저장 ...
  • 실제 제품과 관련 가격을 저장

특정 사용자에 대한 데이터를 찾고 이름을 변경하려면 기본적으로 사용자 데이터에 대해 INSERT, UPDATE, DELETE 작업을 수행하십시오. 제품과 동일

제품을 구매하는 사용자와 관련이있는 거래를 할 수 있기를 원합니다 (관계). 그렇다면 OLTP가 적합 할 것입니다.

시나리오 2 :

온라인 상점 / 웹 사이트가 있으며 다음과 같은 것을 계산하려고합니다.

  • "모든 사용자가 지출 한 총 금액"
  • "가장 많이 팔린 제품"

이는 분석 / 비즈니스 인텔리전스 영역에 속하므로 OLAP이 더 적합 할 것입니다.

"어떻게 / 무엇 / 얼마나 많은지 아는 것이 좋을 것"이라고 생각하면, 하나 이상의 종류의 모든 "객체"(예 : 모든 사용자와 대부분의 제품은 총 지출) OLAP이 더 적합 할 것입니다.

더 긴 답변 :

물론 일이 그렇게 간단하지 않습니다. 우리가 같은 짧은 태그를 사용해야하는 이유 OLTPOLAP처음에. 각 데이터베이스는 결국 독립적으로 평가되어야합니다.

그렇다면 OLAP과 OLTP의 근본적인 차이점은 무엇입니까?

데이터베이스는 데이터를 어딘가에 저장해야합니다. 데이터가 저장되는 방식이 상기 데이터의 가능한 사용을 크게 반영한다는 것은 놀라운 일이 아닙니다. 데이터는 일반적으로 하드 드라이브에 저장됩니다. 하드 드라이브를 실제로 읽고 쓰는 것이 가능한 넓은 용지라고 생각합시다. 효율적이고 빠르게 읽을 수 있도록 읽기와 쓰기를 구성하는 두 가지 방법이 있습니다.

한 가지 방법전화 번호부 와 비슷한 책을 만드는 것 입니다 . 책의 각 페이지에는 특정 사용자에 관한 정보가 저장됩니다. 이제는 특정 사용자에 대한 정보를 매우 쉽게 찾을 수 있습니다. 페이지로 바로 가십시오! 처음에는 사용자가 원하는 페이지를 알려주는 특수 페이지가있을 수도 있습니다. 그러나 다른 한편으로, 만약 우리가 모든 사용자가 얼마나 많은 돈을 소비하고 싶다면 모든 페이지, 즉 전체 책을 읽어야 할 것입니다! 이는 행 기반 장부 / 데이터베이스 (OLTP)입니다. 시작 부분의 옵션 페이지는 색인입니다.

우리의 큰 종이를 사용하는 또 다른 방법회계 장부 를 만드는 것 입니다 . 저는 회계사가 아니지만 "지출", "구매"에 대한 페이지가 있다고 상상해 봅시다. 이제 "총 수익을 내주십시오"와 같은 것을 매우 빨리 쿼리 할 수 ​​있기 때문에 좋습니다. "페이지). 또한 "판매 된 상위 10 개 제품을 제공하십시오"와 같은보다 관련성 높은 것들을 요청할 수 있으며 여전히 수용 가능한 성능을 가지고 있습니다. 그러나 이제 특정 사용자에 대한 지출을 찾는 것이 얼마나 고통 스러운지 고려하십시오. 모든 사람의 지출 목록 전체를 살펴보고 해당 특정 사용자의 지출을 필터링 한 다음 합산해야합니다. 기본적으로 다시 "전체 책을 읽습니다". OLAP (열 기반 데이터베이스)입니다.

다음과 같습니다 .

  • OLTP 데이터베이스는 많은 소규모 트랜잭션을 수행하는 데 사용되며 일반적으로 "단일 진실 소스"로 사용됩니다.

  • OLAP 반면 데이터베이스는 분석, 데이터 마이닝, 적은 쿼리에 더 적합하지만 일반적으로 더 큽니다 (더 많은 데이터에서 작동).

물론 데이터베이스보다 약간 더 복잡하며 데이터베이스의 차이점에 대한 2,000 피트 개요입니다.하지만 두문자어에서 길을 잃지 않습니다.

두문자어 말하기 :

  • OLTP = 온라인 거래 처리
  • OLAP = 온라인 분석 처리

좀 더 자세히 읽으려면 내 대답에 크게 영감을 얻은 관련 링크가 있습니다.


39
다양한 수준의 설명, 접근 가능한 언어 및 구체적인 예를 사용하여 접근하는 것이 좋습니다. stackoverflow에서 질문에 대답하는 사람들을위한 모델.
ribamar

2
대단하고 멋진 답변입니다! 지금까지 내가 찾은 최고의 제품! 이 사람에게 메달을주세요!
Pedro Gordo

1
이해하기 매우 쉽다는 것을 알았습니다!
하나

3
"의심 할 때는 SQL 만 사용합니다." -SQL은 언어이며 질문에 대답하지 않습니다. SQL을 해석하는 방법을 알고 모든 종류의 데이터 소스를 처리하기 위해 SQL을 해석하는 모든 종류의 데이터 관리 시스템이 있습니다. 스파크 데이터 프레임에서도 SQL 쿼리를 만들 수 있습니다. "의심 할 때는 html 만 사용"이라고 말하는 것과 같습니다. Ok, 그것은 짧은 대답이지만 바보입니다
Radu Simionescu

1
네, 당신이 제안하는 것은 두 가지 측면에서 개선이 될 것입니다. 그것은 물론 주제에 대한 정의를하지 않을 것이지만 요점 옆에 있습니다. 건배!
Cbhihe 19

24

차이점은 매우 간단합니다.

OLTP (온라인 거래 처리)

OLTP는 트랜잭션 지향 응용 프로그램을 용이하게 관리하는 정보 시스템 클래스입니다. OLTP는 시스템이 사용자 요청에 즉시 응답하는 처리를 나타내는 데에도 사용되었습니다. 온라인 트랜잭션 처리 응용 프로그램은 처리량이 많으며 데이터베이스 관리에서 삽입 또는 업데이트 집약적입니다. OLTP 시스템의 예로는 주문 입력, 소매 판매 및 금융 거래 시스템이 있습니다.

OLAP (온라인 분석 처리)

OLAP은 광범위한 비즈니스 인텔리전스의 일부이며 관계형 데이터베이스, 보고서 작성 및 데이터 마이닝도 포함합니다. OLAP의 일반적인 응용 프로그램에는 영업, 마케팅, 관리보고, BPM (비즈니스 프로세스 관리), 예산 및 예측, 재무보고 및 유사 영역에 대한 비즈니스보고가 포함됩니다.

자세한 내용보기 OLTP 및 OLAP


6

OLTP- : oltp는 현재 일상적인 데이터 정보를 관리하는 데 사용되는 온라인 트랜잭션 처리를 나타냅니다. OLAP- : 온라인 분석 처리 용 olap 스탠드는 과거 데이터 기록을 유지하는 데 사용되며 주로 데이터 분석에 사용되며웨어 하우스라고도합니다.


-6

oltp- 주로 비즈니스 트랜잭션에 사용됩니다. 비즈니스 데이터를 수집하는 데 사용됩니다. SQL에서 우리는 삽입, 업데이트 및 삭제 명령을 사용하여 작은 소스의 데이터를 검색합니다.

olap-보고, 데이터 마이닝 및 비즈니스 분석 목적으로 주로 사용됩니다. 대용량 또는 대량 데이터의 경우 의도적으로 비정규 화됩니다. 과거 데이터를 저장합니다 ..


이것은 왜 다른 답변에서 말한 것과 같은 것처럼 보입니다 : CRUD의 oltp, 집계의 olap?
ychaouche

1
@ychaouche는 아마도 비슷한 의미로 이미 3 개 이상의 답변이 있기 때문일 것입니다. 현재까지 이것은 최신 답변이지만 기존 답변을 지원하거나 지원하지도 않습니다 . 그러나 사용자는 여전히 불완전하고 설명이 부족한
Irfandy Jip 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.