Artikel-Schlagworte: „Oracle“

Online Template Builder im BIP

Mittwoch, 23. Dezember 2009

Auf der letzten DOAG konnte man bereits erste Blicke auf die neue BI Suite EE 11g, sowie den ebenso heiß erwarteten BI Pusblisher 11g werfen. Leider ist der offizielle Erscheinungstermin der neuen Releases noch etwas wage und wurde mit “im Laufe der nächsten 12 Monate” angegeben. Eines der wirklich hübschen neuen Features im BI Publisher ist der online Template Builder. Er soll eine Alternative für das Word Plugin sein,  und die Reportgestaltung direkt im Browser ermöglichen. (weiterlesen …)

Aktueller Benutzer im BI Publisher

Donnerstag, 17. September 2009

Seit einigen Tagen beschäftige ich mich nebenbei ein wenig mit dem Oracle BI Publisher. Die ersten Versuche aus des Sicht des Administrators gelten natürlich zunächst der Sicherheit. Einen zentralen Reportingserver mit gespeicherten Zugängen zu produktiven Datenquellen sollte man nicht leichtfertig aufbauen. Während die Umstellung der Authentifizierung auf LDAP einwandfrei funktioniert hat, bin ich bei der Einschränkung der Daten auf größere Probleme gestoßen. Wie kann ich dem Benutzer – abhängig von seinen applikationsseitigen Rechten – nur gefilterte Daten zur Verfügung stellen?

Aus der vorherigen Frage ergab sich schnell die nächste… Welcher Benutzer ist eigentlich gerade am BI Publisher angemeldet?

Um es kurz zu machen: Die Dokumentation half hier nicht weiter, allerdings wurde ich im OTN Forum fündig. Die Bind Variable :x do_user_name steht bei der Definition der Datenquelle in den SQL Statements zur Verfügung. Somit können die Daten über den Benutzernamen eingeschränkt werden.

SELECT  *
FROM    my_secret_table
WHERE   username = :x do_user_name;

Es wäre spannend zu wissen, ob weitere :x do… Variablen existieren die z.B. die Gruppenzugehörigkeigt oder ähnliches erkennen lassen.

Jobketten in der Datenbank

Mittwoch, 4. März 2009

jobketteSeit Oracle 10g Release 2 unterstützt der interne Taskmanager der Datenbank, der sogenannte Scheduler auch komplexe Jobketten. Dies ermöglicht parallele Ausführung von Aufgaben und bedingte Ausführung von Jobs ohne Hilfsmittel wir Cronjobs oder externe Tools. Die folgende Grafik zeigt eine mögliche Jobkette die wir in der Datenbank abbilden werden.

(weiterlesen …)

Column based Virtual Private Database

Donnerstag, 5. Februar 2009

In Zeiten des Datendiebstahls und der Bespitzelung sollten Anwendungsentwickler besonderen Wert auf die Sicherheit der gespeicherten Daten legen. Gerade personenbezogene Daten und Passwörter bedürfen einem besonderen Schutz auf aller tiefster Ebene: der Datenbank. Oracle stellt einen Mechanismus genannt Virtual Private Database (VPD) zur Verfügung den ich hier etwas näher erläutern möchte.

(weiterlesen …)

Heterogene Services mit Oracle 64Bit

Dienstag, 3. Februar 2009

Bereits 2005 habe ich bei tutorials.de einen Beitrag zum Thema Datenbanklinks zu Nicht-Oracle Datenbanken über Heterogene Services geschrieben. Bei dem Versuch das Tutorial von damals wieder nachzustellen scheiterten wir leider kläglich. Grund war der fehlende Agent hsodbc.exe der sich nirgends im Softwareverzeichnis, also im ORACLE_HOME finden
ließ.

hs_oracle

Eine längere Recherche brachte uns die Erkenntnis, dass Heterogene Services in der 64Bit Version von Oracle wohl nicht unterstützt werden. Ohne einen tieferen Sinn hinter der Problematik zu suchen musste eine Lösung gefunden werden.

(weiterlesen …)

Oracle Expression Filter

Dienstag, 27. Januar 2009

Was nützt ein riesiger und strukturierter Datenbestand, wenn man nicht flexibel aber dennoch effektiv darin suchen kann? Als eines von zahlreichen positiven Beispielen sei hier die Autobörse http://www.autoscout24.de/ genannt. Dem Benutzer stehen Suchkriterien von A bis Z, quasi der Automarke bis zum Zulassungsdatum, zur Eingrenzung seiner Suche zur Verfügung. Seine Wunschkriterien kann jeder Benutzer sogar speichern und bei neuen Einträgen wird er automatisch informiert.
Mit steigender Anzahl von Suchkriterien wächst die Komplexität der Suchabfrage. Wenn man sich das SQL Statement vorstellt, welches sich über diese Seite generieren lässt, kann einem Entwickler durchaus schwindelig werden. Ein wenig Abhilfe schafft der Oracle Expression Filter, ein Feature innerhalb der Datenbank.

(weiterlesen …)

Pivoting in Oracle 11g

Donnerstag, 15. Januar 2009

Ein mächtiges Feature im Bereich “Reporting” ist das sogenannte Pivoting (http://de.wikipedia.org/wiki/Pivot-Tabelle). Was bisher ein schlagkräftiges Argument für Excel war, oder umständlich im Client programmiert werden musste ist nun erstmals als neue SQL Erweiterung in Oracle 11g integriert. Wie mächtig und praxistauglich die Funktion wirklich ist soll ein kleines Beispiel zeigen.

(weiterlesen …)

Pimp my SQL

Mittwoch, 7. Januar 2009

“Form schlägt Inhalt!” ist eine Aussage, der ich mich leider viel zu häufig gegenüber sehe. Das wichtige an einem Report ist die korrekte Schriftart, Linienstärken und die pixelgenaue Ausrichtung der Spalten. Ob eine Zahl hier und dort “ein wenig” falsch ist, das bemerkt in der Regel niemand. Wenn aber die Überschrift nicht zentriert und nicht in Arial 12 ist, dann ist der Bericht wertlos!

Jedoch nicht jede grafische Aufbereitung eines Berichts ist verschwendete Mühe. Seitenlange Zahlenreihen schaut sich niemand an, und selbst wenn, bleibt die Aussagekraft der Zahlen durch die Menge an Informationen verborgen. Ein Mittelweg zwischen Layout/Grafik und Information muss also her. Mein Werkzeug erster Wahl: SQL*Plus.

(weiterlesen …)

DRCP die Zweite

Montag, 29. Dezember 2008

Nach meinem letzten gescheiterten Versuch das neue Connection Pooling Feature von Oracle 11g zu testen, habe ich mich ein wenig tiefer an die Basis herangewagt und OCCI für weitere Tests bemüht. Der Testverlauf ist recht simpel gehalten:

  1. Oracle Umgebung initialisieren
  2. Zeit merken
  3. 1000 mal
    1. Verbindung zur Datenbank aufbauen
    2. SELECT SYSDATE FROM DUAL
    3. Verbindung schliessen
  4. Zeit messen und Differenz errechnen

Verglichen wird der Verbindungsaufbau einer “normalen” Verbindung mittels oracle::occi::Environment::createConnection() und oracle::occi::StatelessConnectionPool::getConnection(). (weiterlesen …)

Erste Versuche mit Oracle 11g

Freitag, 19. Dezember 2008

Auch ich komme natürlich nicht umhin mich ein bisschen in das neue Oracle Release 11g einzuarbeiten und ein paar der zahlreichen neuen Features zu testen. Mein erstes Interesse galt dem Database Resident Connection Pooling, kurz: DRCP. Oracle implementiert hiermit eine dritte Variante der “Verbindungsoptionen” neben SHARED Server und DEDICATED Server. Der DRCP stellt ein Datenbank basiertes Connection Pooling zur Verfügung und soll damit insbesonders verbindungslose Webapplikationen wie PHP beschleunigen, da aufwendige Connects wegfallen. Ausserdem sollen Resourcen geschont werden, da Verbindungen wiederverwendet werden können.

Das Dokument “PHP Scalability and High Availability” beschreibt z.B. dass bei 5000 Connections anstatt 21GB Speicher mit DEDICATED Server nur 610MB mit DRCP benötigt werden. Durchaus ein Grund sich DRCP etwas genauer anzuschauen…
(weiterlesen …)