Que sont OLTP et OLAP. Quelle est la différence entre eux?

294

En fait, que signifient-ils? Tous les articles que je trouve à leur sujet ne me donnent pas d'idée ou mes connaissances sont trop insuffisantes pour la comprendre.

Est-ce que quelqu'un me donnera quelques ressources avec lesquelles je peux apprendre cela à partir de zéro.

Amarnath R Shenoy
la source
8
Référez-vous à datawarehouse4u.info/OLTP-vs-OLAP.html pour commencer et ensuite juste Google autour pour plus de liens sur les détails et les différences
Incognito
1
Ok, les opérations DB si simples sont dans la catégorie OLTP Et le traitement complexe des données volumineuses est dans OLAP, c'est le concept de base, non?
Amarnath R Shenoy
1
@AmarnathRShenoy ouais insérer, mettre à jour, supprimer traitera d'OLTP
Nagaraj S
9
@AmarnathRShenoy Vous devriez vraiment mettre plus d'effort initial dans la recherche d'un sujet. Les deux ressources fournies par la réponse de Nagaraj S étaient littéralement les deux premières pages renvoyées par Google. Vous vous trompez de connaissances lorsque vous laissez quelqu'un d'autre faire le travail pour vous. Pour obtenir des conseils sur la rédaction de meilleures questions sur les SO, consultez la page d'aide sur les SO: Comment demander? .
Austin A

Réponses:

363

Vous trouverez ici une meilleure solution OLTP vs OLAP

  • OLTP (On-line Transaction Processing) est impliqué dans le fonctionnement d'un système particulier. OLTP se caractérise par un grand nombre de courtes transactions en ligne (INSERT, UPDATE, DELETE). L'accent principal des systèmes OLTP est mis sur le traitement des requêtes très rapide, le maintien de l'intégrité des données dans les environnements multi-accès et une efficacité mesurée par le nombre de transactions par seconde. Dans la base de données OLTP, il existe des données détaillées et actuelles, et le schéma utilisé pour stocker les bases de données transactionnelles est le modèle d'entité (généralement 3NF). Cela implique que les requêtes accèdent à un enregistrement individuel comme Mettre à jour votre e-mail dans la base de données de l'entreprise.

  • OLAP (traitement analytique en ligne) traite des données historiques ou des données d'archives. OLAP se caractérise par un volume de transactions relativement faible. Les requêtes sont souvent très complexes et impliquent des agrégations. Pour les systèmes OLAP, un temps de réponse est une mesure d'efficacité. Les applications OLAP sont largement utilisées par les techniques d'exploration de données. Dans la base de données OLAP, il existe des données historiques agrégées, stockées dans des schémas multidimensionnels (généralement un schéma en étoile). Parfois, une requête doit accéder à une grande quantité de données dans les enregistrements de gestion, comme le bénéfice de votre entreprise l'année dernière.

Nagaraj S
la source
7
Des informations très claires. Merci de le partager m'a aidé à dissiper mes doutes.
CapturedTree
À quoi fait référence l'OL?
Zach Smith
Si d'autres ont également besoin d'un rappel: 3NF est une forme normale utilisée pour normaliser la conception d'une base de données afin de réduire la duplication des données et garantir l'intégrité référentielle
Martin Thoma
1
OL fait référence à "ONLINE", ce qui signifie l'achèvement du traitement des données en temps réel et non du traitement par lots.
Ganesh Jadhav
229

Réponse très courte:

Différentes bases de données ont des utilisations différentes. Je ne suis pas un expert en bases de données. Règle générale:

  • si vous faites des analyses (ex. agrégation de données historiques) utilisez OLAP
  • si vous effectuez des transactions (par exemple, ajouter / supprimer des commandes sur un panier de commerce électronique), utilisez OLTP

Réponse courte:

Prenons deux exemples de scénarios:

Scénario 1:

Vous créez une boutique / un site Web en ligne et vous souhaitez pouvoir:

  • stocker les données utilisateur, mots de passe, transactions précédentes ...
  • stocker les produits réels, leurs prix associés

Vous voulez pouvoir trouver des données pour un utilisateur particulier, changer son nom ... essentiellement effectuer des opérations INSERT, UPDATE, DELETE sur les données utilisateur. Idem pour les produits, etc.

Vous voulez pouvoir effectuer des transactions, impliquant éventuellement un utilisateur achetant un produit (c'est une relation). Alors OLTP est probablement un bon choix.

Scénario 2:

Vous avez une boutique / un site Web en ligne et vous souhaitez calculer des choses comme

  • le "montant total dépensé par tous les utilisateurs"
  • "quel est le produit le plus vendu"

Cela relève du domaine de l'analyse / intelligence d'affaires, et donc OLAP est probablement plus adapté.

Si vous pensez en termes de "Ce serait bien de savoir comment / quoi / combien" ..., et cela implique tous les "objets" d'un ou plusieurs types (ex. Tous les utilisateurs et la plupart des produits total dépensé), alors OLAP est probablement mieux adapté.

Réponse plus longue:

Bien sûr, les choses ne sont pas si simples. C'est pourquoi nous devons utiliser des balises courtes comme OLTPet OLAPen premier lieu. Finalement, chaque base de données doit être évaluée indépendamment.

Alors, quelle pourrait être la différence fondamentale entre OLAP et OLTP?

Eh bien, les bases de données doivent stocker des données quelque part. Il n'est pas surprenant que la façon dont les données sont stockées reflète fortement l'utilisation possible de ces données. Les données sont généralement stockées sur un disque dur. Imaginons un disque dur comme une feuille de papier très large, où nous pouvons lire et écrire des choses. Il existe deux façons d'organiser nos lectures et écritures afin qu'elles soient efficaces et rapides.

Une façon consiste à créer un livre qui ressemble un peu à un annuaire téléphonique . Sur chaque page du livre, nous stockons les informations concernant un utilisateur particulier. Maintenant c'est bien, nous pouvons trouver les informations pour un utilisateur particulier très facilement! Accédez simplement à la page! Nous pouvons même avoir une page spéciale au début pour nous dire sur quelle page se trouvent les utilisateurs si nous le voulons. Mais d'un autre côté, si nous voulons trouver, disons, combien d'argent tous nos utilisateurs ont dépensé, nous devrons lire chaque page, c'est-à-dire tout le livre! Ce serait un livre / base de données en ligne (OLTP). La page facultative au début serait l'index.

Une autre façon d'utiliser notre grande feuille de papier est de faire un livre comptable . Je ne suis pas comptable, mais imaginons que nous aurions une page pour "dépenses", "achats" ... C'est bien parce que maintenant nous pouvons interroger des choses comme "donnez-moi le revenu total" très rapidement (il suffit de lire les "achats" "page). Nous pouvons également demander des choses plus impliquées comme «donnez-moi les dix meilleurs produits vendus» et avoir des performances acceptables. Mais considérons maintenant combien il serait douloureux de trouver les dépenses pour un utilisateur particulier. Vous devrez parcourir toute la liste des dépenses de chacun et filtrer celles de cet utilisateur particulier, puis les additionner. Ce qui revient essentiellement à "relire tout le livre". Ce serait une base de données basée sur des colonnes (OLAP).

Il s'ensuit que :

  • OLTP les bases de données sont destinées à être utilisées pour effectuer de nombreuses petites transactions et servent généralement de "source unique de vérité".

  • OLAP les bases de données, d'autre part, sont plus adaptées à l'analyse, à l'exploration de données, à moins de requêtes, mais elles sont généralement plus grandes (elles fonctionnent sur plus de données).

C'est un peu plus compliqué que cela bien sûr et c'est un aperçu de 20 000 pieds de la différence entre les bases de données, mais cela me permet de ne pas me perdre dans une mer d'acronymes.

En parlant d'acronymes:

  • OLTP = Traitement des transactions en ligne
  • OLAP = Traitement analytique en ligne

Pour lire un peu plus loin, voici quelques liens pertinents qui ont fortement inspiré ma réponse:

nha
la source
39
belle approche utilisant différents niveaux d'explication, un langage accessible et avec des exemples concrets. un modèle pour les personnes qui répondent aux questions dans stackoverflow.
ribamar
2
Réponse impressionnante et impressionnante! Le meilleur de loin que j'ai trouvé dans SO jusqu'à présent! Donnez à cet homme une médaille!
Pedro Gordo
1
Je l'ai trouvé très facile à comprendre!
The One
3
"En cas de doute, j'utilise simplement SQL." - SQL est un langage et cela ne répond pas à la question. Il existe toutes sortes de systèmes de gestion des données qui savent interpréter SQL et le traduire pour travailler avec toutes sortes de sources de données derrière le capot. On peut faire des requêtes SQL même sur des cadres de données spark. C'est comme dire "en cas de doute, j'utilise juste du HTML". Ok, c'est la réponse courte mais c'est idiot
Radu Simionescu
1
Oui, ce que vous proposez serait une amélioration, sur les deux plans. Cela ne rendrait pas justice au sujet, bien sûr, mais ce n'est pas la question. À votre santé !
Cbhihe
24

La différence est assez simple:

OLTP (traitement des transactions en ligne)

OLTP est une classe de systèmes d'information qui facilitent et gèrent les applications orientées transaction. OLTP a également été utilisé pour faire référence au traitement dans lequel le système répond immédiatement aux demandes des utilisateurs. Les applications de traitement des transactions en ligne sont à haut débit et nécessitent beaucoup d'insertion ou de mise à jour dans la gestion des bases de données. Certains exemples de systèmes OLTP comprennent les systèmes de saisie des commandes, de vente au détail et de transactions financières.

OLAP (traitement analytique en ligne)

OLAP fait partie de la catégorie plus large de l'intelligence d'affaires, qui comprend également la base de données relationnelle, la rédaction de rapports et l'exploration de données. Les applications typiques d'OLAP comprennent les rapports commerciaux pour les ventes, le marketing, les rapports de gestion, la gestion des processus métier (BPM), la budgétisation et les prévisions, les rapports financiers et des domaines similaires.

Voir plus de détails OLTP et OLAP

Serhii Burkovskyi
la source
6

OLTP-: le oltp signifie traitement des transactions en ligne qui est utilisé pour gérer les informations de données quotidiennes en cours. OLAP-: Le stand olap pour le traitement analytique en ligne qui est utilisé pour maintenir l'historique passé des données et principalement utilisé pour l'analyse des données et il peut également être appelé comme entrepôt.

rakesh singh
la source
-6

oltp - principalement utilisé pour les transactions commerciales.utilisé pour collecter des données commerciales.En SQL, nous utilisons la commande d'insertion, de mise à jour et de suppression pour récupérer une petite source de données.

olap - principalement utilisé à des fins de reporting, d'exploration de données et d'analyse commerciale. pour les données volumineuses ou en vrac, elles sont délibérément dénormalisées. il stocke des données historiques ..

vikrant solanke
la source
Pourquoi cette décision a-t-elle été rejetée? Cela semble être le même que ce qui a été dit dans d'autres réponses: oltp pour CRUD, olap pour agrégats?
ychaouche
1
@ychaouche probablement parce qu'il y a déjà plus de 3 réponses avec une signification similaire. Par date, il s'agit de la réponse la plus récente et pourtant elle n'aide ni ne soutient les réponses existantes. L'utilisateur a toutefois décidé d'ajouter sa propre version de réponse de toute façon qui est encore incomplète et manque d'explications.
Irfandy Jip