Un système de stockage global d'aspect plus industriel

Dans le premier article de cette série, nous avons étudié le modèle entité-attribut-valeur (EAV) dans les bases de données relationnelles, et nous avons examiné les avantages et les inconvénients du stockage de ces entités, attributs et valeurs dans des tables. Nous avons appris que, malgré les avantages de cette approche en termes de flexibilité, elle présente de réels inconvénients, notamment une inadéquation fondamentale entre la structure logique des données et leur stockage physique, qui entraîne diverses difficultés.

Pour résoudre ces problèmes, nous avons décidé de voir si l'utilisation de globales - qui sont optimisées pour le stockage d'informations hiérarchiques - serait efficace pour les tâches que l'approche EAV traite habituellement.

Dans la Partie 1, nous avons créé un catalogue pour une boutique en ligne, d'abord en utilisant des tables, puis en utilisant une seule globale. Maintenant, essayons d'implémenter la même structure pour quelques globales.

Dans la première globale, ^catalog, nous allons stocker la structure du répertoire. Dans la deuxième globale, ^good, nous allons stocker les marchandises. Et dans la globale ^index, nous allons stocker les index. Puisque nos propriétés sont liées à un catalogue hiérarchique, nous ne créerons pas de globale séparée pour elles.

Avec cette approche, pour chaque entité (à l'exception des propriétés), nous avons une globale séparée, ce qui est bon du point de vue de la logique. Voici la structure du catalogue global :

2 0
0 71
Article
Guillaume Rongier · Août 17, 2022 3m de lecture
Bienvenue à Django

Avec les dernières améliorations concernant le support de Python dans IRIS, et la poursuite du travail sur le support de Python DB-API par InterSystems. J'ai implémenté le support IRIS dans le projet Django où Python DB-API est utilisé pour travailler avec d'autres bases de données.

Essayons une application simple sur Django, qui stocke ses données dans IRIS.

todo App

0 0
0 20

Il s'agit de la 6ème d'une série de versions qui font partie du programme de prévisualisation pour les développeurs pour la version 2022.2. Les futures versions de prévisualisation devraient être mises à jour toutes les deux semaines et nous ajouterons des fonctionnalités dès qu'elles seront prêtes. De nombreuses mises à jour, correctifs et améliorations ont été ajoutés en 2022.2, dans la gestion SQL, l'intégration cloud, les adaptateurs Kafka et JMS, le chargeur SQL et d'autres domaines.

0 0
0 13

Bonjour la communauté,

Nous sommes heureux d'annoncer que InterSystems IRIS, IRIS for Health, HealthShare Health Connect et InterSystems IRIS Studio 2022.2 sont maintenant disponibles !

Et pour discuter de toutes les fonctionnalités nouvelles et améliorées de celui-ci, nous aimerions vous inviter à notre webinaire Quoi de neuf dans InterSystems IRIS 2022.2.

Image

0 0
0 14

Ajout de VSCode dans votre conteneur IRIS

L'une des façons les plus simples de mettre en place des environnements de développement reproductibles est de créer des conteneurs pour ces environnements. Je trouve que lors d'itérations rapides, il est très pratique d'héberger une instance de vscode dans mon conteneur de développement. Ainsi, j'ai créé un rapide script de conteneur pour ajouter un vscode basé sur un navigateur dans un conteneur IRIS. Cela devrait fonctionner pour la plupart des conteneurs 2021.1+. Mon référentiel de code est disponible ici

0 0
0 765

Comme vous le savez, dans Caché / IRIS, vous avez la possibilité de définir une propriété comme Multidimensionnelle, comme documenté ici et l'explication de la façon de l'utiliser est ici.

Bien que l'accès soit assez confortable (au sens traditionnel du COS), il y a 2 restrictions principales qui font mal :

  1. Il n'est pas sauvegardé sur le disque, sauf si votre application inclut du code pour le sauvegarder spécifiquement.
  2. Il ne peut pas être stocké dans des tableaux SQL ou exposé à travers ceux-ci.

il y en a d'autres
Je vais vous montrer comment surmonter ces limites.

2 0
0 25

Voici le troisième article de notre courte série sur les innovations d'IRIS SQL qui offrent une expérience plus adaptative et plus performante aux analystes et aux applications requérant des données relationnelles sur IRIS. Il s'agit peut-être du dernier article de cette série pour 2021.2, mais nous prévoyons plusieurs autres améliorations dans ce domaine. Dans cet article, nous allons approfondir un peu plus les statistiques de tableaux supplémentaires que nous commençons à rassembler dans cette version : Histogrammes

0 0
0 18

Les champs peuvent être obtenu à l'aide du schéma INFORMATION_SCHEMA.

INFORMATION_SCHEMA est un schéma système et n'apparaît pas dans le menu SQL du Management Portal par défaut.

La méthode d'affichage est la suivante.

  1. Ouvrez le Management Portal → System Explorer → SQL
  2. Cochez "System" sur le côté gauche du menu déroulant du schéma.
  3. Sélectionnez INFORMATION_SCHEMA dans le menu déroulant du schéma.

1 0
0 25

InterSystems a le plaisir d'annoncer la version 2022.2 d'InterSystems IRIS Data Platform, InterSystems IRIS for Health, HealthShare Health Connect et InterSystems IRIS Studio sont désormais généralement disponibles (GA).

0 0
0 8
Article
Lorenzo Scalese · Déc 7, 2022 9m de lecture
Génération de client SOAP et REST

Salut la communauté,

J’aimerais profiter de notre sujet sur la capture pour les Entrepôts de Données de Santé (EDS) pour vous présenter comment créer rapidement des clients HTTP SOAP et REST. IRIS ainsi que des applications disponibles sur Open Exchange proposent des solutions permettant de les générer à partir d’un WSDL ou d’une spécification swagger.

Client SOAP

Pour créer un client SOAP, rien de plus simple, vous avez juste besoin du WSDL. Un assistant est disponible depuis le Studio IRIS, il permet de générer vos classes pour un client web service, mais également les business services et business operations si vous souhaitez le consommer avec le framework d'interopérabilité.

1 0
0 33
Article
Irène Mykhailova · Fév 3 2m de lecture
VSCode-ObjectScript sur GitHub

Il n'y a pas si longtemps, GitHub a introduit la possibilité d'exécuter très rapidement VSCode dans le navigateur pour tout dépôt hébergé ici. Appuyez sur la touche . sur n'importe quel dépôt ou pull request, ou remplacez .com par .dev dans l'URL, pour aller directement à un environnement VS Code dans votre navigateur.

github dev

Ce VSCode est une version légère de la version Desktop mais fonctionne entièrement dans le Browser. Et en raison de cela, il a une limitation pour les extensions qui ont été autorisés à fonctionner de cette façon. Permettez-moi de vous présenter la nouvelle version 1.2.1 de l'extension VSCode-ObjectScript qui prend désormais en charge le fonctionnement en mode Browser.

2 0
0 12

3. Variantes des structures lors de l'utilisation de globales

Une structure, telle qu'un arbre ordonné, présente plusieurs cas particuliers. Examinons ceux qui ont une valeur pratique pour le travail avec les globales.

3.1 Cas particulier 1. Un nœud sans branches

1 0
0 30
Article
Iryna Mykhailova · Mai 5, 2022 13m de lecture
CheatSheet pour travailler avec les globales

Quand on travaille avec les globales, on voit qu’il n’y a pas mantes fonction en ObjectScript (COS) à utiliser. C’est aussi le cas avec Python et Java. Toutefois, toutes ses fonctions sont indispensables quand on travaille directement avec les données sans utilisation des objets, des documents ou des tables.

1 0
0 68

Les prospects, les clients et les employés peuvent désormais télécharger IRIS et IRIS for Health, les éditions Community et Enterprise sur https://evaluation.intersystems.com 

Cela permettra aux clients potentiels et aux clients actuels de tester les nouvelles fonctionnalités qui n'ont pas encore été publiées pour goûter les dernières et meilleures nouveautés en cours de développement.

Comment afficher :

Pour les Prospects il suffit de sélectionner une option avec "(Preview)" dans le nom pour accéder au téléchargement du logiciel d'aperçu

1 0
0 19
Article
Lorenzo Scalese · Juin 13, 2022 19m de lecture
Quatre API pour les bases de données

Une session concurrente dans IRIS : SQL, Objects, REST, et GraphQL

Kazimir Malevitch, "Athlètes" (1932)

"Mais bien sûr, vous ne comprenez pas ! Comment celui qui a toujours voyagé en calèche peut-il comprendre les sentiments et les impressions du voyageur en express ou du pilote dans les airs ?"

Kazimir Malevich (1916)

Introduction

Nous avons déjà abordé le sujet des raisons pour lesquelles la représentation objet/type est préférable à SQL pour la mise en œuvre des modèles de domaine. Et ces conclusions et ces faits sont aussi vrais aujourd'hui qu'ils l'ont toujours été. Alors pourquoi devrions-nous faire un pas en arrière et discuter des technologies qui ramènent les abstractions au niveau global, où elles se trouvaient à l'ère pré-objet et pré-type ? Et pourquoi devrions-nous encourager l'utilisation d'un code spaghetti, qui donne lieu à des bogues difficiles à repérer et qui ne repose que sur les compétences virtuoses des développeurs ?

Plusieurs arguments sont favorables à la transmission de données via des API basées sur SQL/REST/GraphQL plutôt qu'à leur représentation sous forme de types/objects:

0 0
0 55
Article
Guillaume Rongier · Juil 6, 2022 11m de lecture
Template Flask pour Embedded Python

1. intersystems-iris-docker-rest-template

Il s'agit d'un modèle d'une application REST API intégrée en python dans InterSystems IRIS. Elle possède également une spécification OPEN API et peut être développée avec Docker et VSCode.

1. intersystems-iris-docker-rest-template

2. Conditions préalables

1 0
0 19

Motivation

Ce projet a vu le jour lorsque j'ai réfléchi à la manière de permettre au code Python de traiter naturellement le mécanisme de stockage évolutif et de récupération efficace fourni par les globales IRIS, par le biais de la technologie Embedded Python.

Mon idée initiale était de créer une sorte d'implémentation de dictionnaire Python en utilisant les globales, mais j'ai vite réalisé que je devais d'abord m'occuper de l'abstraction des objets.

0 0
0 18

Selon une étude menée par IDC, 83% des CEO souhaitent que leur organisation soit plus axée sur l’utilisation de la donnée. Paradoxalement, 92% d’entre eux n’ont pas confiance dans les données de leur entreprise. Comment convaincre les décideurs d’appuyer davantage leurs décisions sur les données (Data Driven) plutôt que sur leurs intuitions et leurs connaissances du métier ?

Supply chain

Les enjeux actuels dans la chaîne d’approvisionnement confirment que les données s’imposent comme un actif précieux et indispensable dans l’élaboration et l’exécution d’une stratégie Data Driven.

1 0
1 12

Visual Studio Code (VSCode) est l'éditeur de code le plus populaire du marché. Il a été créé par Microsoft et distribué en tant qu'IDE gratuit. VSCode supporte des dizaines de langages de programmation, y compris ObjectScript, Until 2018, Atelier (basé sur Eclipse). Il était considéré comme l'une des principales options pour développer les produits InterSystems.

1 0
0 13
Article
Lorenzo Scalese · Mars 3 9m de lecture
OpenAPI Suite - Partie 2

Bonjour à la communauté,

Dans la première partie, nous avons décrit tous les packages, les bibliothèques utilisées et les services REST. J'aimerais maintenant détailler un peu plus les services convertisseur et validateur. Par défaut, OpenAPI-Suite envoie une requête HTTP converter.swagger.io si a spécification est de version inférieure à 3.0 et une autre requête HTTP à validator.swagger.io pour simplifier la structure de la spécification.

Bien que l'utilisation d'utilitaires en ligne soit pratique, dans certains cas, nous pourrions préférer avoir notre propre instance du convertisseur et du validateur. Par exemple, si OpenAPI-Suite est mis à disposition sur un serveur dans une organisation pour les développeurs ObjectScript, il peut être préférable d'éviter les requêtes vers les services externes (confidentialité, éviter les limites de taux de demande,...). Ceux-ci sont disponibles en images Docker, il suffit d'exécuter :

docker run -d -p 8085:8080 --name swagger-converter swaggerapi/swagger-converter:latest
docker run -d -p 8086:8080 --name swagger-validator-v2 swaggerapi/swagger-validator-v2:latest

1 0
0 6