DuckUI

Marcel Moré berichtete von aktuellen Neuerungen in DuckDB. Einfache Installation Unter anderem gibt es seit Version 1.2 einen sehr einfachen Installations-Mechanismus auf MacOS und Linux Systemen per CURL Aufruf. Unter einer eigens dafür eingerichteten Domain liegt ein Installer-Script, welches sich ohne sudo-Rechte ausführen lässt: curl https://install.duckdb.org | sh Damit lässt sich eine aktuelle DuckDB Version blitzschnell auf dem eigenen Laptop oder einem Server installieren. Zugriff auf Excel-Dateien integriert Eine weitere Neuerung besteht in der Integration der Excel Extension....

SQL Workbench

Marcel Moré stellte das Tool ‘SQL Workbench’ vor, welches sich zur Darstellung, Analyse und Visualisierung von unterschiedlichen Datenformaten per SQL eignet. Zwar wird das Tool über eine Webadresse im Internet aufgerufen, die Anwendung läuft jedoch per Web-Assembly (WASM) vollständig lokal im eigenen Browser. Es werden also keinerlei Inhalte mit dem Server des Anbieters ausgetauscht. Das Tool basiert im Kern auf der OpenSource Datenbank-Engine DuckDB, welche über ein komfortables GUI im Browser gesteuert wird....

Interaktive Dashboards mit Evidence in FileMaker einbinden

Marcel Moré stellte das Framework Evidence.dev vor, mit welchem sich auf einfache Art und Weise komplexe interaktive Dashboards erstellen lassen. Neben einer Erläuterung von Aufbau und Funktionsweise des Frameworks zeigte Marcel den Prototyp eines eigenen Projekts, das auf Basis von Evidence und DuckDB innerhalb einer bestehenden FileMaker-Lösung umgesetzt wird. Technische Grundlagen Einige Besonderheiten unterscheiden Evidence von anderen verfügbaren Dashboard-Lösungen. Insbesondere die Tatsache, dass jegliche Ausgaben in Form von sehr einfach strukturiertem Code definiert werden, ist zunächst ungewöhnlich, bringt aber eine Reihe von Vorteilen mit sich....

DuckDB Praxisbericht

Marcel Moré ergänzte seine Präsentation zu DuckDB vom vorigen FileMaker Stammtisch mit Einblicken in ein Projekt aus der Praxis. Zunächst wurden noch einmal die grundlegenden Schritte erläutert, wie sich DuckDB in einer FileMaker Lösung per REST API integrieren lässt. Eine ausführliche Schritt-für-Schritt Anleitung ist inzwischen online abrufbar: https://blog.marcel-more.de/2024/07/11/building-a-rest-api-for-duckdb/ Marcel berichtete von einem Projekt, das ohne den Einsatz von DuckDB kaum lösbar gewesen wäre. Zu erstellen war eine komplexe Auswertung eines umfangreichen Datenbestands mit mehr als 10 Jahren Transaktionsdaten, die in einer FileMaker Datenbank vorliegen....

FileMaker + DuckDB

Marcel Moré stellte die Datenbank DuckDB vor und zeigte einen Weg, wie sich DuckDB mit einem einfachen Setup per REST API Abfrage mit Hilfe von Node.js in FileMaker integrieren lässt. Anschließend demonstrierte er anhand einiger Beispiele die besonderen Stärken von DuckDB und erläuterte, welche Möglichkeiten sich durch den Einsatz von DuckDB eröffnen. Zunächst ging es um die Frage, was die Besonderheiten von DuckDB ausmacht, und warum man überhaupt eine weitere Datenbank benötigt, um Dinge zu tun, die sich prinzipiell auch in FileMaker lösen lassen....

Speichern von Daten im FileMaker Schema

Nils Waldherr stellte eine trickreiche Methode vor, um Daten innerhalb des Schemas einer FileMaker-Tabelle zu speichern und zu übertragen. Ausgangspunkt für diese Methode war die Überlegung, dass es hilfreich wäre, bei einer Dateimigration per “Clone ohne Datensätze” zusätzliche Informationen an das Zielsystem zu übermitteln. Im gezeigten Beispiel sollten also die Versions-Nummer für das Update, ein Zeitstempel, ein Infotext und weitere Einstellungs-Datensätze im Migrations-Ablauf vom Entwicklungs-Server auf das Produktiv-System übertragen werden....

SQL-Injections

Jan Hagemeister demonstrierte anhand eines SQL-Queries zur Überprüfung von Benutzername und Passwort die Anfälligkeit von SQL-Abfragen für sogenannte SQL-Injection Attacken. Im gezeigten Beispiel wurde anhand einer Benutzereingabe geprüft, ob die Daten aus den Eingabefeldern mit den in einer Tabelle hinterlegten Zugangsdaten übereinstimmen. Aus der Übereinstimmung wurde berechnet, ob der Zugang erfolgen darf bzw. wegen des falschen Passworts verweigert wird. Dazu wurden in der gezeigten Beispiel-Datei unterschiedliche Methoden einer SQL-Abfrage verwendet. Diese unterschieden sich dadurch, dass die Texte aus den Eingabefeldern einmal per String-Verkettung direkt in den SQL-Query übernommen wurden, bzw....

SQL-Queries für Metadaten

Holger Herbst zeigte ein generisches Script zum Datenexport beliebiger FileMaker Tabellen. Das Script ist in der Lage, die in der Tabelle enthaltenen Felder inkl. Feldtyp und weiterer Meta-Daten zunächst zu analysieren und daraus ein passendes XML-Schema für Datenformat und Dateninhalte zu erzeugen. Auch ein XSLT für den anschließenden Datenimport in einer anderen FileMaker Datenbank erzeugt das Script flexibel anhand der angegeben Tabelle. Vorteil dieses Ansatzes ist, dass auch bei Schema-Änderungen an der Tabelle keinerlei nachträgliche Anpassungen am Script erforderlich sind....

Erhöhter Netzwerk-Traffic durch SQL-Abfrage

Jörg Köster erläuterte ein Phänomen, bei dem der Netzwerk-Traffic zwischen einem FileMaker Server und einem SQL Server in der Cloud sich nach vorher unauffälligem Verhalten plötzlich vervielfacht hatte, was zu unerwartet hohen Kosten im verwendeten Cloud Service führte. Ursache war die Abfrage von UUIDs per SQL auf einer externen ODBC-Quelle, um diese mit einer lokalen Tabelle abzugleichen. Ab einer bestimmten Größe der Tabelle wurden anscheinend alle UUIDs ständig über das Netzwerk an den FileMaker Server geschickt, damit dieser den Abgleich lokal ausführen kann....

Robuste SQL Queries

Marcus Diederich erläuterte anhand eines Projekts wie er SQL Queries mit Hilfe einer Custom Function so aufbaut, dass diese auch bei Umbenennung von Feldern in der FileMaker Lösung weiterhin gültig bleiben. Werden Feld-Namen innerhalb der SQL Anweisung hard codiert, so kann dies bei einer Änderung der Feldnamen zu Fehlern führen, da der Text innerhalb der SQL Anweisung sich nicht automatisch mit ändert. Die Lösung liegt darin, sowohl die Tabellen-Namen als auch die Feldnamen innerhalb der SQL Anweisung aus der FileMaker Feld-Referenz zu berechnen....