OLTP và OLAP là gì. sự khác biệt giữa chúng là gì?


294

Thật ra chúng có ý nghĩa gì? Tất cả các bài viết tôi tìm thấy về chúng không cho tôi một ý tưởng, hoặc kiến ​​thức của tôi không đủ để hiểu nó.

Ai đó sẽ cung cấp cho tôi một số tài nguyên mà tôi có thể học được điều này từ đầu.


8
Tham khảo datwarhouse4u.info/OLTP-vs-OLAP.html để bắt đầu và sau đó chỉ Google để biết thêm liên kết về chi tiết và sự khác biệt
Ẩn danh

1
Ok Các thao tác DB đơn giản nằm trong danh mục OLTP Và xử lý dữ liệu lớn phức tạp nằm trong OLAP, đó có phải là khái niệm cơ sở không ??
Amarnath R Shenoy

1
@AmarnathRShenoy yeah chèn, cập nhật, xóa sẽ đối phó với OLTP
Nagaraj S

9
@AmarnathRShenoy Bạn thực sự nên nỗ lực nhiều hơn vào việc nghiên cứu một chủ đề. Hai tài nguyên được cung cấp bởi câu trả lời của Nagaraj S thực sự là hai trang hàng đầu được google trả lại. Bạn đang tự lừa dối bản thân khi bạn để người khác làm việc cho bạn. Để biết các mẹo viết câu hỏi SO tốt hơn, hãy tham khảo trang trợ giúp SO: Làm thế nào để hỏi? .
Austin A

Câu trả lời:


363

Ở đây bạn sẽ tìm thấy một giải pháp tốt hơn OLTP so với OLAP

  • OLTP (Xử lý giao dịch trực tuyến) có liên quan đến hoạt động của một hệ thống cụ thể. OLTP được đặc trưng bởi một số lượng lớn các giao dịch trực tuyến ngắn (CHERTN, CẬP NHẬT, XÓA). Điểm nhấn chính cho các hệ thống OLTP là xử lý truy vấn rất nhanh, duy trì tính toàn vẹn dữ liệu trong môi trường đa truy cập và hiệu quả được đo bằng số lượng giao dịch mỗi giây. Trong cơ sở dữ liệu OLTP có dữ liệu chi tiết và hiện tại và lược đồ được sử dụng để lưu trữ cơ sở dữ liệu giao dịch là mô hình thực thể (thường là 3NF). Nó liên quan đến Truy vấn truy cập hồ sơ cá nhân như Cập nhật Email của bạn trong cơ sở dữ liệu Công ty.

  • OLAP (Xử lý phân tích trực tuyến) liên quan đến Dữ liệu lịch sử hoặc Dữ liệu lưu trữ. OLAP được đặc trưng bởi khối lượng giao dịch tương đối thấp. Truy vấn thường rất phức tạp và liên quan đến tập hợp. Đối với các hệ thống OLAP, thời gian đáp ứng là một thước đo hiệu quả. Các ứng dụng OLAP được sử dụng rộng rãi bởi các kỹ thuật Khai thác dữ liệu. Trong cơ sở dữ liệu OLAP có dữ liệu lịch sử tổng hợp, được lưu trữ trong các lược đồ đa chiều (thường là lược đồ sao). Thỉnh thoảng truy vấn cần truy cập một lượng lớn dữ liệu trong hồ sơ Quản lý như lợi nhuận của công ty bạn trong năm ngoái.


7
Thông tin rất rõ ràng. Cảm ơn bạn đã chia sẻ nó đã giúp tôi xóa tan nghi ngờ của tôi.
CapturedTree

"OL" đề cập đến điều gì?
Zach Smith

Nếu những người khác cũng cần phải làm mới lại: 3NF là một hình thức bình thường được sử dụng trong việc bình thường hóa thiết kế cơ sở dữ liệu để giảm trùng lặp dữ liệu và đảm bảo tính toàn vẹn tham chiếu
Martin Thoma

1
OL đề cập đến "TRỰC TUYẾN", có nghĩa là hoàn thành xử lý dữ liệu trong thời gian thực và không xử lý hàng loạt.
Ganesh Jadhav

229

Câu trả lời rất ngắn:

Cơ sở dữ liệu khác nhau có cách sử dụng khác nhau. Tôi không phải là một chuyên gia cơ sở dữ liệu. Quy tắc của ngón tay cái:

  • nếu bạn đang thực hiện phân tích (ví dụ: tổng hợp dữ liệu lịch sử), hãy sử dụng OLAP
  • nếu bạn đang thực hiện giao dịch (ví dụ: thêm / xóa đơn hàng trên giỏ hàng thương mại điện tử), hãy sử dụng OLTP

Câu trả lời ngắn:

Hãy xem xét hai kịch bản ví dụ:

Cảnh 1:

Bạn đang xây dựng một cửa hàng / trang web trực tuyến và bạn muốn có thể:

  • lưu trữ dữ liệu người dùng, mật khẩu, giao dịch trước đó ...
  • lưu trữ các sản phẩm thực tế, giá liên quan của họ

Bạn muốn có thể tìm dữ liệu cho một người dùng cụ thể, thay đổi tên của nó ... về cơ bản thực hiện các hoạt động INSERT, UPDATE, DELETE trên dữ liệu người dùng. Tương tự với các sản phẩm, vv

Bạn muốn có thể thực hiện các giao dịch, có thể liên quan đến việc người dùng mua sản phẩm (đó là mối quan hệ). OLTP có lẽ là một phù hợp tốt.

Kịch bản 2:

Bạn có một cửa hàng / trang web trực tuyến và bạn muốn tính toán những thứ như

  • "tổng số tiền chi cho tất cả người dùng"
  • "sản phẩm được bán nhiều nhất là gì"

Điều này rơi vào miền phân tích / thông minh kinh doanh và do đó OLAP có lẽ phù hợp hơn.

Nếu bạn nghĩ theo nghĩa "Sẽ thật tuyệt khi biết làm thế nào / cái gì / bao nhiêu" ... và điều đó liên quan đến tất cả các "đối tượng" của một hoặc nhiều loại (ví dụ: tất cả người dùng và hầu hết các sản phẩm đều biết tổng chi tiêu) thì OLAP có lẽ phù hợp hơn.

Câu trả lời dài hơn:

Tất nhiên mọi thứ không đơn giản như vậy. Đó là lý do tại sao chúng ta phải sử dụng các thẻ ngắn như OLTPOLAPở vị trí đầu tiên. Mỗi cơ sở dữ liệu nên được đánh giá độc lập cuối cùng.

Vậy điều gì có thể là sự khác biệt cơ bản giữa OLAP và OLTP?

Vâng, cơ sở dữ liệu phải lưu trữ dữ liệu ở đâu đó. Không có gì đáng ngạc nhiên khi cách dữ liệu được lưu trữ phản ánh rất nhiều việc sử dụng dữ liệu nói trên. Dữ liệu thường được lưu trữ trên ổ cứng. Chúng ta hãy nghĩ về một ổ đĩa cứng như một tờ giấy thực sự rộng, nơi chúng ta có thể đọc và viết mọi thứ. Có hai cách để tổ chức đọc và viết của chúng tôi để chúng có thể hiệu quả và nhanh chóng.

Một cách là tạo ra một cuốn sách hơi giống một cuốn sách điện thoại . Trên mỗi trang của cuốn sách, chúng tôi lưu trữ thông tin liên quan đến một người dùng cụ thể. Bây giờ thật tuyệt, chúng ta có thể tìm thấy thông tin cho một người dùng cụ thể rất dễ dàng! Chỉ cần nhảy đến trang! Chúng tôi thậm chí có thể có một trang đặc biệt ngay từ đầu để cho chúng tôi biết người dùng đang ở trang nào nếu chúng tôi muốn. Nhưng mặt khác, nếu chúng ta muốn tìm, giả sử, tất cả người dùng của chúng ta đã chi bao nhiêu tiền thì chúng ta sẽ phải đọc mọi trang, tức là toàn bộ cuốn sách! Đó sẽ là một cuốn sách / cơ sở dữ liệu dựa trên hàng (OLTP). Trang tùy chọn ở đầu sẽ là chỉ mục.

Một cách khác để sử dụng tờ giấy lớn của chúng tôi là làm một sổ kế toán . Tôi không phải là kế toán, nhưng hãy tưởng tượng rằng chúng ta sẽ có một trang dành cho "chi tiêu", "mua hàng" ... Thật tuyệt vì bây giờ chúng ta có thể truy vấn những thứ như "cho tôi tổng doanh thu" rất nhanh (chỉ cần đọc "mua hàng" " trang). Chúng tôi cũng có thể yêu cầu nhiều thứ liên quan hơn như "cho tôi mười sản phẩm hàng đầu được bán" và vẫn có hiệu suất chấp nhận được. Nhưng bây giờ hãy xem xét việc tìm kiếm các khoản chi tiêu cho một người dùng cụ thể sẽ đau đớn như thế nào. Bạn sẽ phải xem toàn bộ danh sách chi tiêu của mọi người và lọc những khoản chi của người dùng cụ thể đó, sau đó tổng hợp chúng. Mà về cơ bản là "đọc toàn bộ cuốn sách" một lần nữa. Đó sẽ là cơ sở dữ liệu dựa trên cột (OLAP).

Nó theo sau :

  • OLTP cơ sở dữ liệu được sử dụng để thực hiện nhiều giao dịch nhỏ và thường phục vụ như một "nguồn sự thật duy nhất".

  • OLAP mặt khác, cơ sở dữ liệu phù hợp hơn cho phân tích, khai thác dữ liệu, ít truy vấn hơn nhưng chúng thường lớn hơn (chúng hoạt động trên nhiều dữ liệu hơn).

Tất nhiên, nó liên quan nhiều hơn một chút và đó là tổng quan 20 000 feet về cách thức cơ sở dữ liệu khác nhau, nhưng nó cho phép tôi không bị lạc trong một biển từ viết tắt.

Nói về các từ viết tắt:

  • OLTP = Xử lý giao dịch trực tuyến
  • OLAP = Xử lý phân tích trực tuyến

Để đọc thêm một chút, đây là một số liên kết có liên quan đã truyền cảm hứng cho câu trả lời của tôi:


39
cách tiếp cận tốt đẹp bằng cách sử dụng các cấp độ giải thích khác nhau, ngôn ngữ có thể truy cập và với các ví dụ cụ thể. một mô hình cho những người trả lời các câu hỏi trong stackoverflow.
ribamar

2
Tuyệt vời, câu trả lời tuyệt vời! Tốt nhất cho đến nay tôi đã tìm thấy trong SO cho đến bây giờ! Hãy cho người đàn ông này một huy chương!
Pedro Gordo

1
Tôi thấy nó rất dễ hiểu!
Một

3
"Khi nghi ngờ, tôi chỉ sử dụng SQL." - SQL là một ngôn ngữ và điều này không trả lời câu hỏi. Có tất cả các loại hệ thống mgmt dữ liệu biết cách giải thích SQL và dịch nó để làm việc với tất cả các loại nguồn dữ liệu đằng sau mui xe. Người ta có thể thực hiện các truy vấn sql ngay cả trên các dataframes. Điều đó giống như nói "khi nghi ngờ, tôi chỉ sử dụng html". Ok, đó là câu trả lời ngắn nhưng thật ngớ ngẩn
Radu Simionescu

1
Vâng, những gì bạn đề xuất sẽ là một sự cải thiện, trên cả hai tính. Tất nhiên, nó sẽ không làm công lý cho chủ đề này, nhưng đó là vấn đề bên cạnh. Chúc mừng!
Cbhihe

24

Sự khác biệt khá đơn giản:

OLTP (Xử lý giao dịch trực tuyến)

OLTP là một lớp các hệ thống thông tin tạo điều kiện và quản lý các ứng dụng hướng giao dịch. OLTP cũng đã được sử dụng để chỉ việc xử lý trong đó hệ thống đáp ứng ngay lập tức các yêu cầu của người dùng. Các ứng dụng xử lý giao dịch trực tuyến có thông lượng cao và chèn hoặc cập nhật chuyên sâu trong quản lý cơ sở dữ liệu. Một số ví dụ về hệ thống OLTP bao gồm nhập đơn hàng, bán lẻ và hệ thống giao dịch tài chính.

OLAP (Xử lý phân tích trực tuyến)

OLAP là một phần của phạm trù kinh doanh thông minh rộng lớn hơn, nó cũng bao gồm cơ sở dữ liệu quan hệ, viết báo cáo và khai thác dữ liệu. Các ứng dụng điển hình của OLAP bao gồm báo cáo kinh doanh cho bán hàng, tiếp thị, báo cáo quản lý, quản lý quy trình kinh doanh (BPM), lập ngân sách và dự báo, báo cáo tài chính và các lĩnh vực tương tự.

Xem thêm chi tiết OLTP và OLAP


6

OLTP-: oltp là viết tắt của quy trình giao dịch trực tuyến được sử dụng để quản lý thông tin dữ liệu hàng ngày hiện tại. OLAP-: Giá đỡ olap để xử lý phân tích trực tuyến được sử dụng để duy trì lịch sử dữ liệu trong quá khứ và chủ yếu được sử dụng để phân tích dữ liệu và nó cũng có thể được gọi là kho.


-6

oltp- chủ yếu được sử dụng cho giao dịch kinh doanh. Được sử dụng để thu thập dữ liệu kinh doanh. Trong sql chúng tôi sử dụng lệnh chèn, cập nhật và xóa để lấy nguồn dữ liệu nhỏ. Giống như chúng được chuẩn hóa cao .... OLTP Chủ yếu được sử dụng để duy trì tính toàn vẹn dữ liệu.

olap- chủ yếu được sử dụng để báo cáo, khai thác dữ liệu và mục đích phân tích kinh doanh. đối với dữ liệu lớn hoặc số lượng lớn. Cố tình nó không được chuẩn hóa. nó lưu trữ dữ liệu lịch sử ..


Tại sao điều này được đánh giá thấp nó dường như giống như những gì đã được nói trong các câu trả lời khác: oltp cho CRUD, olap cho tổng hợp?
ychaouche

1
@ychaouche có lẽ vì đã có hơn 3 câu trả lời với ý nghĩa tương tự. Theo ngày, đây là câu trả lời mới nhất và thậm chíkhông giúp đỡ cũng như hỗ trợ các câu trả lời hiện có. Tuy nhiên, người dùng đã quyết định thêm phiên bản trả lời của riêng mình dù sao vẫn chưa đầy đủ và thiếu giải thích.
Irfandy Jip
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.