Autonomous Data Warehouse Cloud: So geht's

Autonome Systeme werden in naher Zukunft in so gut wie jedem Bereich unserer modernen Gesellschaft zu finden sein. Auch die Oracle Datenbank Entwicklung trägt dieser Entwicklung Rechnung und liefert mit dem Autonomous Data Warehouse Cloud Service, auch kurz ADW, ein erstes Produkt aus der Serie der Oracle Autonomous Cloud Platform Services. Dabei zeichnet sich ADW durch folgende typischen Eigenschaften aus:

  • Self-Driving: Voll automatisches Patching, Upgrades, Backups,Tuning usw.
  • Self-Securing: Automatisierter Schutz vor externen Angriffen, Verschlüsselung, Sichere Verbindungen und Patches im Bereich Security
  • Self-Repairing: Automatisiertes Recovery im Fehlerfall
  • Elastic-Scaling: Online Skalierung von Rechenpower und Storage nach Bedarf ("Pay only what you consume")

ADW besteht aus dem neuesten Oracle Datenbank Release, Cloud Infrastruktur Automatisierungen und läuft auf Oracle Exadata Database Machine. ADW ist in den Rechenzentren Ashburn, Phoenix und Frankfurt verfügbar und ist spezialisiert auf Database Data Warehouse Workloads (die Minimalallokation liegt bei 1 TB Storage). Autonomous Service bedeutet übrigens auch, dass man keinerlei Zugriff auf die darunterliegende Infrastruktur bzw. Plattform haben muss bzw. haben kann, da sich Oracle um das Management rund um den Service kümmert.

Wie funktioniert nun das Provisionieren einer Instanz? Wie kann man Daten laden? In den folgenden Abschnitten wird gezeigt wie einfach und schnell eine Instanz zur Verfügung steht. Zusätzlich wird ein Überblick über die Cloud Konsole gegeben, die Anbindung mit SQL Developer bzw. Instant Client demonstriert und Daten mit Datapump geladen. Im letzten Abschnitt finden sich wie immer weitere ergänzende Links.

Die Provisionierung einer Instanz

Bevor man startet, ist wie bei allen Cloud Services entweder ein kostenloses Probeabonnement oder der Kauf einer Subscription notwendig. Erst danach kann eine autonome Data Warehouse Cloud-Bereitstellung erfolgen. Auf der Cloud Website https://cloud.oracle.com/en_US/datawarehouse findet man die entsprechenden Informationen zu Free Oracle Cloud Promotion, Pricing oder auch zu Videos und Demos.

Möchte man später mit dem SQL Developer oder dem Data Visualization Desktop arbeiten, lohnt sich zusätzlich der Download von aktuellen Versionen dieser Werkzeuge. Der Software Download findet sich im letzten Abschnitt. Alle Informationen zu Werkzeugen und Applikationen, die mit ADW zertifiziert sind, finden sich in ADWC Tools and Application Certification Sheet

Im ersten Schritt loggen wir uns über die Oracle Cloud Infrastructure (OCI) Konsole in einem gewünschten Datacenter ein. Im linken Menü sind alle wichtigen Cloud Menüpunkte aufgelistet.

Autonomous Data Warehouse Cloud ist unter dem Menüpunkt Database zu finden. Wir klicken auf Autonomous Data Warehouse und suchen uns aus der Liste der Compartments das uns zugeordnete Compartment (hier GastCompartment) aus. Zur Erinnerung: Ein Compartment ist eine Verwaltungseinheit in der Oracle Cloud Infrastructure damit man Ressourcen bündeln und diese über spezielle Gruppen einfach administrieren kann. Mehr zum Thema Compartments findet sich auch in unserem Blogeintrag zum Thema Erstellung einer 12c Datenbank in der Oracle Cloud Infrastructure - in vier Schritten zum Erfolg. Über den Button "Create Autonomous Database" erhält man das zugehörige Template zur Provisionierung. Nur wenige Einträge wie Datenbankname, Storage, Anzahl CPU oder Passwort für den ADMIN User müssen dazu eingetragen werden.
Hinweis: Storage und CPU können noch nachträglich geändert werden.

Kurze Zeit später steht eine fertige Instanz (hier ADW-US) mit Demotabellen zur Verfügung.

Möchte man mehr dazu erfahren, kann man auch das Oracle By Example Tutorial zum Thema Provisionierung verwenden.

Cloud Konsole

Mit einem Klick auf die angelegte Instanz ADW-US wird die Cloud Konsole sichtbar.

Folgende Funktionen stehen beispielsweise zur Verfügung:

  • "Service Console" zur Basis Administration
  • "Scale Up/Down" zum Online Skalieren von CPU und Storage (unabhängig voneinander)
  • "Admin Passwort" zum Ändern des Passworts des ADMIN Users
  • "Restore" zum Zurücksetzen der Datenbank
  • "Stop" zum Stoppen der Instanz
  • "Terminate" zum Stoppen und auch zum Löschen der Datenbank und aller zugehörigen Backups

Zusätzlich kann man auf dem unteren Teil des Screenshots erkennen, dass automatisch schon einige Backups durchgeführt wurden. Benötigt man eigene Backups, kann man diese mit "Create Manual Backup" initiieren. Dieser Schritt verlangt als Voraussetzung allerdings ein vorher angelegtes Bucket im Object Storage.

Um einen ersten Überblick über die Instanz ADW-US zu erhalten und um weitere Werkzeuge anzubinden, ist die Verwendung der Service Konsole notwendig. Nach dem Einloggen mit User ADMIN gelangt man zu einem Dashboard. Das Dashboard gibt einen Gesamtüberblick über die Verwendung von Storage in % und in GB, CPU Auslastung, über laufende Statements und die durchschnittliche Statement Laufzeiten. Detailliertere Informationen finden sich im Bereich "Activity". Kennt man Enterprise Manager Database Express Performance Hub kann man einige Parallelen erkennen. Im oberen Teil der Seite kann man den Bereich "Monitor" für Instanz Monitoring oder "Monitored SQL" für Statement Monitoring wählen. Die Aktivitäten können dabei entweder in einer Real Time Ansicht oder über eine bestimmte Zeitperiode angezeigt werden. Folgender Screenshot zeigt ein Beispiel aus dem Monitor Bereich.

Details zu einer Abfrage kann man über den Monitored SQL Bereich ansehen.

Der folgende Screenshot zeigt den dritten Menüpunkt "Administration". Hier kann die Wallet Datei für die Client Credentials geladen werden, die für die Anbindung von Werkzeugen Voraussetzung ist.

Da im nächsten Abschnitt die Verwendung mit SQL Developer ansteht, laden wir unter Angabe eines Passworts die Client Credentials Datei (hier: wallet_DBADW.zip) herunter. Sie beinhaltet SQL Net Dateien wie tnsnames.ora, sqlnet.ora usw. und Wallet bzw. Keystore Dateien.

SQL Developer

Der Connect zu ADW wird ab der SQL Developer Version 17.4 unterstützt. Um die volle Funktionalität bzgl. ADW nutzen zu können, installiert man sich am Besten die aktuellste Version von SQL Developer - in meinem Fall die Version 18.2. Der Download findet sich auf OTN. Folgende Informationen sind zum Verbindungsaufbau nötig: der Name der Verbindung, ein Username mit Passwort (hier ADMIN), der Connection Type (hier Cloud PDB), Lage der Client Credentials (hier: C:\Data\cloud\wallet_DBADW.zip) und den Namen des ausgewählten Service.
Hinweis: Nach der Provisionierung einer Instanz stehen zusätzlich drei Database Resource Manager Consumer Gruppen zur Verfügung: HIGH, MEDIUM und LOW. Die dazugehörigen Services enden jeweils auf _low, _medium und _high und können beim Connect ausgewählt werden.

Hinweis: Die HIGH Consumer Group ist für eine geringe "Concurrency" konfiguriert. Daher kann eine einzige Abfrage in dieser Consumer Group schon alle Ressourcen in der Datenbank nutzen. Oracle empfiehlt daher die Verwendung der MEDIUM Consumer Group, falls Concurrency Anforderungen existieren. Falls die MEDIUM Consumer Group dafür nicht ausreicht, kann man die LOW Consumer Group verwenden oder die Rechenkapazität erhöhen und die MEDIUM Consumer Group weiter nutzen.

Nachdem man sich verbunden hat, kann man wie gewohnt mit SQL Developer arbeiten. Aktuelle Einschränkungen in der Verwendung von ADW finden sich im Handbuch . Oracle By Example Tutorial zum Thema Connecting SQL Developer and Creating Tables gibt eine detaillierte Anleitung.

Instant Clients

Möchte man mit Instant Clients arbeiten, gibt es die Möglichkeit, die Instant Client Software von ADW aus der Service Konsole zu laden - allerdings nur für Linux x86-64. Alle anderen Plattformen für Instant Clients findet man wie immer auch auf OTN. Folgende Schritte sind zur Verwendung erforderlich:

  • Download des Instant Client Packages von OTN - alle Installationen benötigen das Basic oder Basic Lite Package.
  • Unzip des Packages in ein Verzeichnis
  • Setzen der Umgebungsvariablen TNS_ADMIN und PATH
  • Start der Applikation

Für Windows sind die Dateien instantclient-tools-windows.x64-12.2.0.1.0.zip und instantclient-basic-windows.x64-12.2.0.1.0.zip zu laden. Auf Windows muss die Variable PATH den Pfad auf die Instant Client Dateien und die Datei msvcr120.dll (Microsoft Visual Studio 2013) zeigen. In meinem Fall nutze ich dmsvcr120.dll aus meiner laufenden SQL Developer Umgebung. Die TNS_ADMIN Variable verweist auf das ausgepackte Verzeichnis unserer Client Credentials Datei. Die sqlnet.ora Datei muss noch mit der korrekten Wallet Directory Information ausgestattet werden wie in folgendem Beispiel zu sehen ist:

  
WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="c:\data\cloud\wallet_DBADW")))
SSL_SERVER_DN_MATCH=yes

Die Verwendung von SQL*Plus sieht dann folgendermaßen aus:

set tns_admin=c:\data\cloud\wallet_DBADW
set path=%path%;c:\data\instantclient_12_2\instantclient_12_2;C:\Data\sqldeveloper_182\sqldeveloper\jdk\jre\bin
c:\Data\instantclient12_2\instantclient_12_2>sqlplus /nolog

SQL*Plus: Release 12.2.0.1.0 Production on Tue Jul 10 14:25:37 2018

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

SQL> connect admin@DBADW_HIGH
Enter password:
Connected.
SQL>

Ab Oracle Database 12.2 lässt sich sogar Data Pump in der Instant Client Version verwenden. Das Vorgehen ähnelt dem gerade beschriebenen Prozedere.



Daten Laden mit Data Pump

Mit ADW besteht die Möglichkeit einen Data Pump Import direkt aus dem Object Storage vorzunehmen. Dazu sind folgende Schritte nötig:

  1. Upload von Datapump Export DMP Dateien in den Object Storage in einem eigen dafür erzeugten Bucket (hier BUCKET_US)
  2. Anlegen von Database Credentials
  3. Verwenden des SQL Developer Import Wizards oder des Data Pump Instant Clients

Zuerst erfolgt ein Upload der DMP Dateien in den Object Storage. Dazu erzeugen wir im Compartment GastCompartment das Bucket BUCKET_US. Ein Bucket ist dabei ein logischer Container, in dem Objekte gespeichert werden können. Im nächsten Schritt wird sichergestellt, dass die Kommunikation mit ADW gesichert ist und nur autorisierte Daten in ADW geladen werden. Dazu werden die Datenbank Credentials mit dem Package DBMS_CLOUD angelegt und als Default festgelegt. Das verwendete Passwort lässt sich in der OCI Konsole oben rechts unter "User Settings" im Bereich Auth Tokens mit Generate Token erzeugen. Die Database Credentials lauten in meinem Fall CREDENTIAL_US1. Verbinden wir uns einfach mit dem SQL*Plus Instant Client und setzen dazu folgende Befehle ab.

SQL> set scan off
SQL> begin DBMS_CLOUD.create_credential(credential_name => 'CREDENTIAL_US1',
                                        username => 'ulrike.schwinn@oracle.com',
                                        password => 'hier Swift Passwort von Token AuTH nutzen');

end;
/
SQL> alter database property set default_credential = 'ADMIN.CREDENTIAL_US1';

SQL> select owner, credential_name, username, enabled, comments from dba_credentials;

OWNER      CREDENTIAL_NAME USERNAME                  ENABL
---------- --------------- ------------------------- -----
COMMENTS
------------------------------------------------------------
ADMIN      CREDENTIAL_US1  ulrike.schwinn@oracle.com TRUE
{"comments":"Created via DBMS_CLOUD.create_credential"}

Hinweis: Da das Passwort Sonderzeichen wie Ampersand (&) enthalten kann, verwenden wir "set scan off" oder "set define off". Auf diese Weise ersetzt SQL*Plus keine Substitutionsvariablen wie Ampersand.

Der zu verwendende Name des Users leitet sich daraus ab, ob man einen lokalen OCI User oder einen federated User verwendet. Im Beispiel oben habe ich einen lokalen OCI User verwendet. Nutzt man einen federated User muss der Username vollqualifiziert angegeben werden - also zum Beispiel oracleidentitycloudservice/ulrike.schwinn@oracle.com. Das Auth Token wird dann ebenfalls rechts oben im Menüpunkt unter "User Settings" erzeugt. Folgender Screenshot zeigt beispielsweise einen federated User. Mehr zum Usermanagement findet sich auch im Kapitel zu Handbuch unter User Provisioning with Oracle Identity Cloud Service.

Die Credential werden mit DBMS_CLOUD.CREATE_CREDENTIAL wie folgt bekannt gegeben.

execute dbms_cloud.drop_credential('CREDENTIAL_US1');
begin DBMS_CLOUD.create_credential(credential_name => 'CREDENTIAL_US1',
                                          username => 'Username',
                                          password => 'AUth Token Passwort');

end;
/
alter database property set default_credential = 'ADMIN.CREDENTIAL_US1';

Und schon können wir mit dem Laden beginnen. Dazu verwenden wir SQL Developer Data Pump Import Wizard und geben die geforderten Informationen an. Die File URL der hochgeladenen DMP Datei hat dabei immer die folgende Form:
https://swiftobjectstorage.bezeichnung_der_region-1.oraclecloud.com/v1/tenant_name/bucket_name/dmp_datei

Beispiel:https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/tenantxyz/BUCKET_US/sample_expdp_sh_sales.dmp

Möchte man vorab die die Korrektheit der URI testen, kann man dies folgendermassen überprüfen:

SQL> select object_name, bytes 
     from dbms_cloud.list_objects('CREDENTIAL_US1','https://swiftobjectstorage.eu-frankfurt-1.oraclecloud.com/v1/oraseemeadesandbox/TEST/');

OBJECT_NAME                                   BYTES
---------------------------------------- ----------
CHANNELS_EXT.txt                                102

Das Laden mit dem Data Pump Wizard wird im folgenden Screenshot gezeigt.

Ganz ähnlich funktioniert der Data Pump Import mit der Instant Client Variante. Hier ist es natürlich die Verwendung der richtigen Schlüsselwörter erforderlich. Folgendes Beispiel demonstriert die Verwendung.

impdp admin@dbadw_high directory=data_pump_dir dumpfile=default_credential:File_URL logfile=import.log

Da ADW derzeit noch nicht alle Arten von Datenbank Objekten und Techniken unterstützt, empfiehlt sich die folgende Nutzung von Data Pump:

impdp admin@adwc_high directory=data_pump_dir dumpfile=default_credential:File_URL 
   partition_options=merge transform=segment_attributes:n exclude=index, cluster,indextype, materialized_view, materialized_view_log, materialized_zonemap, db_link

Mehr dazu findet sich auch im Handbuch im Kapitel Importing Data Using Oracle Data Pump (Latest Version for Linux x86-64)


Data Visualization Desktop (DV)

Ein einfache Out-of-the-Box Visualisierung der Daten im ADW liefert der Data Visualization Desktop. In Verbindung mit Oracle Autonomous Data Warehouse Cloud ist die Nutzung Data Visualization Desktop für beliebig viele Nutzer inkludiert. Der Software Download ist auf OTN zu finden. Um sich mit DV an ADW oder ATP anzumelden, muss im Anmeldescreen nur die Zip Datei mit den Credentials ausgewählt werden. Danach lässt sich der Username und das Passwort und der entsprechende Servicename wählen. Nach dem Start sind nur noch die Verbindungsdaten aus der tnsnamens.ora zu übertragen und schon ist man mit ADW verbunden. Eine genaue Beschreibung dazu findet man im Data Visualization Desktop Handbuch.


Out-of-the-box unterstützt DV den Datenanalysten mit umfangreichen und mächtigen Möglichkeiten der Visualiserung - ohne Programmieraufwand. Wer jemals mit Excel oder ähnlichen Werkzeugen gearbeitet hat, wird in kurzer Zeit hochwertige grafische Analysen und Auswertungen erstellen können. Ein kleines Beispiel findet sich im folgenden Screenshot.


Ein Blick hinter die Kulissen

Soweit so gut. Ist man technisch versiert, kann man natürlich noch weitere zusätzliche Informationen erhalten. So kann man mit einfachen Abfragen erkennen, dass der ADMIN User keine vollständigen DBA Rechte besitzt sondern PDB Administrator Rechte. Insgesamt 25 Rollen sind ihm zugeteilt. Interessant ist auch die neue Rolle DWROLE, die speziell für Data Warehouse User geeignet ist.

SQL> select privilege from role_Sys_privs where role='DWROLE';

PRIVILEGE
----------------------------------------
CREATE TRIGGER
CREATE TYPE
CREATE SEQUENCE
ALTER SESSION
CREATE SESSION
CREATE ANALYTIC VIEW
CREATE ATTRIBUTE DIMENSION
CREATE SYNONYM
CREATE TABLE
CREATE HIERARCHY
CREATE PROCEDURE
CREATE VIEW
CREATE MINING MODEL
CREATE JOB

14 rows selected.

Der Tablespace DATA ist verschlüsselt und HCC komprimiert. Die von mir geladenen Tabellen enthalten zudem aktuelle Statistiken. In der PDB gilt übrigens das Lockdown Profil DWCS um Manipulationen am Datenbank Setup zu verhindern bzw. gewisse Kommandos zu unterbinden. So sind die meisten ALTER SYSTEM Kommandos nicht erlaubt. Versucht man trotzdem mit solchen Kommandos zu arbeiten, erhält man den entsprechenden Fehler, wie folgendes Beispiel zeigt.

alter system set parallel_min_degree=10;
ORA-01031: insufficient privileges
01031. 00000 -  "insufficient privileges"

Es ist natürlich möglich NLS Parameter zu setzen oder auch Sessions zu killen. Ansonsten sollen und können die meisten eingestellten Parameter nicht geändert werden. Betrachtet man einige Initialisierungsparameter kann man erkennen, dass beispielsweise automatische Parallelisierung eingeschaltet ist und die Längenbegrenzung für VARCHAR2 bei 32767 Bytes liegt (MAX_STRING_SIZE=EXTENDED).

Die Verwendung wird über die einzelnen Database Resource Manager Services mit Suffix _low, _medium und _high gesteuert. Der in Oracle Database 18c neu eingeführte Parameter OPTIMIZER_IGNORE_HINTS hat den Wert TRUE, so dass in Statements eingebettete Hints keine Verwendung finden.

Wenn man neugierig ist, kann man natürlich noch weitere Informationen recherchieren, was aber zum Betreiben von ADW auf keinen Fall erforderlich ist. Vollständig ausreichend ist die Lektüre des Handbuchs, dessen Kapitel nach Aufgabenfelder gegliedert sind. Besonders im Appendix finden erfahrene Oracle Datenbankbenutzer Informationen zu den Einstellungen und Restriktionen im Bereich Datenbank Deatures, Initialisierungsparameter, SQL Kommnados usw.

Lizenzierung

Informationen zur Lizenzierung des Cloud Services findet sich auf der Oracle Autonomous Datawarehouse Cloud Seite. Die Kosten lassen sich auch einfach abschätzen mit dem Cloud Cost Estimator.



Weitere Informationen

 

Zurück zur Community-Seite
 

Visit the Oracle Blog

 

Contact Us

Oracle

Integrated Cloud Applications & Platform Services