jeudi, 25 avril 2024

Visualisation de l’API Hacker News avec HCL et SQL

Dans le dernier épisode, nous avons examiné un tableau de bord Steampipe qui regroupe les résultats de recherche sur diverses API. Ce tableau de bord de métarecherche est entièrement défini dans code qui mélange deux langages : SQL pour interroger les API et HCL (HashiCorp Configuration Language) pour transmettre les résultats dans un tableau de bord.

Cette approche des tableaux de bord sous forme de code s’appuie sur la philosophie de l’infrastructure sous forme de code. Nous pensons que les tableaux de bord sont un autre type d’infrastructure qui doit être définie dans le logiciel, gérée dans des dépôts contrôlés par version et déployée à partir de dépôts.

Dans cet épisode, nous examinerons un tableau de bord qui explore les éléments publiés sur Hacker News. Il illustre plusieurs façons dont Steampipe peut participer à des flux de travail définis par logiciel.

Voici le tableau de bord en action.

Et voici le démarrage rapide pour l’exécuter par vous-même.

Les visualisations couvrent plus de 15 000 histoires depuis le 21 juin. C’est bien plus d’historique que vous ne pouvez facilement en avaler à partir de l’API Hacker News en une seule gorgée. Alors, d’où viennent les données historiques ? C’est dans le dépôt !

Historique

Toutes les heures, une action GitHub vérifie le dépôt, exécute Steampipe, recherche de nouveaux éléments, les exporte vers un fichier CSV, valide ce fichier et le pousse vers l’origine. Ainsi, lorsque vous clonez ou mettez à jour le dépôt, vous obtenez de nouvelles données. Avec Steampipe et le plugin CSV installés, voici comment vous visualisez le tableau de bord.

cd ~/steampipe-samples/all/hackernews
./update.sh
tableau de bord steampipe

Puis visitez https://localhost:9194. Répétez ./update.sh à tout moment pour extraire et incorporer des données à jour. L’l’action GitHub, programmé pour s’exécuter toutes les heures, effectue les opérations suivantes.

  • Consultez le référentiel
  • Installer Steampipe dans le coureur GitHub
  • Installez le plugin Hacker News
  • Interrogez les dernières histoires et envoyez le résultat dans un fichier CSV
  • Valider le nouveau fichier CSV et envoyer les modifications

J’étais en retard à la soirée GitHub Actions, mais j’y suis maintenant. C’est un si joli moyen d’accumuler durablement de petits clichés !

Pour ceux qui comptabilisent les points, il existe trois instances de Steampipe dans ce workflow :

#1 prend les instantanés dans une action GitHub en utilisant le Plug-in Hacker News.
#2 construit la table dans votre base de données Steampipe locale, en utilisant le plugin CSV.
#3 lance le serveur de tableau de bord local auquel votre navigateur se connecte.

HCL + SQL

Le panneau Sources propose une liste de sélection de domaines et trouve des histoires dont les URL correspondent à un domaine sélectionné. Voici la requête SQL qui lit toutes les URL et extrait leurs domaines. La partie la plus délicate est l’expression régulière, mais c’est vrai pour les regex dans toutes les langues. Le SQL lui-même est simple et facile à comprendre.

avec des domaines comme (
  sélectionner distinct
    sous-chaîne(url de 'http[s]*://([^/$]+)') comme domaine
  de
    hn_items_all
)
sélectionner
  domaine comme étiquette,
  domaine comme valeur
de
  domaines
commandé par
  domaine

Le HCL qui crée la liste de sélection est également simple et facile à comprendre.

saisir "domaine" {
  largeur = 3
  sql = <

C'est le modèle partout : SQL pour obtenir les données, un wrapper HCL léger pour transférer les résultats dans un widget. Ces deux saveurs de code, qui définissent ensemble le tableau de bord, naissent dans un dépôt, y évoluent et se déploient à partir de là. Dans les systèmes à code faible ou nul, toutes les mêmes informations résident dans un magasin de données géré par une application. Vous devrez peut-être (je l'ai déjà fait) exporter ces informations afin d'enregistrer l'évolution du système dans un référentiel. Il vaut mieux l'avoir toujours là.

L'intérêt des systèmes à code faible ou nul est, bien sûr, d'envelopper le code dans des outils qui libèrent la créativité des personnes qui ne codent pas. Il n'y a pas encore de tels outils pour ce combo HCL + SQL, mais il peut y en avoir. Les systèmes définis dans le code sont intrinsèquement conviviaux pour les outils qui lisent et écrivent ce code. Le référentiel Hacker News, par exemple, inclut un exemple fantaisiste qui anime un graphique en modifiant par programmation un fichier de tableau de bord et en modifiant certaines valeurs HCL.

Bien que je n'aie pas utilisé d'analyseur pour cet exemple, il existe bien sûr des analyseurs HCL et SQL qui restituent le code sous forme de données. Dans un épisode précédent, nous avons montré comment un autre plugin Steampipe transforme les fichiers Terraform dans les tables Steampipe, permettant ainsi un vérificateur de conformité qui valide le Terraform définitions. Au fur et à mesure que vous construisez et faites évoluer des tableaux de bord, ne voudriez-vous pas les valider de la même manière ? Une architecture as-code garantit que c'est possible.

Cela dit, coder les tableaux de bord Steampipe en pur HCL + SQL est simple, amusant et extrêmement productif. Voici deux de mes choses préférées qui le rendent ainsi.

Édition en direct

Lorsque vous modifiez le code du tableau de bord dans un éditeur qui enregistre automatiquement, le tableau de bord réagit immédiatement. Comme indiqué ici, cela est vrai pour les modifications apportées à la fois au code HCL qui orchestre les données et au code SQL qui les récupère.

Il s'agit d'une sorte d'interface de manipulation directe : "une approche aux interfaces qui impliquent une représentation continue des objets d'intérêt ainsi que des actions et des retours d'information rapides, réversibles et incrémentiels. (Wikipédia)

Bret Victor est un grand champion de cette approche. Dans ce segment de Inventer sur le principe, il cloue le problème cette manipulation directe s'adresse.

J'ai ce code, et j'ai cette image ici, et je dois maintenir le mappage entre les deux dans ma tête.

Plus il faut de temps pour voir les résultats des changements de code, plus il est difficile de maintenir ce mappage. La rétroaction immédiate est inestimable et trop souvent indisponible. Nous l'avons pris pour acquis lors du codage du premier Web, mais maintenant, il y a souvent une étape de construction qui contrecarre la manipulation directe.

Lorsque vous codez un tableau de bord Steampipe, vous obtenez un retour immédiat de HCL et SQL. J'ai écrit beaucoup de requêtes Postgres ces dernières années. Les écrire dans un environnement qui actualise les résultats de la requête au fur et à mesure que je tape ou affiche les messages d'erreur Postgres lorsque je fais des erreurs a été transformateur.

Sensibilité Web

Le codage des tableaux de bord Steampipe me rappelle les débuts du Web à d'autres égards également. Les liens, par exemple, sont des citoyens de première classe des tableaux de bord Steampipe, et ce n'est pas toujours vrai de nos jours. Le panneau Soumissions relie les noms d'utilisateur à un autre tableau de bord qui explore toutes les soumissions d'un utilisateur sélectionné. Tout fonctionne exactement comme un développeur Web s'y attendrait.

Il existe également un bouton Afficher la source. Rappelez-vous Afficher la source ? Avant, c'était important sur le web. De nos jours, il ne vous montre généralement que le bruit de ligne minimisé. Mais le combo HCL + SQL me rappelle le premier combo HTML + JS - dans le bon sens ! Voici un aperçu des sources derrière l'un des panneaux du tableau de bord.

Avec les commentaires directs, ce type d'observabilité a aidé le Web à décoller. Vous voyez quelque chose, vous vous demandez comment cela a été fait, vous voyez la source, vous apprenez et vous imitez. Les constructeurs Web débutants ne peuvent plus participer à ce type de cercle vertueux. Les constructeurs de tableaux de bord Steampipe débutants le peuvent, et cela augure bien pour un écosystème florissant.

Visualisez les données à la vitesse de la pensée

Parce que Steampipe étend Postgres, vous pouvez utiliser n'importe quel outil pour créer des tableaux de bord soutenus par des données Steampipe. Si vous maîtrisez Metabase, Tableau ou un autre outil qui se connecte à Postgres, la superpuissance de l'API à la table de base de données de Steampipe accélérera votre capacité à visualiser des données provenant de diverses sources dans ces environnements. Mais si vous essayez de créer un tableau de bord à la manière de Steampipe, faites-moi savoir comment cela se passe. D'après ma propre expérience, c'est le moyen le plus rapide et le plus agréable de transformer une idée en un tableau de bord utile.

.

Toute l'actualité en temps réel, est sur L'Entrepreneur

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

xnxx sex download russianporntrends.com hardxxxpics saboten campus freehentai4u.com read manga porn rakhi sex photo ganstagirls.com nani sex video xxx indian girl video download elporno.mobi tamilauntycom bf hd video bf hd video porn555.me anyporn hd tamil beach sex erolenta.com xxx sex boy to boy bustyboobs pakistanixxxx.com nude sexy videos desi sex xvideos.com tubaka.mobi justdesi in free naked dance vegasmpegs.mobi eva grover desi ass lick eroanal.net 69 xvideo 4k xnxx thefuckingtube.com xxii roman numerals translation tamil nayanthara sex sexozavr.com indian porn videos tumblr كلبات سكس porn-arab.net نيك ف الكس y3df comics popsexy.net akhil wife hentai ahri wowhentai.net the sarashina bloodline