# Essbase

Essbase è un sistema di gestione di database multidimensionale (MDBMS) che fornisce una piattaforma di database multidimensionale su cui costruire applicazioni analitiche.
Essbase, il cui nome deriva da "database esteso per fogli di calcolo", è nato come prodotto di Arbor Software, che si è fusa in Hyperion Software nel 1998. Oracle Corporation ha acquisito Hyperion Solutions Corporation nel 2007, dal 2009 Oracle ha commercializzato Essbase come "Oracle Essbase" (un prodotto locale) e, più recentemente, Essbase viene offerto come parte di Oracle Analytics Cloud. Fino alla fine del 2005 IBM commercializzava anche una versione OEM di Essbase come DB2 OLAP Server.

## Descrizione

Il ricercatore di database Edgar F. Codd ha coniato il termine "elaborazione analitica on-line" (OLAP) in un white paper che stabilisce dodici regole per i sistemi analitici (un'allusione alla sua precedente serie di dodici regole che definiscono il modello relazionale ). Questo white paper, pubblicato da Computerworld, era in qualche modo esplicito nel suo riferimento alle funzionalità di Essbase, e quando in seguito fu scoperto che Codd era stato sponsorizzato da Arbor Software, Computerworld ritirò il documento.
A differenza della "elaborazione delle transazioni online" (OLTP), OLAP definisce una tecnologia di database ottimizzata per l'elaborazione di query di alto livello anziché delle transazioni. I risultati di questo orientamento sono stati che i database multidimensionali orientavano i loro requisiti di prestazione attorno a una serie diversa di parametri di riferimento (Analytic Performance Benchmark, APB-1) rispetto a quello di RDBMS (Transaction Processing Performance Council (TPC)).
Hyperion ha ribattezzato molti dei suoi prodotti nel 2005, dando a Essbase un nome ufficiale di Hyperion System 9 BI + Analytic Services, ma il nuovo nome è stato ampiamente ignorato dai professionisti. Il marchio Essbase è stato in seguito restituito al nome ufficiale del prodotto per scopi di marketing, ma il software del server portava ancora il titolo "Analytic Services" fino a quando non è stato incorporato nel prodotto Oracle business intelligence Foundation Suite (BIFS).
Nell'agosto 2005, la rivista Information Age ha nominato Essbase come una delle 10 innovazioni tecnologiche più influenti degli ultimi 10 anni, insieme a Netscape, BlackBerry, Google, virtualizzazione, Voice Over IP (VOIP), Linux, XML, il Processore Pentium e ADSL. L'editore Kenny MacIver ha dichiarato: "Hyperion Essbase è stata la tecnologia di database multidimensionale che ha messo l'elaborazione analitica online nel mondo della business intelligence. Ha stimolato la creazione di decine di prodotti OLAP rivali e miliardi di cubi OLAP".
Sebbene Essbase è stato classificato come database multidimensionale generico, è stato originariamente sviluppato per risolvere i problemi di scalabilità associati a fogli di calcolo come Lotus 1-2-3 e Microsoft Excel. In effetti, il brevetto che copre (ora scaduto) Essbase utilizza fogli di calcolo come esempio motivante per illustrare la necessità di un tale sistema.
In questo contesto, "multidimensionale" si riferisce alla rappresentazione di dati finanziari in formato foglio elettronico. Un tipico foglio di calcolo può visualizzare intervalli di tempo lungo le intestazioni di colonna e i nomi degli account nelle intestazioni di riga. Per esempio:
| | Gennaio | Febbraio | Marzo | Totale |
| Quantità | 1000 | 2000 | 3000 | 6000 |
| Ricavi | € 100 | € 200 | € 300 | € 600 |
| Costi | € 80 | € 160 | € 240 | € 480 |
| Margine | € 20 | € 40 | € 60 | € 120 |
Se un utente desidera suddividere questi valori per regione, ad esempio, ciò comporta in genere la duplicazione di questa tabella su più fogli di calcolo:
Nord :
| | Gennaio | Febbraio | Marzo | Totale |
| Quantità | 240 | 1890 | 50 | 2180 |
| Ricavi | $ 24 | $ 189 | $ 5 | $ 218, |
| Costi | $ 20 | $ 150 | $ 3 | $ 173 |
| Margine | $ 4 | $ 39 | $ 2 | $ 45 |
Sud :
| | Gennaio | Febbraio | Marzo | Totale |
| Quantità | 760 | 110 | 2950 | 3820 |
| Ricavi | € 76 | € 11 | € 295 | € 382 |
| Costi | € 60 | € 10 | € 237 | € 307 |
| Margine | € 16 | € 1 | € 58 | € il 75 |
Regione totale :
| | Gennaio | Febbraio | Marzo | Totale |
| Quantità | 1000 | 2000 | 3000 | 6000 |
| Ricavi | € 100 | € 200 | € 300 | € 600 |
| Costi | € l'80 | € 160 | € 240 | € 480 |
| Margine | € 20 | € il 40 | € il 60 | € 120 |
Una rappresentazione alternativa di questa struttura richiederebbe una griglia di foglio di calcolo tridimensionale, dando origine all'idea che "Tempo", "Conto" e "Regione" sono dimensioni di analisi. Man mano che vengono aggiunte ulteriori dimensioni al sistema, diventa molto difficile mantenere fogli di calcolo che rappresentano correttamente i valori multidimensionali. Database multidimensionali come Essbase forniscono un archivio dati per valori che esistono, almeno concettualmente, in un "ipercubo" multidimensionale.
Con l'aumentare del numero e delle dimensioni delle dimensioni, gli sviluppatori di database multidimensionali affrontano sempre più problemi tecnici nella rappresentazione fisica dei dati. Supponiamo che l'esempio sopra sia stato esteso per aggiungere una dimensione di analisi "Cliente" e "Prodotto":
| Dimensione | Numero di elementi per dimensione |
| Conti | 4 |
| Tempo | 4 |
| Regione | 3 |
| Cliente | 10.000 |
| Prodotto | 5.000 |
Se il database multidimensionale riservasse spazio di archiviazione per ogni possibile valore, sarebbe necessario memorizzare 2.400.000.000 (4 × 4 × 3 × 10.000 × 5.000) celle. Se il software mappa ogni cella come un valore in virgola mobile a 64 bit, ciò equivale a un requisito di memoria di almeno 17 gigabyte (esattamente 19.2 GB). Nella realtà ovviamente, il numero di combinazioni di "Cliente" e "Prodotto" che contengono valori significativi sarà un piccolo sottoinsieme dello spazio totale. Questa proprietà degli spazi multidimensionali viene definita scarsità.
I sistemi OLAP generalmente forniscono livelli multipli di dettaglio all'interno di ciascuna dimensione disponendo i membri di ciascuna dimensione in una o più gerarchie . Una dimensione temporale, ad esempio, può essere rappresentata come una gerarchia che inizia con "Tempo totale" e si suddivide in più anni, quindi trimestri, quindi mesi. Una dimensione Conti può iniziare con "Margine", che si divide in "Ricavi" e "Costi" e così via.
Nell'esempio sopra, se "Prodotto" rappresenta SKU di singoli prodotti, gli analisti potrebbero anche voler creare report utilizzando aggregazioni come "Gruppo di prodotti", "Famiglia di prodotti", "Linea di prodotti", ecc. Allo stesso modo, per "Cliente", aggregazioni naturali possono organizzare i clienti in base alla posizione geografica o al settore.
Il numero di valori aggregati impliciti da un insieme di dati di input può diventare sorprendentemente grande. Se le dimensioni del cliente e del prodotto sono ciascuna in profondità sei "generazioni", allora 36 (6 × 6) valori aggregati sono influenzati da un singolo punto dati. Ne consegue che se tutti questi valori aggregati devono essere memorizzati, la quantità di spazio richiesta è proporzionale al prodotto della profondità di tutte le dimensioni di aggregazione. Per database di grandi dimensioni, ciò può far sì che i requisiti di archiviazione effettivi siano centinaia di volte le dimensioni dei dati da aggregare.

## BSO - Archiviazione a blocchi (Essbase Analytics)

Dalla versione 7, Essbase ha supportato due "opzioni di archiviazione" che sfruttano la sparsità per ridurre al minimo la quantità di memoria fisica e lo spazio su disco necessari per rappresentare grandi spazi multidimensionali. Il brevetto di Essbase descrive il metodo originale, che mirava a ridurre la quantità di memoria fisica richiesta senza aumentare il tempo necessario per cercare valori strettamente correlati. Con l'introduzione di opzioni di archiviazione alternative, i materiali di marketing hanno chiamato questa opzione di archiviazione a blocchi ( Essbase BSO ), in seguito denominata Essbase Analytics .
In breve, Essbase richiede allo sviluppatore di contrassegnare le dimensioni come "denso" o "sparse". Il sistema quindi organizza i dati per rappresentare l'ipercubo in "blocchi", in cui ogni blocco comprende un array multidimensionale costituito da dimensioni "dense" e lo spazio viene allocato per ogni potenziale cella in quel blocco. La sparsità viene sfruttata perché il sistema crea blocchi solo quando richiesto. Nell'esempio precedente, supponiamo che lo sviluppatore abbia definito "Account" e "Tempo" come "denso", e "Regione", "Cliente" e "Prodotto" come "sparso". Se ci sono, diciamo, 12.000 combinazioni di Regione, Cliente e Prodotto che contengono dati, allora verranno creati solo 12.000 blocchi, ognuno dei quali è abbastanza grande da contenere ogni possibile combinazione di Conti e Tempo. Il numero di celle memorizzate è quindi 192000 (4 × 4 × 12000), che richiede meno di 2 gigabyte di memoria (precisamente 1.536 MB), oltre spazio necessario alla creazione di un indice utilizzato per cercare i blocchi appropriati.
Poiché il database rende del tutto trasparente questa implementazione dagli strumenti front-end (ovvero, un report che tenta di recuperare dati da celle inesistenti vede semplicemente valori "null"), l'ipercubo completo può essere navigato in modo naturale ed è possibile caricare valori in qualsiasi cellula in modo interattivo.

### Motore di calcolo

Gli utenti possono specificare i calcoli in Essbase BSO come:
* l'aggregazione di valori attraverso gerarchie dimensionali;
* calcoli memorizzati sui membri dimensione;
* membri dimensione "calcolati dinamicamente"; o
* "script di calcolo" procedurali che agiscono sui valori memorizzati nel database.
Il primo metodo (aggregazione dimensionale) avviene implicitamente contrassegnando i rami della gerarchia da sommare, sottrarre, moltiplicare, dividere o ignorare. Inoltre, il risultato di questa aggregazione può essere archiviato nel database o calcolato dinamicamente su richiesta: i membri devono essere contrassegnati come "Memorizzato" o "Calcolo dinamico". per specificare quale metodo deve essere utilizzato.
Il secondo metodo (calcoli memorizzati) utilizza una formula associata a ciascun membro della dimensione calcolato e quando Essbase calcola quel membro, il risultato viene archiviato sul membro stesso proprio come un valore di dati.
Il terzo metodo (calcolo dinamico) è specificato esattamente nello stesso formato del metodo precedente, ma calcola un risultato quando un utente accede a un valore indirizzato da quel membro; il sistema non memorizza tali valori calcolati.
Il quarto metodo (script di calcolo) utilizza un linguaggio di programmazione procedurale specifico per il motore di calcolo Essbase. Questo tipo di calcolo può agire su qualsiasi valore di dati nell'ipercubo e può quindi eseguire calcoli che non possono essere espressi come una semplice formula.
È inoltre necessario eseguire uno script di calcolo per attivare il calcolo di valori aggregati o calcoli memorizzati come descritto sopra: uno script di calcolo preimpostato (chiamato "calcolo predefinito") può essere utilizzato per eseguire questo tipo di calcolo.

## ASO - Modalità di archiviazione aggregato (Enterprise Analytics)

Sebbene l'archiviazione a blocchi minimizzi efficacemente i requisiti di archiviazione senza influire sui tempi di recupero, presenta limitazioni nel trattamento dei dati aggregati in applicazioni di grandi dimensioni, motivando l'introduzione di un secondo motore di archiviazione, denominato Aggregate Storage Option ( Essbase ASO ) o, più recentemente, Enterprise Analytics . Questa opzione di archiviazione rende il database molto più simile a un database OLAP, come SQL Server Analysis Services.
A seguito di un caricamento di dati, Essbase ASO non memorizza alcun valore aggregato, ma li calcola su richiesta. Per i database di grandi dimensioni, dove il tempo necessario per generare questi valori può diventare scomodo, il database può materializzare una o più "viste" aggregate, costituite da un livello aggregato da ciascuna dimensione (ad esempio, il database può calcolare tutte le combinazioni della quinta generazione del prodotto con la terza generazione del cliente) e queste viste vengono quindi utilizzate per generare altri valori aggregati ove possibile. Questo processo può essere parzialmente automatizzato, in cui l'amministratore specifica la quantità di spazio su disco che può essere utilizzata e il database genera visualizzazioni in base all'utilizzo effettivo.
Questo approccio presenta un grave svantaggio in quanto il cubo non può essere trattato a fini di calcolo come un singolo ipercubo di grandi dimensioni, poiché i valori aggregati non possono essere controllati direttamente, pertanto la riscrittura dagli strumenti front-end è limitata e calcoli complessi sono possibili solo con espressioni MDX.

### Motore di calcolo

Essbase ASO può specificare calcoli come:
* l'aggregazione di valori attraverso gerarchie dimensionali; o
* membri di una dimensione calcolati dinamicamente.
Il primo metodo (aggregazione dimensionale) sostanzialmente duplica l'algoritmo utilizzato da Essbase BSO.
Il secondo metodo (calcoli dinamici) valuta le espressioni MDX rispetto ai membri della dimensione.

## Interfaccia utente

La maggior parte degli utenti di Essbase lavora con i dati di Essbase tramite un componente aggiuntivo per Microsoft Excel (precedentemente anche Lotus 1-2-3 ) noto come Smart View. Il componente aggiuntivo Essbase è un plug-in standard per Microsoft Excel e crea un menu aggiuntivo che può essere utilizzato per connettersi ai database Essbase, recuperare o scrivere dati e navigare nelle dimensioni del cubo ("Zoom avanti", "Pivot", ecc. ).
Nel 2005, Hyperion ha iniziato a offrire uno strumento di visualizzazione chiamato Hyperion Visual Explorer (HVE) che era un OEM di Tableau Software. Tableau Software è nato alla Università di Stanford come progetto di ricerca sponsorizzato dal governo per studiare nuovi modi in cui gli utenti possono interagire con database relazionali e OLAP . Hyperion e Tableau hanno costruito insieme fondamentalmente le prime versioni del software Tableau, progettato specificamente per i database multidimensionali (OLAP). Oracle ha rapidamente risolto l'accordo OEM con Tableau Software subito dopo l'acquisizione di Hyperion nel 2007.
La maggior parte degli altri noti fornitori di analisi fornisce applicazioni rivolte agli utenti con supporto per Essbase:
* Hyperion Analyzer (aka Hyperion System 9 BI + Web Analysis)
* Hyperion Reports (aka Hyperion System 9 BI + Financial Reporting)
* Hyperion Enterprise Reporting
* Hyperion Business Intelligence (alias Hyperion System 9 BI + Interactive Reporting e Brio Interactive Reporting)
* Hyperion SQR (aka Hyperion System 9 BI + Production Reporting)
* Alphablox
* Arcplan dynaSight (alias Arcplan Enterprise)
* Oracle Business Intelligence Suite Enterprise Edition (aka OBIEE, Siebel Analytics)
* Dodeca Spreadsheet Management System
* Add-In Dodeca Excel per Essbase
* Reporting Suite
* EV Analytics
Le modalità precedenti di Hyperion hanno acquisito nuovi nomi come indicato di seguito:
| Le modalità precedenti di Hyperion | Offerte Hyperion System 9 BI + |
| Hyperion Essbase ASO | Enterprise Analytics |
| Hyperion Essbase BSO | Essbase Analytics |
| Hyperion Analyzer | Web Analysis |
| Hyperion Reports | Financial Reporting |
| Hyperion Intelligence | Interactive Reporting |
| Hyperion SQR | Production Reporting |
| Hyperion Metrics Builder | Enterprise Metrics |
Le API sono disponibili per C, Visual Basic e Java e il supporto di script incorporato è disponibile per Perl . Il protocollo standardizzato XML for Analysis può eseguire query sulle origini dati Essbase utilizzando il linguaggio MDX.
Nel 2007, Oracle Corporation ha iniziato a raggruppare gli strumenti Hyperion BI in Oracle Business Intelligence Enterprise Edition Plus.

## Interfaccia amministrativa

Numerose interfacce standard possono amministrare le applicazioni Essbase:
* ESSCMD, l'interfaccia originale della riga di comando per i comandi di amministrazione;
* MaxL, un "linguaggio di accesso al database multidimensionale" che fornisce sia un superset di comandi ESSCMD, ma con una sintassi più simile a SQL, oltre al supporto per le query MDX;
* Essbase Application Manager, il client di amministrazione della GUI originale di Microsoft Windows, compatibile con le versioni di Essbase precedenti alla 7.0;
* Essbase Administration Services, in seguito ribattezzato Analytic Administration Services, e poi di nuovo in 'Essbase Administration Services' in v. 9.3.1, il client di amministrazione della GUI attualmente supportato; e
* Essbase Integration Server per mantenere la struttura e il contenuto dei database Essbase basati su modelli di dati derivati da origini dati relazionali o basate su file.

## Offerta cloud

Dal 2017, Essbase Cloud è disponibile come parte di Oracle Analytics Cloud (OAC), una suite di soluzioni di analisi che include report e dashboard, visualizzazione dei dati, preparazione dei dati in linea e dispositivi mobili.

## Concorrenti

Esistono diversi importanti concorrenti tra gli OLAP, i prodotti di analisi a quello di Essbase (HOLAP / MOLAP) sul mercato, tra cui SAP BPC, Microsoft SQL Server Microsoft Analysis Services, (MOLAP, HOLAP, ROLAP), IBM Cognos (ROLAP), IBM / Cognos / Applix TM1 (MOLAP), Oracle OLAP (ROLAP / MOLAP), MicroStrategy (ROLAP) ed EXASolution (ROLAP).
Si noti inoltre che tra i concorrenti di cui sopra, incluso Essbase, tutti utilizzano fonti dati relazionali (Microsoft SQL Server, Oracle, IBM DB / 2, TeraData, Access, ecc.) e non relazionali (Excel, file di testo, file CSV, ecc. .) per alimentare i cubi (fatti e dati dimensionali), ad eccezione di Oracle OLAP che può utilizzare solo la fonte dati relazionale Oracle.

## Esportazione e / o migrazione del prodotto di Essbase

A partire dal 2009 è possibile esportare i cubi Essbase in altri formati:
* CubePort, un'applicazione di conversione commerciale, converte i cubi Essbase nel prodotto Microsoft SQL Server Analysis Services. Questo prodotto esegue una traduzione da oggetto a oggetto che costituisce un cubo Essbase, tra cui: struttura, formule dei membri, script di calcolo, caricamento dei dati (regole di caricamento), script di report per query MDX, variabili di sostituzione e modello di sicurezza. Può estrarre da qualsiasi versione della piattaforma di Essbase, incluso Oracle / Hyperion Essbase su Windows, Unix, AIX, HP UX, Solaris, IBM DB / 2 OLAP o AS / 400 Showcase Essbase.
* OlapUnderground Outline Extractor esegue un'esportazione pura e rudimentale del contorno, sebbene non crei direttamente nuovi oggetti. L'output è un semplice file di testo che può essere indirizzato indirettamente in altri prodotti OLAP, tra gli altri usi, come la sincronizzazione dei contorni. L'Outline Extractor è ora gestito, supportato e distribuito gratuitamente da Applied OLAP, Inc.