OLTPおよびOLAPとは何ですか。それらの違いは何ですか?


294

実際にはどういう意味ですか?それらについて私が見つけたすべての記事は私にアイデアを与えません、または私の知識はそれを理解するには余りにも不十分です。

誰かが私にこれを一から学ぶことができるいくつかのリソースをくれますか?


8
はじめにdatawarehouse4u.info/OLTP-vs-OLAP.htmlを参照し、詳細と相違点に関するその他のリンクについては、Googleをご利用ください
Incognito

1
わかりましたので、単純なDB操作はOLTPカテゴリにあり、複雑な大規模データ処理はOLAPにあります。
Amarnath R Shenoy

1
@AmarnathRShenoyええ、挿入、更新、削除はOLTPに対応します
Nagaraj S

9
@AmarnathRShenoyトピックの調査には、最初の努力をもっと注ぐ必要があります。Nagaraj Sの回答によって提供された2つのリソースは、文字通りgoogleによって返された上位2ページでした。他人にあなたに代わって仕事をさせたとき、あなたは知識から自分をだましています。より良いSOの質問を書くためのヒントについては、SOのヘルプページを参照してください。
オースティンA

回答:


363

ここでは、OLTPとOLAPより優れたソリューションを見つけます。

  • OLTP(オンライントランザクション処理)は、特定のシステムの操作に関与しています。OLTPの特徴は、多数の短いオンライントランザクション(INSERT、UPDATE、DELETE)です。OLTPシステムの主な重点は、非常に高速なクエリ処理、マルチアクセス環境でのデータ整合性、および1秒あたりのトランザクション数で測定される有効性を維持することです。OLTPデータベースには詳細な最新のデータがあり、トランザクションデータベースの格納に使用されるスキーマはエンティティモデル(通常は3NF)です。これには、企業データベースのメールの更新など、個々のレコードにアクセスするクエリが含まれます。

  • OLAP(オンライン分析処理)は、履歴データまたはアーカイブデータを扱います。OLAPの特徴は、トランザクションの量が比較的少ないことです。多くの場合、クエリは非常に複雑で、集計が含まれます。OLAPシステムの場合、応答時間は有効性の尺度です。OLAPアプリケーションは、データマイニング技術で広く使用されています。OLAPデータベースには、集約された履歴データがあり、多次元スキーマ(通常はスタースキーマ)に格納されます。クエリは、昨年の会社の利益のように、管理レコードの大量のデータにアクセスする必要がある場合があります。


7
非常に明確な情報。共有していただきありがとうございます。
CapturedTree 2016

「OL」とは何ですか?
Zach Smith

他の人もリフレッシャーを必要とする場合:3NFは、データベースの設計を正規化してデータの重複を減らし、参照整合性を確保するために使用される通常の形式です
Martin Thoma

1
OLは「オンライン」を指します。これは、バッチ処理ではなく、リアルタイムでのデータ処理の完了を意味します。
Ganesh Jadhav

229

非常に短い答え:

データベースによって用途は異なります。私はデータベースの専門家ではありません。経験則:

  • 分析(履歴データの集計など)を行う場合は、OLAPを使用します。
  • トランザクション(eコマースカートでの注文の追加/削除など)を行う場合は、OLTPを使用します。

短い答え:

2つのシナリオ例を考えてみましょう。

シナリオ1:

オンラインストア/ウェブサイトを構築していて、次のことができるようにしたいと考えています。

  • ユーザーデータ、パスワード、以前のトランザクションを保存...
  • 実際の製品とそれに関連する価格を保存する

特定のユーザーのデータを検索し、その名前を変更できるようにしたい...基本的にユーザーデータに対してINSERT、UPDATE、DELETE操作を実行します。製品等も同様

おそらくユーザーが製品を購入することを伴うトランザクションを実行できるようにしたい(それは関係です)。その場合、おそらくOLTPが適しています。

シナリオ2:

オンラインストア/ウェブサイトがあり、次のような計算をしたい

  • 「すべてのユーザーが費やした合計金額」
  • 「最も売れた製品は何ですか」

これは分析/ビジネスインテリジェンスドメインに該当するため、おそらくOLAPの方が適しています。

「どのように/何を/どのくらい知っているのがいいだろう」という観点で考えると、1つ以上の種類のすべての「オブジェクト」(たとえば、すべてのユーザーとほとんどの製品が合計費用)おそらくOLAPの方が適しています。

より長い答え:

もちろん、物事はそれほど単純ではありません。そのため、そもそものような短いタグを使用する必要がOLTPありOLAPます。最終的には、各データベースを個別に評価する必要があります。

では、OLAPとOLTPの根本的な違いは何でしょうか。

まあ、データベースはどこかにデータを保存する必要があります。データの保存方法が、そのデータの可能な使用法を大きく反映していることは驚くべきことではありません。データは通常、ハードドライブに保存されます。ハードドライブを、私たちが物事を読み書きできる本当に広い紙のシートと考えてみましょう。読み取りと書き込みを効率的かつ高速に行えるように整理するには、2つの方法があります。

1つの方法は、電話帳のような本を作ることです。本の各ページには、特定のユーザーに関する情報が格納されています。これで、特定のユーザーの情報を簡単に見つけることができます。ページにジャンプしてください!必要に応じて、最初に特別なページを用意して、ユーザーがどのページにいるかを通知することもできます。しかし、一方で、たとえば、すべてのユーザーが費やした金額を知りたい場合は、すべてのページ、つまり本全体を読む必要があります。これは、行ベースのブック/データベース(OLTP)です。冒頭のオプションページがインデックスになります。

大きな紙を使用するもう1つの方法は、会計帳簿を作成することです。私は会計士ではありませんが、「支出」、「購入」のページがあると想像してみてください。これで、「総収益を教えて」などのクエリをすばやく実行できるようになります(「購入"ページ)。また、「販売された製品のトップ10をくれ」などのより複雑なものを要求しても、許容できるパフォーマンスを維持できます。しかし、特定のユーザーの支出を見つけるのがどれほど大変かを考えてみましょう。全員の支出のリスト全体を調べ、その特定のユーザーの支出をフィルタリングしてから、それらを合計する必要があります。基本的に、これは「本全体をもう一度読む」ことになります。これは、列ベースのデータベース(OLAP)です。

それは次のとおりです

  • OLTP データベースは、多くの小さなトランザクションを実行するために使用されることを意図しており、通常は「単一の真の情報源」として機能します。

  • OLAP 一方、データベースは分析、データマイニング、クエリの数を減らすのに適していますが、通常は大きくなります(より多くのデータを操作します)。

それはもちろんそれよりも少し複雑であり、それはデータベースがどのように異なるかについての20 000フィートの概要ですが、それは私が頭字語の海で迷うことがないようにします。

頭字語といえば:

  • OLTP =オンライントランザクション処理
  • OLAP =オンライン分析処理

もう少し読むために、ここに私の答えに大きく影響を与えたいくつかの関連リンクがあります:


39
さまざまなレベルの説明、アクセス可能な言語、具体的な例を使用した素晴らしいアプローチ。Stackoverflowで質問に答える人々のためのモデル。
ribamar

2
素晴らしい、素晴らしい答え!今までSOで見つけた中でこれまでで最高の1つです。この男にメダルをあげろ!
ペドロゴルド

1
とてもわかりやすい!
One

3
「疑わしいときは、SQLを使用します。」-SQLは言語であり、これは質問に答えません。SQLの解釈方法を理解し、内部であらゆる種類のデータソースを操作するためにSQLを変換するあらゆる種類のデータ管理システムがあります。スパークデータフレームでもSQLクエリを実行できます。それは、「疑わしいときはhtmlを使うだけ」と言っているようなものです。わかりました、短い答えですが、それはばかげています
Radu Simionescu

1
はい、あなたが提案することは両方の点で改善です。もちろん、それはこのトピックに正義をもたらすものではありませんが、それは重要ではありません。乾杯!
Cbhihe

24

違いは非常に簡単です:

OLTP(オンライントランザクション処理)

OLTPは、トランザクション指向のアプリケーションを促進および管理する情報システムのクラスです。OLTPは、システムがユーザーの要求に即座に応答する処理を指す場合にも使用されています。オンライントランザクション処理アプリケーションは、スループットが高く、データベース管理において挿入または更新を多用します。OLTPシステムの例には、注文入力、小売販売、金融取引システムなどがあります。

OLAP(オンライン分析処理)

OLAPは、ビジネスインテリジェンスのより広範なカテゴリの一部であり、リレーショナルデータベース、レポート作成、データマイニングも含まれます。OLAPの一般的なアプリケーションには、販売、マーケティング、管理レポート、ビジネスプロセス管理(BPM)、予算編成と予測、財務レポートなどの分野のビジネスレポートが含まれます。

詳細を見るOLTPとOLAP


6

OLTP-:oltpは、現在の日々のデータ情報を管理するために使用されるオンライントランザクション処理の略です。OLAP-:データの過去の履歴を維持するために使用され、主にデータ分析に使用されるオンライン分析処理のOlapスタンドで、ウェアハウスとも呼ばれます。


-6

oltp-主にビジネストランザクションに使用されます。ビジネスデータの収集に使用されます。SQLでは、挿入、更新、削除コマンドを使用して、データの小さなソースを取得します。高度に正規化されているように... OLTPデータの整合性を維持するために主に使用されます。

olap-主にレポート、データマイニング、ビジネス分析の目的で使用します。大規模またはバルクのデータの場合、意図的に非正規化されます。履歴データを保存します。


なぜこれが反対投票されたのは、他の回答で述べられているものと同じであるように思われる:CRUDの場合はoltp、集約の場合はolapですか?
ychaouche

1
@ychaoucheは、類似の意味を持つ回答がすでに3つ以上あるためと考えられます。日付までにこれは最新の答えですが、それでも既存の答えを助けもサポートもしません。しかし、ユーザーはとにかく自分のバージョンの回答を追加することにしましたが、それでもまだ不完全で説明が不足しています。
Irfandy Jip
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.