• In chevron_right

      Toad Data Studio manages SQL, NoSQL, and cloud databases

      pubsub.slavino.sk / infoworldcom · Thursday, 18 January - 10:00 edit

    Systems management and security software provider Quest Software is shipping Toad Data Studio, a platform for streamlining database management in heterogeneous relational and NoSQL database environments.

    Announced January 17, Toad Data Studio allows users to manage nearly any database platform in their environment including cloud and on-premises sources and relational, NoSQL, and data warehouse sources, Quest Software said. A free trial is offered.

    Toad Data Studio features an advanced SQL editor, SQL and DDL generation, and the ability to edit JSON and XML fields directly within table fields or in their own separate editing window. Users can compare data results across different queries or between different environments, either on the fly or through automated workflows, and develop desktop automations for routine tasks.

    To read this article in full, please click here


    Značky: #JSON, #SQL, #Rozne, #Database

    • chevron_right

      Trdsql – Pour interroger des fichiers plats (CSV, JSON…etc) avec SQL

      news.movim.eu / Korben · Thursday, 7 September, 2023 - 07:00 · 1 minute

    Voici un outil en ligne de commande fascinant qui va surement piquer votre curiosité en plus de vous rendre de grands services. Il s’agit de Trdsql , un programme écrit en Go qui permet d’exécuter des requêtes SQL sur des fichiers texte structurés tels que les CSV, TSV, LTSV, TBLN et JSON.

    A ce niveau, c’est sorcellerie messire !!

    Trdsql existe depuis un petit moment et est connu pour ses performances et ses capacités. Il peut par exemple utiliser de vraies requêtes SQL à partir de fichiers .sql , (que ce soit des requêtes MySQL ou PostgreSQL ).

    C’est une alternative avancée à q et textql , qui offrent également la possibilité d’exécuter des requêtes SQL sur des fichiers CSV et TSV structurés. Toutefois, Trdsql surpasse ses prédécesseurs en prenant en charge davantage de formats de fichiers, différentes options de sortie et en traitant les fichiers compressés.

    En plus de tous les formats de fichiers qu’il gère, il propose différents formats de sortie tels qu’une sortie brute, en table ASCII, en Markdown…etc. Un autre atout de Trdsql est qu’il peut être utilisé comme bibliothèque pour vos programmes Go, afin de traiter de gros fichiers sans soucis dans vos propres process.

    Prenez par exemple, un CSV contenant une liste de tâches dont vous voulez simplement extraire certaines informations spécifiques. Avec Trdsql, vous pourrez à l’aide d’une simple requête SQL, sortir les données souhaitées.

    trdsql "SELECT * FROM test.csv"

    Trdsql est très facile à utiliser et il est dispo sous Linux, Windows et macOS. Et bien sûr, vous pouvez le lancer via un conteneur Docker.

    C’est donc un outil précieux pour ceux qui travaillent avec des données structurées et des fichiers « plats ».

    N’hésitez pas à tester par vous-meme Trdsql en cliquant ici .

    • chevron_right

      Visualisez vos données JSON en graphes avec JSON CRACK

      news.movim.eu / Korben · Tuesday, 23 May, 2023 - 07:00

    Si vous traitez régulièrement de gros fichiers JSON et que vous avez un peu de mal à vous y retrouver, JSON CRACK peut vous aider à y voir plus clair.

    Cet outil que vous pouvez utiliser directement en ligne ou depuis Visual Studio Code va vous permettre de visualiser les données JSON de manière beaucoup plus intuitive au travers de graphs comme celui-ci :

    Graphique en barres représentant les données JSON

    Vous pouvez d’un clic charger n’importe quel fichier JSON, le modifier, changer l’orientation du graphique, étendre ou réduire les noeuds, mais également faire des recherches dans le JSON et bien sûr exporter tout cela au format PNG. Vous pouvez même créer un widget à intégrer sur votre site ou partager le graph via une simple URL.

    Le projet est open source donc vous pouvez aussi l’installer en local sur votre machine, mais si vous utilisez la version en ligne, sachez que pour stocker au-delà de 15 fichiers JSON ou pour générer des JSON via l’API, il faudra vous alléger de 5$ par mois.

    Le GitHub est ici et pour accéder au site, c’est par là.

    • chevron_right

      Un outil de conversion de code super cool !

      news.movim.eu / Korben · Saturday, 7 January, 2023 - 08:00

    Si vous êtes développeur web, je suppute que vous manipulez du JSON, du HTML, du SVG, du CSS et parfois, plus rarement du JSX, du Kotlin, du React Native, ou encore du Typescript.

    Le truc qui devient vite relou, c’est de convertir tout ça. Par exemple, convertir un SVG en JSX ou un JSON en GraphQL, sans oublier du markdown en HTML ou du HTML en Pug.

    Bref, si vous faites ce genre de choses, il existe un service en ligne (sous licence libre) nommé simplement Transform.tools qui devrait bien vous rendre service.

    Vous écrivez votre code dans la zone de gauche et celui-ci est tout simplement converti dans la zone de droite. Et comme vous pouvez le voir, les possibilités de conversions sont très nombreuses.

    C’est un site à rajouter d’urgence dans votre boite à outils de codeur, car ça vous fera gagner beaucoup de temps !

    • Ic chevron_right

      Parameterizing GitLab CI/CD?

      pubsub.slavino.sk / icinga · Thursday, 24 March, 2022 - 13:00 edit

    While doing packaging for Icinga, I noticed we have a lot of YAML files describing GitLab pipelines doing very similar jobs. The same build job across different operating systems. That’s wasteful behaviour, which leads to a bigger workload when it comes to modifying these jobs. Tasks like adding new versions and especially adding new operating […]

    The post Parameterizing GitLab CI/CD? appeared first on Icinga .


    Značky: #gitlab, #json, #Network, #Development, #packaging, #How-tos, #jsonnet

    https://www.lefigaro.fr/sciences/plaidoyer-pour-une-revolution-de-l-activite-physique-a-l-ecole-20210321?al_applink_data=%7B%22target_url%22%3A%22https%3A%5C%2F%5C%2Fwww.lefigaro.fr%5C%2Fsciences%5C%2Fplaidoyer-pour-une-revolution-de-l-activite-physique-a-l-ecole-20210321%3Ffbclid%3DiuysgedrudxvjDCVJDZKGYVDUZYGVXIDZGYRVC%22%2C%22extras%22%3A%5B%5D%2C%22referer_app_link%22%3A%7B%22url%22%3A%22fb%3A%5C%2F%5C%2F%5C%2F%22%2C%22app_name%22%3A%22Facebook%22%7D%7D

    Après un petit url-decode, on trouve carrément du #JSON dedans :

    al_applink_data={
    "target_url":"https:\/\/www.lefigaro.fr\/sciences\/plaidoyer-pour-une-revolution-de-l-activite-physique-a-l-ecole-20210321?fbclid=iuysgedrudxvjDCVJDZKGYVDUZYGVXIDZGYRVC",
    "extras":[],
    "referer_app_link":{
        "url":"fb:\/\/\/",
        "app_name":"Facebook"
        }
    }
    • At chevron_right

      Explorer des logs ELK avec JsonPath

      motius · pubsub.gugod.fr / atomtest · Friday, 3 July, 2020 - 22:00 · 5 minutes

    Bonjour ! Aujourd'hui, je veux vous parler d'une bibliothèque Python3 : jsonpath2. Un peu de contexte Il s'agit d'une petite bibliothèque de code qui permet de filtrer des données au format JSON. Vous me direz, on peut déjà faire ça avec des petites fonctions utilitaires, quelques coups de liste en ...

    Bonjour !

    Aujourd'hui, je veux vous parler d'une bibliothèque Python3 : jsonpath2.

    Un peu de contexte

    Il s'agit d'une petite bibliothèque de code qui permet de filtrer des données au format JSON. Vous me direz, on peut déjà faire ça avec des petites fonctions utilitaires, quelques coups de liste en compréhension. Il y a bien sûr un grand nombre de choses que la bibliothèque ne permet pas de faire, on y reviendra, mais concentrons-nous d'abord sur ce qu'elle permet, et les avantages qu'elle procure.

    Pour cela, je vous propose tout simplement de vous présenter l'exemple que j'ai eu à traiter.

    Un exemple

    Supposez que vous ayez comme moi une application qui écrive un journal d'exécution au format JSON, dont les entrées sont relevées périodiquement par un ELK, et que vous ayez à analyser une journée complète, ce qui vous donne environ 50 Mo de logs compressés en gzip, et 700 Mo une fois décompressés. Vous rentrez ça dans un interpréteur ipython et bam, 3 Go de RAM supplémentaires utilisés. (Dans les cas où vous utilisez beaucoup de mémoire dans ipython, rappelez-vous que celui-ci stocke tout ce que vous taper dans des variables nommées _i1, _i2... et les résultats de ces opérations dans les variables correspondantes _1, _2, ce qui peut faire que votre interpréteur consomme une très grande quantité de mémoire, pensez à la gérer en créant vous-même des variables et en les supprimant avec del si nécessaire. Mais je m'égare.)

    Il peut y avoir plusieurs raisons qui font que ces logs ne seront pas complètement homogènes :

    • vous avez plusieurs applications qui fontionnent en microservices ;
    • les messages comportant des exceptions ont des champs que les autres messages plus informatifs n'ont pas ;
    • etc.

    Toujours est-il que pour analyser ce JSON, vous pouvez être dans un beau pétrin au moment où vous vous rendez compte que chacune des petites fonctions utilitaires que vous écrivez doit :

    • gérer un grand nombre de cas ;
    • gérer des cas d'erreur ;
    • être facilement composable, même pour les cas d'erreur.

    Je ne dis pas que ce soit infaisable, et il m'est arriver de le faire ainsi pour certaines actions plutôt qu'en utilisant JsonPath.

    Pour l'installation, c'est comme d'habitude dans le nouveau monde Python :

    # dans un virtualenv Python3
    pip install jsonpath2

    Cas pratiques

    Exemple de code n°1

    Par exemple, si je souhaite obtenir toutes les valeurs du champ message où qu'il se trouve dans mon JSON, je peux le faire ainsi :

    import json
    from jsonpath2.path import Path as JsonPath
    with open("/path/to/json_file/file.json", mode='r') as fr:
        json_data = json.loads(fr.read())
    pattern = "$..message"
    ls_msg = [
        match.curent_value
        for match in JsonPath.parse_str(pattern).match(json_data)
    ]

    La variable qui nous intéresse ici, c'est pattern. Elle se lit ainsi :

    1. $ : racine de l'arbre analysé
    2. .. : récursion sur tous les niveaux
    3. message : la chaîne de caractères recherchés

    Avantage

    Le premier avantage que l'on voit ici, c'est la possibilité de rechercher la valeur d'un champ quelle que soit la profondeur de ce champ dans des logs.

    Exemple de code n°2

    On peut aussi raffiner la recherche. Dans mon cas, j'avais une quantité de champs "message", mais tous ne m'intéressaient pas. J'ai donc précisé que je souhaitais obtenir les champs "message" seulement si le champ parent est, dans mon cas, "_source" de la manière suivante :

    pattern = "$.._source.message"

    Par rapport au motif précédent, le seul nouveau caractère spécial est :

    1. . : permet d'accéder au descendant direct d'un champ.

    Avantage

    L'autre avantage qu'on vient de voir, c'est la possibilité de facilement rajouter des contraintes sur la structure de l'arbre, afin de mieux choisir les champs que l'on souhaite filtrer.

    Exemple de code n°3

    Dans mon cas, j'avais besoin de ne récupérer le contenu des champ "message" que si le log sélectionné était celui associé à une exception, ce qui correspondait à environ 1% des cas sur à peu près 600 000 entrées.

    Le code suivant me permet de sélectionner les "message" des entrées pour lesquelles il y a un champ "exception" présent :

    pattern = "$..[?(@._source.exception)]._source.message"

    Il y a pas mal de nouveautés par rapport aux exemples précédents :

    1. @ : il s'agit de l'élément couramment sélectionné
    2. [] : permet de définir un prédicat ou d'itérer sur une collection
    3. ?() : permet d'appliquer un filtre

    Avantage

    On peut facilement créer un prédicat simple pour le filtrage d'éléments, même lorsque l'élément sur lequel on effectue le prédicat n'est pas le champ recherché in fine.

    Au sujet de jsonpath2

    Si vous êtes intéressé par le projet, je vous mets à disposition les liens suivants (ils sont faciles à trouver en cherchant un peu sur le sujet) :

    jsonpath2 utilise le générateur de parseur ANTLR, qui est un projet réputé du Pr. Terence Parr.

    Inconvénients

    Parmi les prédicats qu'on peut faire, on peut tester si une chaîne de caractères est égale à une chaîne recherchée, mais les caractères qu'on peut mettre dans la chaîne recherchée sont assez limités : je n'ai pas essayé de faire compliqué, seulement de rechercher des stacktraces Python ou Java, qui ont peu de caractères spéciaux.

    Il paraît qu'on peut effectuer des filtrages plus puissants avec une fonctionnalité supplémentaire que je n'ai pas présentés parce que je n'ai pas pris le temps de l'utiliser :

    1. () : s'utilise afin d'exécuter des expressions personnalisées.

    J'espère que tout ceci pourra vous être utile. Je vous recommande notamment de tester vos motifs sur un petit jeu de données, on peut facilement faire des bêtises et consommer beaucoup de mémoire et pas mal de temps sans cela.

    Joyeux code !

    Motius