12 points par GN⁺ 2024-10-07 | 2 commentaires | Partager sur WhatsApp
  • Outil open source pour l’inspection, les requêtes, les jointures, l’import et l’export de données, utile pour travailler avec des bases de données et des documents
  • Il utilise un langage de requête appelé SLQ et prend en charge diverses sources et divers formats de données

Fonctionnalités principales

  • Comparaison de tables de base de données : la commande diff permet de comparer les métadonnées de la source ou les valeurs des lignes.
  • Import de données d’Excel vers Postgres : le contenu d’une feuille de calcul Excel XLSX peut être inséré dans une nouvelle table Postgres.
  • Affichage des métadonnées d’une base de données : avec le flag --json, il est possible d’afficher les schémas et d’autres métadonnées au format JSON.
  • Récupération de tous les noms de colonnes d’une table MySQL : il est facile d’extraire les noms de colonnes d’une table donnée.
  • Exécution de requêtes SQL Server et insertion des résultats dans SQLite : il est possible d’exécuter des requêtes sur SQL Server et d’insérer les résultats dans SQLite.
  • Export de toutes les tables d’une base de données en CSV : les noms des tables peuvent être extraits à partir des métadonnées JSON, puis chaque table peut être exportée dans un fichier CSV.

Commandes de source

  • Ajout et gestion des sources : fournit des commandes pour ajouter, activer, déplacer, lister, regrouper, pinger ou supprimer des sources.
  • Commandes pour les tables de base de données : fournit des commandes pratiques comme copier, couper ou supprimer des tables.

Requêtes JSONL

  • Prise en charge du format JSONL : permet d’interroger des fichiers de logs au format JSON Lines.

Sources SQL et formats de sortie

  • Bases de données prises en charge : Postgres, SQLite, MySQL, MariaDB, SQL Server, Azure SQL Edge, etc.
  • Autres sources : les données peuvent être importées depuis des formats comme Excel XLSX, CSV, TSV, JSON, JSONA et JSONL.
  • Formats de sortie : prise en charge de l’insertion dans des bases de données SQL ainsi que de sorties en Excel XLSX, CSV, TSV, JSON, JSONL, JSONA, XML, HTML, Markdown, Raw, etc.

Le résumé de GN⁺

  • sq est un outil puissant pour manipuler les données de bases de données et de documents, offrant une grande flexibilité grâce à la prise en charge de nombreuses sources et de nombreux formats.
  • Il peut simplifier les tâches liées aux données grâce à diverses fonctions, comme le transfert de données entre bases, la gestion des métadonnées et la conversion vers différents formats.
  • Il est utile pour les développeurs intéressés par l’administration de bases de données et le traitement de données, et peut être particulièrement précieux dans les projets qui manipulent des sources de données variées.
  • Des outils offrant des fonctionnalités similaires incluent jq, pandas et Apache Drill.

2 commentaires

 
xguru 2024-10-08

SQ - swiss-army knife for data

Je l’avais présenté il y a trois ans et demi, et ses fonctionnalités se sont beaucoup étoffées depuis.

 
GN⁺ 2024-10-07
Commentaires Hacker News
  • Je ne trouve pas le langage de requête de JQ particulièrement séduisant. Je ne vois pas pourquoi on choisirait son langage proche de XPATH pour interroger une base de données
  • Je me demande s’il existe un outil capable de prendre une entrée JSON et de la requêter avec une syntaxe SQL. Ce serait plus attirant pour les utilisateurs de longue date
  • Il est suggéré d’empaqueter Python en un seul exécutable et de lier symboliquement les applications et modules à la manière Unix
    • Beaucoup de développeurs accordent la priorité la plus faible à l’esthétique lorsqu’ils choisissent un outil. D’autres facteurs sont plus importants que le packaging ou la cohérence visuelle
  • La démo semble trop dépendante de l’état. La vraie force de jq, c’est sa fiabilité et le fait de pouvoir comprendre son comportement, ce qui manque aux outils dépendants de l’état
  • Je ne vois rien qu’on ne puisse pas faire avec du SQL standard et des outils CLI. Apprendre le SQL standard permettrait d’acquérir des connaissances plus réutilisables
  • Les nouveaux outils sont toujours une bonne chose. Même s’ils ne deviennent pas grand public, il est toujours intéressant d’explorer de nouvelles façons de travailler avec des bases de données
  • J’aime bien sq. C’est pratique pour faire rapidement des tâches simples sur une base de données et sortir le résultat en CSV ou en JSON. Cela dit, j’aimerais que le langage de requête de sq (SLQ) prenne en charge la correspondance de sous-chaînes comme ... LIKE "SOME_STRING%" en SQL. On peut appeler SQL manuellement
  • J’ai lu que Postgres allait ajouter une fonctionnalité de sortie JSON. .wrangle | .data fonctionne sur un iPhone 13 mini
  • J’aurais aimé avoir cet outil quand j’utilisais des bases de données SQL
  • Ce serait bien d’avoir une prise en charge TSV pour les logs Zeek