12 Punkte von GN⁺ 2024-10-07 | 2 Kommentare | Auf WhatsApp teilen
  • Ein Open-Source-Tool zum Prüfen, Abfragen, Joinen, Importieren und Exportieren von Daten, nützlich für die Arbeit mit Datenbanken und Dokumenten
  • Verwendet eine Abfragesprache namens SLQ und unterstützt verschiedene Datenquellen und Formate

Hauptfunktionen

  • Vergleich von Datenbanktabellen: Mit dem Befehl diff lassen sich Quellmetadaten oder Zeilenwerte vergleichen.
  • Daten aus Excel nach Postgres importieren: Inhalte eines Excel-XLSX-Arbeitsblatts können in eine neue Postgres-Tabelle eingefügt werden.
  • Datenbankmetadaten anzeigen: Mit dem Flag --json lassen sich Schema und andere Metadaten im JSON-Format ausgeben.
  • Alle Spaltennamen einer MySQL-Tabelle abrufen: Die Spaltennamen einer bestimmten Tabelle lassen sich einfach extrahieren.
  • SQL-Server-Abfragen ausführen und Ergebnisse in SQLite einfügen: Abfragen können auf SQL Server ausgeführt und die Ergebnisse in SQLite eingefügt werden.
  • Alle Datenbanktabellen als CSV exportieren: Mit JSON-Metadaten lassen sich Tabellennamen extrahieren und jede Tabelle als CSV-Datei ausgeben.

Quellbefehle

  • Quellen hinzufügen und verwalten: Bietet Befehle zum Hinzufügen, Aktivieren, Verschieben, Auflisten, Gruppieren, Pingen oder Entfernen von Quellen.
  • Befehle für Datenbanktabellen: Bietet praktische Befehle wie das Kopieren, Ausschneiden und Löschen von Tabellen.

JSONL-Abfragen

  • Unterstützung für das JSONL-Format: Logdateien im JSON-Lines-Format können abgefragt werden.

SQL-Quellen und Ausgabeformate

  • Unterstützte Datenbanken: Unterstützt Postgres, SQLite, MySQL, MariaDB, SQL Server, Azure SQL Edge und weitere.
  • Weitere Quellen: Daten können aus Formaten wie Excel XLSX, CSV, TSV, JSON, JSONA und JSONL importiert werden.
  • Ausgabeformate: Ausgabe ist in vielen Formaten möglich, darunter Einfügen in SQL-Datenbanken, Excel XLSX, CSV, TSV, JSON, JSONL, JSONA, XML, HTML, Markdown und Raw.

Zusammenfassung von GN⁺

  • sq ist ein leistungsstarkes Tool für die Arbeit mit Datenbanken und Dokumentdaten und bietet durch die Unterstützung vieler Datenquellen und Formate hohe Flexibilität bei der Datenverarbeitung.
  • Aufgaben wie Datenmigration zwischen Datenbanken, Metadatenverwaltung und Datenkonvertierung in verschiedene Formate lassen sich damit vereinfachen.
  • Es ist nützlich für Entwickler, die sich mit Datenbankverwaltung und Datenverarbeitung beschäftigen, insbesondere in Projekten mit vielfältigen Datenquellen.
  • Werkzeuge mit ähnlichen Funktionen sind unter anderem jq, pandas und Apache Drill.

2 Kommentare

 
xguru 2024-10-08

SQ - Schweizer Taschenmesser für Daten

Ich hatte es vor dreieinhalb Jahren schon einmal vorgestellt, und in der Zwischenzeit sind viele Funktionen hinzugekommen.

 
GN⁺ 2024-10-07
Hacker-News-Kommentare
  • Ich finde die Abfragesprache von JQ nicht besonders attraktiv. Ich verstehe nicht, warum man beim Abfragen einer Datenbank die XPath-ähnliche Sprache von JQ wählen sollte
  • Ich frage mich, ob es ein Tool gibt, das JSON als Eingabe annimmt und mit SQL-Syntax abfragbar macht. Für langjährige Nutzer wäre das vermutlich attraktiver
  • Es wird vorgeschlagen, Python als einzelne ausführbare Datei zu paketieren und Anwendungen sowie Module im Unix-Stil per symbolischen Links zu verknüpfen
    • Viele Entwickler bewerten ästhetische Aspekte bei der Wahl von Tools am niedrigsten. Andere Faktoren sind wichtiger als Verpackung oder ästhetische Konsistenz
  • Die Demo wirkt zu stark zustandsabhängig. Die eigentliche Stärke von jq ist seine Zuverlässigkeit und dass man sein Verhalten verstehen kann; zustandsabhängigen Tools fehlt genau das
  • Ich sehe nichts, was man nicht auch mit Standard-SQL und CLI-Tools machen könnte. Standard-SQL zu lernen würde wiederverwendbareres Wissen vermitteln
  • Neue Tools sind immer gut. Auch wenn sie nicht Mainstream werden, ist es immer sinnvoll, neue Wege im Umgang mit Datenbanken zu erkunden
  • Ich mag sq. Es ist nützlich, um einfache Aufgaben in einer DB schnell auszuführen und als CSV oder JSON auszugeben. Ich wünschte nur, die sq-Abfragesprache (SLQ) würde Teilstring-Matching wie in SQL mit ... LIKE "SOME_STRING%" unterstützen. SQL kann man manuell aufrufen
  • Ich habe gelesen, dass Postgres eine JSON-Ausgabefunktion bekommen soll. .wrangle | .data funktioniert auf dem iPhone 13 mini
  • Ich wünschte, ich hätte dieses Tool gehabt, als ich mit SQL-Datenbanken gearbeitet habe
  • Es wäre schön, wenn es TSV-Unterstützung für Zeek-Logs gäbe