Oracle Workspace Manager

Hidden gems in Oracle - deel 2
17 apr 2015 - Shintaro Nagaoka

Het Oracle DBMS kent naast de standaard features nog een aantal uiterst bruikbare en handige opties en features, die echter niet of nauwelijks bekend zijn bij de meeste Oracle-gebruikers. In de serie 'Hidden Gems in Oracle'*)zetten we telkens één van deze verborgen pareltjes van Oracle in de schijnwerpers. In deel 2 is dat Workspace Manager, een feature van de Oracledatabase.

Introductie van Oracle Workspace Manager

Oracle Workspace Manager is een feature van de Oracle database. De mogelijkheden hiervan kunnen het beste geïllustreerd worden aan de hand van een aantal voorbeelden:

● Een ingenieursbureau krijgt een opdracht om het ontwerp te maken voor een nieuw verkeersknooppunt. Dit nieuwe ontwerp moet uiteraard aansluiten op de bestaande wegen, maar tegelijkertijd ook rekening houden met de gewaarborgde continuïteit van de doorstroming van het verkeer, diverse milieueisen en de bouw- en vorderingskosten. De medewerkers van dit bureau zullen verschillende modellen uitwerken, gebruikmakend van de beschikbare data en deze modellen met elkaar vergelijken. Gedurende dit proces kunnen er ook met het voortschrijdend inzicht nieuwe ideeën ontstaan, die leiden tot het editen van data binnen één specifiek model.
Sommige wijzigingen blijven voor de andere modellen onzichtbaar, maar enkele kunnen wel doorgevoerd worden in de overige modellen. Uiteindelijk kiest dit bureau voor een model op grond van de bepalende selectiecriteria. Een voorbeeld van wat typisch heet: ‘What-If’s. Heel kenmerkend is dat dit soort processing plaats vindt op grond van een combinatie met Oracle Spatial and Graph vanwege de geografische data die hierbij nodig is.

●● Een fabrikant moet data uit de omgeving van de lopende banden integreren met de data uit het specifieke industriële IT systeem (MES) en de gegevens uit de bovenliggende ERP-laag. Omdat de processen bij deze fabrikant 24x7 draaien, is er behoefte om de gegevens te kunnen ophalen terwijl de data uit de verschillende bronnen continu blijft binnenkomen voor de verdere bewerkingen, transformaties en data-aggregatie.

●●● Een organisatie heeft de behoefte om de database-inhoud op te vragen voor een specifieke zoals datum in het verleden. Daarvoor moeten de oude data en alle bijbehorende veranderingen continue worden opgeslagen. Zo’n ‘versioning’ in de database gaat gepaard met het verschijnsel van de ‘lang durende transacties’.

Bovengenoemde situaties zijn de use-cases voor Oracle Workspace Manager, een database feature sinds Oracle9i. Ondanks de betrekkelijke onbekendheid speelt Workspace Manager een cruciale rol bij een groot aantal klanten van Oracle.

In de meeste situaties maakt men gebruik van twee belangrijke aspecten van Workspace Manager, namelijk Versies in de database en Workspaces. Deze worden verder omringd door een paar ondersteunende features.

1. Versies in de database - Nadat een database tabel ‘versie enabled’ wordt gemaakt via Workspace Manager, kan men meerdere versies van deze tabel gaan definiëren op grond van wijziging van een record of meer. Het bijhouden van de versies geschiedt niet via de tabelduplicatie maar via het gebruik van view op de tabel die hiervoor een naamswijziging ondergaat met ‘_LT’ aan het eind. De INSTEAD OF-triggers zorgen voor de consistentie tussen de originele tabel en de benodigde views. De introductie van een nieuwe versie gaat gepaard met het gebruik van een zogenaamd SAVEPOINT. Deze savepoints zijn markeringen om de rollback tot dat punt te kunnen realiseren.

De gebruikers kunnen kiezen of de wijzigingen in een versie apart worden gehouden of dat deze de oude record mogen overschrijven. In het eerste geval kan men middels de extra timestamp kolomwaarde, de complete historie van de evolutie van de bewuste/betreffende tabel terugvinden.

Men kan daarnaast de geldigheid van de recordwaarde voor een bepaalde periode specificeren. Dit geschiedt via de uitbreiding van de originele table met de benodigde kolommen.

2. Workspaces - Naast de bovengenoemde versies binnen de database bestaat er vaak behoefte bij de ontwikkelaars en data-analisten om te kunnen werken met de geïsoleerde groep data uit een aantal database tabellen. Deze ‘afscheiding’ wordt gerealiseerd door Workspace. Oracle zorgt ervoor dat de data consistency in elke Workspace wordt gegarandeerd. Nieuwe wijzigingen binnen een specifieke workspace blijven onzichtbaar voor de buitenwereld totdat deze workspace samengevoegd wordt met de productiedata. Workspaces zijn niet een fysiek maar een virtueel verschijnsel. Dat houdt in dat men eenvoudig nieuwe workspaces kan uitrollen of ‘purgen’.

Workspaces kunnen een hiërarchische structuur krijgen via een ‘child’ workspace. Het is overigens ook mogelijk dat dit kind twee of meer ouders heeft. Diverse acties worden uitgevoerd op de workspaces waaronder CREATE, GOTO, REFRESH, ROLLBACK, MERGE en REMOVE.

Operaties en mogelijkheden met Workspace Manager.

Onderstaande operaties zijn mogelijk via specifieke stored procedures.

· Samenvoegen (MERGE) van de workspace.

   o Typisch geschiedt het tussen de ouder workspace en het kind. De nieuwe wijzigingen in de child workspace worden gekopieerd naar de ouder workspace waarna het kind wordt verwijderd.

· Rollback

   o Men kan alle wijzigingen van de rijen teniet doen of aanpassen tot aan het eerstvolgende SAVEPOINT

· Refresh

   o Hierbij worden de wijzigingen in de ouder workspace doorgevoerd tot in de kind workspace. Dit proces kan zowel geautomatiseerd als handmatig.

· Conflict detectie en -resolutie

· Verschillende privilegeniveaus

· Verschillende locking modellen

 

Installatie van Oracle Workspace Manager

In principe zit Oracle Workspace Manager standaard geïnstalleerd in elke Oracle database installatie. In geval van de Custom Install moet men als de gebruiker SYS aan de slag met het script OWMINST.PLB. In geval van twijfel kan men de volgende statuscheck uitvoeren:

SQL> select dbms_wm.getWorkspace from dual;
 

GETWORKSPACE

--------------------------------------------

LIVE

LIVE is de naam van de default workspace, zodat bij deze uitkomst Oracle Workspace Manager klaar is voor het gebruik.

Er zijn een paar eigenschappen die de inzet van Workspace Manager interessant maken:

· Transparantie voor de ontwikkelaars en data-analisten

   o De applicaties hoeven niet te weten dat zij te maken hebben met de aanwezigheid van structuren afkomstig van Workspace Manager

· Een library met de stored procedure commando’s om alle benodigde operaties uit te voeren.

   o Deze kunnen verder worden geïntegreerd via PL/SQL

   o De commando’s kunnen via de verschillende omgevingen worden uitgevoerd zoals Oracle Enterprise Manager.

· Aanzienlijk minder extra dataopslag in vergelijking met de traditionele aanpak

· Eenvoudige beheerstaken voor de DBA's inclusief het opruimen van de ontstane structuren

· Mogelijkheden om de gebruikelijke database operaties te kunnen handhaven

· Integratie met Advanced Queuing (AQ) voor het doorgeven van de Workspace eventsstatus

· Integratie met de overige Oracle technologieën, zoals

   o Oracle Spatial and Graph

   o Oracle OLAP

   o Oracle Partitioning

   o Virtual Private Database

   o Label Security

   o Oracle Multi-tenant

   o Materialized Views ( Full refresh )
 

Voordelen van Oracle Workspace Manager

Oracle Workspace Manager stelt je in staat om databasegegevens via verschillende modellen uit te werken en deze modellen met elkaar te vergelijken op een virtuele wijze. Dit houdt in dat er geen duplicatie van de databaserijen zal plaatsvinden. Daardoor zal de database minder snel opzwellen/uitgroeien als gevolg van de tijdelijke projecten.

Workspace Manager zorgt er verder ervoor dat elke logische dataverzameling binnen de database als eenheid kan worden behandeld. Dit maakt de kans op fouten op grond van verkeerde gegevens bij een studie/project minimaal.

Dankzij Workspace Manager wordt het beheer van de versies en het groeperen van gegevens veel makkelijker. Het risico dat men dan oneigenlijk waardevolle data weggooit is minimaal.

Conclusie

Workspace Manager biedt een aantal features die zeer welkom zijn in geval dat de wiskundige/analytische modellen worden uitgewerkt of met elkaar worden vergeleken via soms wisselende database gegevens.
Shintaro Nagaoka is bij Principal Product Sales Consultant bij Oracle. Met dank aan zijn collega Marti Koppelmans voor de deskundige review.
 
*) Naar een idee van Sandor Nieuwenhuijs.