OLTP (Online Transaction Processing) è un tipo di elaborazione dei dati che consiste nell'esecuzione di una serie di transazioni che si verificano contemporaneamente, ad esempio, in operazioni bancarie online, acquisti, inserimento di ordini o invio di messaggi di testo. Tali transazioni sono definite solitamente come transazioni economiche o finanziarie e sono sicure e registrate in modo tale che un'azienda possa accedere alle informazioni in qualsiasi momento, a fini contabili e di reporting.
In passato, OLTP si limitava alle interazioni reali in cui veniva scambiato qualcosa, come per esempio soldi, prodotti, informazioni, richieste di assistenza e via dicendo. Ma la definizione di transazione in questo contesto si è ampliata nel corso degli anni, soprattutto dopo l'avvento di Internet, e ora comprende qualsiasi tipo di interazione digitale o coinvolgimento con un'azienda che può essere attivato in qualsiasi parte del mondo e tramite qualsiasi sensore con connessione Internet. Include anche qualsiasi tipo di interazione o azione, ad esempio il download di pdf su una pagina Web, la visualizzazione di un video specifico, trigger di manutenzione automatica o commenti sui canali social che potrebbero essere cruciali per un'azienda e che devono esere registrati per supportare al meglio i clienti.
La definizione principale di transazione (economica o finanziaria) rappresenta la base per la maggior parte dei sistemi OLTP, pertanto l'elaborazione delle transazioni online solitamente implica l'inserimento, l'aggiornamento e/o l'eliminazione di piccoli quantitativi di dati in un data store per raccogliere, gestire e proteggere tali transazioni. Generalmente un'applicazione Web, mobile o aziendale tiene traccia di tutte queste interazioni o transazioni con clienti, fornitori o partner e li aggiorna nel database OLTP. I dati delle transazioni memorizzati nel database, sono fondamentali per le aziende e vengono utilizzati per generare report o analizzati per poter prendere decisioni basate sui dati.
Scopri come aziende quali Retraced, Parco Archeologico di Pompei, Jasci e Siemens hanno ottenuto ottimi risultati portando i loro carichi di lavoro di elaborazione delle transazioni nel cloud.
Le aziende di solito hanno di due tipi di funzionalità di elaborazione dei dati: OLTP e OLAP.
Anche se sono simili e sono entrambi sistemi di elaborazione dati online, c'è una differenza enorme tra OLTP e OLAP.
OLTP consente l'esecuzione in tempo reale di grandi quantità di transazioni da parte di un elevato numero di persone, mentre OLAP (Online Analytical Processing) generalmente implica l'esecuzione di query su tali transazioni (definite anche record) in un database per scopi di analisi. OLAP consente alle aziende di estrarre insight dai dati delle transazioni al fine di prendere decisioni più mirate.
La tabella qui sotto mette a confronto i sistemi OLTP e quelli OLAP.
Sistemi OLTP |
Sistemi OLAP |
Permettono l'esecuzione in tempo reale di grandi quantità di transazioni del database da parte di un elevato numero di persone |
Di solito comportano l'esecuzione di query su molti o tutti i record in un database per scopi di analisi. |
Richiedono tempi di risposta rapidissimi |
Richiedono tempi di risposta molto più lenti rispetto a quelli richiesti da OLTP |
Modificano piccoli quantitativi di dati in modo frequente e generalmente comporta un bilanciamento tra le operazioni di lettura e quelle di scrittura |
Non modificano alcun dato; i carichi di lavoro sono in genere a elevata densità di lettura |
Utilizzano dati indicizzati per migliorare i tempi di risposta |
Memorizzano i dati in formato colonna per facilitare l'accesso a un numero elevato di record |
Richiedono backup frequenti o simultanei del database |
Richiedono backup del database molto meno frequenti |
Richiedono uno spazio di storage relativamente ridotto |
Generalmente richiedono un notevole spazio di storage, in quanto memorizzano grandi quantità di dati cronologici |
Solitamente eseguono semplici query che riguardano solo uno o al massimo pochi record |
Eseguono query complesse che coinvolgono un numero elevato di record. |
Riassumendo, OLTP è un sistema di modifica dei dati online, mentre OLAP è un sistema di data store multidimensionale e cronologico online, utilizzato per recuperare grandi quantità di dati per scopi di analisi. OLAP solitamente fornisce analisi dei dati acquisiti da uno o più sistemi OLTP.
L'architettura più comune di un sistema OLTP che utilizza dati transazionali, è quella a tre livelli che generalmente sono composti da un livello di presentazione, uno di business logic e uno di data store. Il livello di presentazione è il front-end, dove la transazione ha origine tramite un'interazione umana oppure viene generata dal sistema. Il livello di business logic è costituito da regole che verificano la transazione e assicurano che siano disponibili tutti i dati necessari per completare tale transazione. Il livello di data store memorizza la transazione e tutti i dati correlati.
Le caratteristiche principali di un sistema di elaborazione delle transazioni online sono le seguenti:
I database relazionali sono stati progettati appositamente per le applicazioni che si occupano di transazioni. Essi incorporano tutti gli elementi essenziali necessari per la memorizzazione e l'elaborazione di grandi volumi di transazioni e sono aggiornati costantemente con nuove funzionalità per ricavare maggiore valore dai dati delle transazioni. I database relazionali sono progettati appositamente per garantire la più elevata disponibilità e le performance più veloci. Offrono accesso concomitante e compliance a livello ACID, pertanto i dati sono accurati, sempre disponibili e facilmente accessibili. Memorizzano i dati nelle tabelle dopo l'estrazione delle relazioni tra i dati, in modo tale da poter essere utilizzati da qualsiasi applicazione e garantire così un'unica fonte di dati.
Man mano che le transazioni sono diventate sempre più complesse, provenendo da qualsiasi fonte o dispositivo e da qualsiasi parte del mondo, i database relazionali tradizionali non riuscivano a soddisfare le esigenze dei moderni flussi di lavoro transazionali, in quanto non erano abbastanza avanzati. Avevano la necessità di evolversi per gestire le moderne transazioni, i dati eterogenei e la portata globale, ma soprattutto per eseguire carichi di lavoro misti. I database relazionali si sono trasformati in database multimodali che memorizzano e elaborano non solo dati relazionali, ma anche tutti gli altri tipi di dati, tra cui xml, html, JSON, Apache Avro, Parquet e documenti nella loro forma nativa (non è stata una trasformazione eclatante). I database relazionali, inoltre, avevano la necessità di aggiungere ulteriori funzionalità come il clustering e l'accelerazione, in modo tale che potessero essere distribuiti a livello globale e scalare all'infinito per memorizzare ed elaborare volumi sempre più grandi di dati e utilizzare uno storage più economico, disponibile nel cloud. Grazie ad altre funzionalità quali analytics avanzati e in memoria, la visualizzazione e incluse le code degli eventi di transazione, questi database ora possono eseguire più carichi di lavoro, ad esempio l'esecuzione di analytics sui dati di transazione, l'elaborazione dei dati di streaming (IoT) oppure l'esecuzione di analytics spaziali e a grafo.
I moderni database relazionali creati nel cloud, automatizzano molti aspetti gestionali e operativi del database, semplificandone l'esecuzione e l'utilizzo da parte degli utenti. Offrono provisioning, sicurezza, ripristino, backup e scalabilità automatici, in modo tale che i DBA e i team IT debbano dedicare meno tempo ala gestione. Integrano inoltre l'intelligence per ottimizzare e indicizzare automaticamente i dati, cosicché le performance delle query sul database siano coerenti indipendentemente dalla quantità di dati, dal numero di utenti concomitanti o dalla complessità delle query. Questi database nel cloud includono anche funzionalità self-service e API REST per consentire a sviluppatori e analisti di accedere ai dati e di utilizzarli con facilità. Ciò semplifica lo sviluppo delle applicazioni, offrendo flessibilità e rendendo più facile per gli sviluppatori la possibilità di creare nuove funzionalità e personalizzazioni all'interno delle applicazioni. Semplifica inoltre gli analytics e l'utilizzo dei dati da parte degli analisti e data scientist in modo da ricavare insight.
Dato che per l'IT è difficile stare al passo con la velocità del business, è importante che, quando si sceglie un database operativo, si prenda in considerazione le proprie esigenze immediate e i requisiti a lungo termine in temine di dati. Per memorizzare le transazioni e gestire i sistemi di archiviazione o dei contenuti, sarà necessario un database con concomitanza e throughput elevati, bassa latenza e caratteristiche mission-critical quali l'alta disponibilità, la protezione dei dati e il Disaster Recovery. Molto probabilmente, il tuo carico di lavoro cambierà su base giornaliera, settimanale o annuale, è quindi fondamentale che il database si ridimensioni automaticamente per risparmiare forti spese. Potrebbe essere inoltre necessario decidere se utilizzare un database appositamente creato o un uno generico. Se i tuoi requisiti riguardano un tipo specifico di dati, un database appositamente creato potrebbe fare al caso tuo, ma assicurati di non dover rinunciare alle altre caratteristiche di cui hai bisogno. Risulterebbe costoso e impegnerebbe molte risorse integrare queste caratteristiche in un secondo momento, a livello di applicazione. Inoltre, se le tue esigenze in termini di dati aumentano e vuoi espandere la funzionalità della tua applicazione, l'aggiunta di più database monouso o adatti all'uso creerà silos di dati e amplificherà i problemi di gestione dei dati. Devi anche prendere in considerazione altre funzionalità che potrebbero essere necessarie per il tuo specifico carico di lavoro, ad esempio requisiti di inserimento, di computazione push-down e dimensioni al limite.
Seleziona un servizio di database cloud a prova di futuro con funzionalità self-service che automatizzeranno tutta la gestione dei dati, in modo tale che coloro che lavorano con i dati (sviluppatori, analisti, tecnici dei dati, data scientist e DBA) possano sfruttarli al massimo e accelerare lo sviluppo delle applicazioni.
Scopri di più su Oracle Autonomous Transaction Processing Database, il servizio di database OLTP cloud. Provalo gratuitamente.