Oracle 23c Preview: JavaScript, MongoDB und Kafka

Safe Harbor Statement: alle in diesem Artikel enthalten Informationen stammen aus Oracle Vorträgen von der Oracle OpenWorld 2022 in Las Vegas. Da die Entwicklung der Oracle Datenbank 23c noch nicht abgeschlossen ist, können sich Funktionalitäten ändern oder ganz gestrichen werden.

Hinweis: für viele Funktionalitäten ist die Voraussetzung, dass COMPATIBLE >= 23.0.0 gesetzt ist.

JavaScript in der Datenbank

Oracle 21c brachte mit dem Package DBMS_MLE die Möglichkeit, JavaScript in PL/SQL zu nutzen:

DECLARE
   ctx varchar2(50) ;
BEGIN
   ctx := DBMS_MLE.create_context();
   DBMS_MLE.eval(ctx, 'JAVASCRIPT', q'~console.log("Hello, World!");~');
   DBMS_MLE.drop_context(ctx);
END;
/

Ab Oracle 23c kann man JavaScript vergleichbar mit PL/SQL in der Datenbank speichern und nutzen:

CREATE MLE MODULE jsmodule
    LANGUAGE JAVASCRIPT
AS

  export function concat (str1, str2)
    { return str1 + str2; } 

;

CREATE FUNCTION js_concat (str1 IN VARCHAR, str2 IN VARCHAR2) 
RETURN VARCHAR2
AS MLE MODULE jsmodule 
SIGNATURE 'concat(string, string)';


SELECT js_concat ('Hello ', 'World!');

js_concat ('Hello ', 'World!')
------------------------------
Hello World!

Hinweis: Das Fehlen der FROM Clause beim Select Statement ist kein Fehler, sondern ein Oracle 23c Feature. Mehr dazu in meinem Blog Oracle 23c Preview: SQL und Datentypen.

MongoDB API

Die MongoDB wird gerne von Entwicklern genutzt, um Daten in JSON (bzw. BSON = Binäre JSON Variante) zu speichern und zu verarbeiten. Der Zugriff erfolgt mittels NO-SQL Tools. Ein Beispiel dafür ist die MongoDB Shell. Das Problem dabei ist: man kann eben NICHT mit SQL auf die Daten zugreifen!

Mit Oracle 23c bekommt die Datenbank ein MongoDB API (im Vortrag war nicht klar, ob dies nur in für die Autonomous Datenbank in der Oracle Cloud oder für alle Oracle Datenbanken gilt). Man kann mit beliebigen Tools, die sich mit einer MongoDB verbinden können, direkt auf eine Oracle Datenbank zugreifen. Für den MongoDB Entwickler gibt es keine Einschränkungen oder Limitationen. Alle Tools und Funktionen arbeiten wie gewohnt.

In der Oracle Datenbank werden die Daten relational gespeichert und man kann mit SQL und DML auf den gleichen Daten arbeiten. Laut Oracle soll die Verarbeitung auf der gleichen Hardware doppelt so schnell erfolgen, als bei einer MongoDB.

Kafka in der Oracle Datenbank

Apache Kafka ist eine real-time streaming Technologie, die ursprünglich als Messaging Queue konzipiert war. Mit Oracle 23c können Kafka Applikationen direkt auf einer Oracle Datenbank laufen. Dafür sind nur minimale Änderungen am Code nötig. Dies ermöglicht die Nutzung von high performance Transaction Event Queues (TEQs), die innerhalb von Oracle persistiert werden.


Mit diesen neuen Funktionen erweitert Oracle die Möglichkeit der Converged Datenbank. Seien wir gespannt, was noch kommen wird. Stay tuned!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

This site uses Akismet to reduce spam. Learn how your comment data is processed.