Accès à une liaison et une intégration d'objets, une base de données ou un OLEDB à partir du générateur de requêtes (QB) de JMP.Les clients me demandent souvent s'il est possible d'accéder à notre base de données Proficy Historian depuis JMP ?J'ai donc pensé partager quelques options pour répondre à la question de savoir comment accéder aux données construites autour de l'interface COM telle que Historian ?
Le langage de script de JMP ou JSL fournit uniquement les ressources nécessaires pour accéder à tout type de données qui pourraient être requises et qui ne sont pas déjà disponibles directement à partir de la boîte de dialogue d'ouverture de fichier.JMP fournit une multitude de connecteurs de données prédéfinis qui peuvent lire directement les données de nombreuses sources de données de fichiers plats telles que Triple-S XML, CSV, SAS et SPSS.Je ne me concentrerai pas sur ce type de fichier dans cet article de blog, mais concentrerai plutôt votre attention sur l'accès aux données provenant de bases de données relationnelles telles que Oracle, PostgreSQL et SQLite ou d'autres sources OLEDB telles que Historian.
L'accès aux bases de données relationnelles se fait à l'aide de l'interface JMP Query Builder.QB est accessible en allant dans le menu Fichier et en sélectionnant Base de données puis Query Builder.

Comme cette approche est familière aux utilisateurs JMP existants, j'ai décidé que ce serait une bonne étape préliminaire pour accéder aux données provenant de magasins de données non ODBC tels que la base de données Historian.
Je présente ici deux approches et les détails de chacune des solutions respectives.De plus, je donne quelques réflexions sur les avantages et les contraintes de chacune des solutions. Le premier est via une requête personnalisée et la seconde est via une conversion ou un instantané de l'OLEDB vers un formulaire plus facilement consommé par JMP Query Builder.
Par coïncidence, la première approche est l'approche la plus simple pour accéder à l'Historian OLEDB à l'aide du générateur de requêtes de JMP.Il utilise simplement une requête personnalisée.La seule configuration de base de données requise consistait à créer un lien de base de données entre le serveur SQL et l'Historian OLEDB.

Établissez une connexion à la base de données en utilisant le serveur lié comme indiqué ci-dessous (dans mon cas, le nom du serveur lié s'appelait "MY_HISTORIAN").

Cliquez sur Suivant pour afficher la boîte de dialogue du générateur de requêtes. La boîte de dialogue vous permettra de sélectionner des schémas et des tables à partir d'un schéma à utiliser pour créer la requête.S élire l'un des schémas et une table à partir de la connexion au serveur SQL (n'importe quelle table fonctionnera car nous ne l'utilisons pas directement).J'ai choisi le schéma sys et la table all_columns comme table de données principale.

Cliquez sur le bouton Créer une requête pour commencer à créer une requête.En cliquant sur le triangle rouge sous le menu du tableau en haut à gauche, vous pourrez insérer une requête personnalisée.
JMP vous fournira une alerte vous demandant si vous êtes sûr de vouloir convertir votre requête existante en requête personnalisée.Cliquez sur le bouton "OK" pour continuer.
Les requêtes personnalisées peuvent être quelque chose que vous avez écrit précédemment, comme ce qui suit :
SELECT TagName, TimeStamp, Value, Quality FROM OPENQUERY (iHist,' SET StartTime=hier-12Day, EndTime=Aujourd'hui, IntervalMilliseconds=1Hour, SamplingMode=Calculated, CalculationMode=Maximum SELECT * FROM ihRawData WHERE TagName LIKE *simulation00001')
Une requête personnalisée ne sera plus modifiable chantez l’interface QB. Collez simplement la requête d'origine pour appliquer la requête de votre presse-papiers.En cliquant sur le bouton de mise à jour, vous afficherez un aperçu de vos données.
C cliquez sur Exécuter la requête pour importer la table de données ihRawData Historian en tant que table de données JMP.
L'élément clé de la syntaxe est l'option OPENQUERY.Cela demande à SQL Server de transmettre la requête directement au serveur lié pour traitement.
Une fois que le serveur lié traite la demande, une table est renvoyée à JMP où vous pouvez ensuite effectuer des visualisations et des analyses supplémentaires.L'un des avantages de l'approche de requête personnalisée est la simplicité de mise en œuvre ; il vous suffit de créer un serveur lié.L'interface QB fait le reste du travail.Cette approche fonctionnerait bien si votre administrateur de base de données vous a fourni une bibliothèque de requêtes disponibles à partir desquelles vous pouvez copier et coller. L'inconvénient de cette approche est que vous devez savoir à l'avance quelle requête vous souhaitez exécuter avec peu de liberté pour explorer et interroger davantage vos données.
Pour ceux qui ne sont pas familiers avec l'utilisation du générateur de requêtes de JMP, j'ai fourni un lien vers des ressources supplémentaires, notamment un Maîtrise avancée Séance JMP présentée par Chris.kirchberg .
La deuxième approche ne nécessite aucune modification de la configuration de la base de données. Cependant, cela nécessite l'installation de Python et d'une bibliothèque Python supplémentaire (win32com.client).Installez simplement le Complément Outils de base de données OLE et suivez les instructions.Le complément exécute un script Python (merci pour l'aide pour écrire le script Python à partir de bryan.boone) cela crée à son tour un instantané de l'OLEDB et l'enregistre en tant que base de données SQLite.La base de données SQLite est alors directement accessible depuis QB, comme indiqué.Les programmes externes tels que Python peuvent être exécutés à l'aide du langage de script JMP ou JSL.JSL a une fonction appelée Exécuter le programme.Un excellent article a été présenté lors de notre récent Discovery Summit Europe sur ce même sujet par hecht@jmp intitulé " Exécuter le programme - Le lien JMP® vers d'autres programmes " qui fournit plusieurs exemples détaillés sur la façon d'utiliser cette fonction.
Le script Python exécute certaines options de ligne de commande qui lui sont transmises depuis l'interface utilisateur (UI).L'interface utilisateur a été entièrement construite avec JSL et rendue déployable par n'importe quel analyste en la présentant sous forme de complément JMP.Pour installer le complément, l’analyste double-clique simplement.Le complément est désormais disponible dans le menu des compléments.

Trois options de menu sont disponibles pour la sélection.Les menus sont intitulés Base de données OLE instantanée à utiliser avec Query Builder , Requête QB personnalisée vers un OLEDB et Utilitaires . La première option convertit une base de données OLE ou une seule table de base de données OLE en un format de base de données SQLite.L'option de requête QB personnalisée soumet une requête créée avec JMP Query Builder (QB) à une base de données OLE pour traitement.Les dernières options du menu Utilitaires permettent de supprimer une table ou toutes les données de la base de données SQLite et des options pour modifier les choix par défaut dans le complément. Avec la dernière option du menu utilitaires, je propose un mécanisme pour mettre à jour les paramètres par défaut du complément.Si le nombre d'observations est important, utilisez l'option pour définir le nombre maximum de lignes à récupérer de la base de données OLE.Ci-dessous, je montre comment définir le nombre maximum d'enregistrements à renvoyer à 10. Définir le nombre maximum d'enregistrements sur -1 récupérera toutes les lignes de chaque table de la base de données OLE.

Connecter. Sélectionner. Construire. Importer.
Utilisez QB pour établir une connexion à la base de données SQLite qui vient d'être créée.Vous pouvez désormais utiliser la même interface pour commencer à créer vos requêtes.Une fois que vous avez construit une requête que vous aimez, exécutez l'option "Requête QB personnalisée vers un OLEDB" pour copier la requête à exécuter par le script Python une seconde fois.Cette fois, lorsque la requête s'exécutera, elle renverra toutes les lignes qui correspondent à la clause Where de la requête.Désormais, avec le tableau disponible dans JMP, vous disposez d'un accès complet aux fonctionnalités de visualisation et de modélisation de JMP.

À quelles sources de données vous connectez-vous régulièrement ?Connaissez-vous la fonction Exécuter le programme dans JSL ?
Laissez-moi un commentaire avec toutes les sources de données auxquelles vous vous connectez régulièrement ou d'autres façons dont vous avez utilisé Run Program dans vos propres scripts.
Jusqu'à la prochaine fois... Bon codage !
* GE Intelligent Platforms, Inc est une filiale en propriété exclusive de General Electric Company. La marque et le logo GE sont des marques commerciales de General Electric Company.