1 Punkte von GN⁺ 2025-02-08 | 1 Kommentare | Auf WhatsApp teilen
  • SQLite Page Explorer

  • SQLite Page Explorer ist eine kleine GUI-Anwendung, die mit redbean entwickelt wurde und ein SQLite-Datenbankfile so „seite für seite“ erkundbar macht, wie SQLite es selbst sieht

  • Warum ist das nötig?

    • SQLite und die meisten Datenbanken speichern Daten in Seiten von der Größe eines Disk-Blocks (meist 4 KB), um Lese- und Schreibvorgänge so schnell wie möglich zu machen
    • Normalerweise interagieren Entwickler mit einer Datenbank auf „Schema-Ebene“, aber ein Blick auf die „Seiten-Ebene“ kann interessante Einblicke liefern
      • Man kann sehen, wie Indizes auf der Festplatte tatsächlich aussehen (im Grunde sind sie separate kleine Tabellen)
      • Durch kompaktere Datenspeicherung lassen sich Queries und Anwendungen schneller machen
      • Probleme und Ineffizienzen lassen sich entdecken, die auf Schema-Ebene nicht sichtbar sind
      • Man bekommt ein intuitives Verständnis für wichtige Datenstrukturen wie B-Bäume, die die Grundlage der meisten Dateisysteme und Datenbanken bilden
  • Überall lauffähig

    • Dank redbean, cosmopolitan und αcτµαlly pδrταblε εxεcµταblε ist es eine einzelne 6,5-MB-Executable, die nativ unter Windows, Linux, MacOS, verschiedenen BSDs sowie auf ARM64 und x64 läuft
    • Die Datei ist ein Zip-Archiv, das die Anwendung enthält, einschließlich Lua-Code zum Parsen des binären Datenbankformats
  • Installation

    • sqlite-page-explorer.com aus den Releases herunterladen
    • Auf Unix-Systemen chmod +x ausführen
    • Eine Datenbankdatei per Drag-and-drop hineinziehen oder in der Konsole starten: sqlite-page-explorer.com mySqliteDatabase.db
    • Die Anwendung öffnet sich in einem Browser-Tab
    • Nach Abschluss in der Konsole zweimal Ctrl-C drücken
    • αcτµαlly pδrταblε εxεcµταblεs können die Virenerkennung von Browsern und Betriebssystemen verwirren und Fehlalarme auslösen. Wie immer gilt: bei allem, was aus dem Internet heruntergeladen wird, die übliche Vorsicht walten lassen
    • Bei großen Datenbanken über 500 MB kann das Laden der obersten Ansicht, die alle Seiten einliest, einige Zeit dauern
  • So wird es gebaut

    • Den Inhalt von files/ einfach als zip in redbean-3.0.0-cosmos.com packen. Download unter https://cosmo.zip/pub/cosmos/bin/ möglich (in der Liste auf „redbean“ klicken)
    • Falls zip nicht auf dem System vorhanden ist, muss es von dieser Website heruntergeladen werden
    • Alternativ kann auch das enthaltene Python-(3.6+)-Skript zipitup.py ausgeführt werden
    • Zum Ändern kann redbean-3.0.0-cosmos.com -D files ausgeführt werden, damit die Anwendung aus dem Unterverzeichnis files bereitgestellt wird. Dann muss das Zip nicht nach jeder Änderung neu gebaut werden
  • Kein Meisterwerk

    • Das Ganze entstand als Experiment, um redbean auszuprobieren und Lua zum ersten Mal zu verwenden; der Code könnte daher etwas unordentlich sein
    • Mit einem Template-System wie Jinja oder den nativen Templates von bottle.py ließen sich viele String-Verkettungen und Write()-Anweisungen vermeiden
    • Schön wäre es, wenn sich die Konsole automatisch schließen würde, wenn der letzte Tab geschlossen wird, und wenn bei großen Datenbanken standardmäßig bei Seite 10.000 gestoppt würde, sofern der Benutzer nicht etwas anderes bestätigt
    • PRs willkommen

1 Kommentare

 
GN⁺ 2025-02-08
Hacker-News-Kommentare
  • Das Projekt, das animierte GIF-Screenshots veröffentlicht hat, ist sehr interessant
  • Das Schreiben von Code zum Parsen von SQLite-Dateien anhand der Dokumentation zum SQLite-Dateiformat ist leichter als erwartet
  • Aus der Perspektive von jemandem mit Erfahrung in der Arbeit an den Interna von SQLite ist die Arbeit an diesem Projekt beeindruckend
    • sqlite-repr, das mit Dioxus erstellt wurde, bietet ebenfalls eine interessante Visualisierung von SQLite
    • Zugehöriger Link: sqlite-repr
  • Das Projekt ist großartig, und es wäre gut, eine Farblegende hinzuzufügen
    • Bei großen Datenbanken (3,6 GB, 942719 Seiten) treten Leistungsprobleme auf, daher könnte man Paginierung in Betracht ziehen
  • Vor 10 Jahren wurde für ein Security-Tool etwas Ähnliches gemacht, und es ist schön, dass dieses Projekt unter der MIT-Lizenz verfügbar ist
  • Im SQLite-Quellcode ist das CLI-Tool showdb enthalten, das für die Untersuchung von Datenbankdateien nützlich ist
  • Für Menschen, denen es schwerfällt, Vorlesungen oder Kurse zu besuchen, ist dieses Projekt eine gute Möglichkeit, Datenstrukturen effizient zu visualisieren
  • Ein sehr nützliches Tool für Menschen, die Datenbanken lernen
  • Es gibt Erfahrung mit dem Schreiben einer Beschreibung und nützlicher Diagramme zum SQLite-Dateiformat
  • Das Tool funktioniert gut