Hast du eine grosse Anzahl an Daten in verschiedensten Formaten, an allen möglichen Orten und würdest gerne Abfragen über sämtliche Daten machen, dann ist vielleicht die neue Datenabfragesprache PartiQL von AWS genau das richtige für dich. Mit PartiQL hast du die Möglichkeit, einheitliche Abfragen über relationale, halb-strukturierte und auch verschachtelte Daten hinweg zu machen. PartiQL ist mit SQL kompatibel und Open Source. Momentan empfiehlt AWS die Sprache noch nicht für den produktiven Einsatz zu verwenden, dies wird sich aber bestimmt schon bald ändern. Denn AWS selbst nutzt PartiQL bereits in einigen Services, wie z.B. S3 Select, Redshift Spectrum und weiteren. Daher macht es aus meiner Sicht Sinn, sich jetzt schon einmal mit den Möglichkeiten von PartiQL auseinander zu setzen und erste Erfahrungen damit zu sammeln. Dazu gleich eine kleine Einführung in diesem Blog. Bevor man PartiQL verwenden kann, muss man einige Vorarbeiten machen.
Vorarbeiten
Zunächst muss man ein Java JDK installieren und die Umgebungsvariable JAVA_HOME eintragen. Dies geht wie folgt:
1. Java JDK herunterladen. Link
2. Java JDK installieren
3. Umgebungsvariable JAVA_HOME setzen
a. System -> Advanced System Properties -> Enviremental Variables..”
b. Neue Umgebungsvariable anlegen
Wichtig: der Variablenwert muss auf den Pfad zeigen, wo ihr vorher das Java JDK installiert habt. In diesem Beispiel «C:\Program Files\Java\jdk-12.0.2», welches der Standardpfad ist.
c. Mit dem CMD kannst du testen, ob das Setzen der Variablen geklappt hat. Dazu musst du im CMD den Befehl echo %JAVA_HOME% ausführen. Zurück solltest du den Pfad zu deinem JDK erhalten.
PartiQL
Hast du das Java JDK installiert und den Pfad gesetzt, kannst du nun das PartiQL herunterladen. Unter Assets findest du das ZIP File der aktuellen Version von partiql-cli. Lade dieses herunter und entpacke es. Das sieht dann so aus:
Im «bin» Ordner sind die Skripts für das PartiQL. Da wir Windows verwenden, werden wir die partiql.bat Datei benutzen.
Nun starten wir doch gleich mal das PartiQL Skript und machen einen ersten Test. Dazu kannst du einfach einen Doppelklick auf die partiql.bat machen und schon bist du im CLI von PartiQL.
Anschließend können wir gleich mit einer simplen Abfrage unsere Installation testen. Dazu geben wir folgende Abfrage ein: SELECT * FROM [1,2,3,4]
Erhalten wir auf unsere Abfrage eine Ausgabe wie in der Abbildung oben, haben wir alles richtig gemacht und unser PartiQL ist bereit für mehr.
Damit wir nun unsere ersten Abfragen machen können, brauchen wir zuerst einmal Daten. Der Parameter -e bietet hierzu eine sehr einfache Variante, Daten in PartiQL zu laden.
Um PartiQL mit dem Parameter -e starten zu können, öffnen wir ein neues Kommando-Eingabefenster und navigieren uns zum Ordner, in welchem sich die partiql.bat Datei befindet. Bei unserem Beispiel ist dies im Pfad C:\Users\Administrator\partiql-cli\bin
Zu Testzwecken beinhaltet der PartiQL Ordner bereits einige Dateien. Diese sind im Ordner Tutorial\code abgelegt. Nun laden wir gleich eine Datei aus diesem Tutorial Ordner mit dem Parameter -e. Der Befehl lautet: partiql.bat -e C:\Users\Administrator\partiql-cli\Tutorial\code\q1.env
Mit dem Parameter -e lädt PartiQL die Daten aus der Datei q1.env. Hat alles funktioniert, sieht die Kommandozeile wie folgt aus:
Mit dem Befehl «!global_env» können wir nun abfragen, welche Daten geladen sind.
Da wir nun Daten in PartiQL geladen haben, können wir Abfragen, wie z.B. «gib mir die Namen aller Angestellten, welche die Jobbezeichnung «Software Eng 2» haben», machen. Die Abfrage dazu sieht wie folgt aus: SELECT e.name FROM hr.employees e WHERE e.title = ‚Software Eng 2‘
Als Ergebnis erhalten wir «Jane Smith», sie ist die einzige aus dem Datenset q1, welche den Jobtitel «Software Eng 2» hat.
Nun haben wir erfolgreich die erste Abfrage mit PartiQL gemacht. Falls du noch mehr mit PartiQL machen möchtest, empfehle ich dir, das Tutorial durchzuarbeiten. Alles dazu findest du unter folgendem Link https://partiql.org/tutorial.html . Zudem findest du noch weitere Informationen zu PartiQL im Blog Post von AWS welcher am 1. August veröffentlicht wurde.