Conférencier
|
Transcription
|
| Georg Raming (Siltronic AG) |
Bonjour tous le monde. |
| |
Aujourd'hui, je veux parler de stratégies et d'exemples d'acquisition de données à partir de sources distribuées et complexes. |
| |
Mon nom est Georg Raming, mon travail est le développement de processus de ??? monocristaux cultivés à Siltronic. J'ai une certaine expérience de l'évaluation et des processus statistiques |
| |
et données sur les produits et éducation statistique. Je suis également responsable des logiciels JMP chez Siltronic et des activités de formation pour quelques centaines d'utilisateurs. |
| |
Siltronic est l'un des principaux fabricants mondiaux de plaquettes de silicium hyper pur hautement spécialisées. |
| |
Quelques conseils techniques. Je travaille donc ici avec des tables de données au lieu de bases de données dans cette présentation, mais les concepts présentés ici sont à l'origine utilisés pour obtenir des données à partir de bases de données relationnelles via une connexion ODBC. |
| |
Et JMP Query Builder fonctionne de la même manière pour les tables de données JMP et pour les tables de base de données. |
| |
Quel est l'objectif de la présentation d'aujourd'hui? Il s'agit d'établir des moyens d'obtenir des données de la base de données de manière simple et efficace dans votre JMP ou dans une table JMP. |
| |
Parlons d'abord des éléments de base. |
| |
Il peut donc s'agir d'une table de données JMP. |
| |
Donc, si vous avez généré une table de données à partir d'une requête de base de données, cela peut ressembler à ceci. J'ai donc pris ici le fameux exemple de table de JMP, Big Class, et j'ai interrogé les données via JMP Query Builder. J'ai supprimé tout le script fourni avec la table. |
| |
Et tu trouveras |
| |
pour cette table de données si vous l'interrogez par JMP Query Builder, plusieurs scripts et une variable de table. |
| |
Donc, à l'intérieur de cette variable, vous pouvez voir le SQL. Ainsi, la définition de la table de données est tirée de la table ou de la base de données. |
| |
Et vous avez ces scripts, un script source qui |
| |
obtient une autre copie de la table de données d'origine comme celle-ci. Et ici, vous pouvez voir que les scripts originaux sont également là-dedans, mais il y a encore ces scripts du JMP Query Builder. |
| |
Il existe également un script de requête de modification qui vous permet de modifier cette requête sur la table de données JMP et de l'exécuter. |
| |
Et il y a une requête de mise à jour à partir de la base de données. Donc, si vous modifiez les données de votre tableau de données |
| |
ou il y a de nouvelles données dans la table de données, vous pouvez simplement mettre à jour les données en appuyant sur ce bouton. |
| |
Comme ça. Ici aussi, les scripts sont à nouveau issus de la table d'exemple. |
| |
D'accord, donc le prochain bloc de construction est JMP Query Builder. |
| |
Donc, une fois que vous avez une ou plusieurs tables dans la base de données, vous voulez faire une requête sur comme ici, j'ai pris les familles Big Class et Big Class à partir de la table d'exemple JMP |
| |
répertoire et utilisez JMP Query Builder comme |
| |
ici sur les tables. Générateur de requêtes JMP. |
| |
JMP voit ces tables ouvertes |
| |
et il y en a aussi un dans le champ primaire, et je peux ajouter une table secondaire comme celle-ci, et JMP crée alors automatiquement une jointure entre les deux tables. Alors, comment ils sont unis. Et vous pouvez modifier cette jointure |
| |
comme ça. |
| |
Vous verrez les détails ici. |
| |
Et puis vous pouvez continuer à créer la requête |
| |
comme ça. Vous avez les deux tableaux ici disponibles. |
| |
Ici, vous pouvez également modifier à nouveau la jointure |
| |
Et peut-être que vous voulez tout ajouter |
| |
Colonnes, |
| |
comme ça. |
| |
Et peut-être que tu veux mettre un filtre, |
| |
comme ça. |
| |
Et exécutez la requête. Puis toi encore |
| |
obtenir cette table de résultats avec les scripts du |
| |
exemples de tableaux dont nous n'avons pas besoin ici. |
| |
Je les supprime. Et ce sont les scripts, les scripts et les variables écrits par JMP Query Builder |
| |
comme je l'ai utilisé avant. Et encore une fois, ici vous pouvez |
| |
modifiez cette requête. Le script de la requête est enregistré ici dans cette table de résultats, comme nous l'avons défini ici auparavant. |
| |
Voilà donc comment fonctionne JMP Query Builder. |
| |
Et comme mentionné précédemment, cela fonctionne de la même manière sur les tables de base de données que sur les exemples de tables JMP. |
| |
Le bâtiment suivant ... J'ai également mis ici quelques scripts et vous pouvez toujours passer de Visual Query Builder |
| |
à un SQL personnalisé |
| |
mettre en doute. Donc cela fonctionne ici. Un autre menu triangle rouge. |
| |
Convertissez en SQL personnalisé, et ce que vous avez défini ici visuellement, |
| |
vous pouvez définir ici dans une requête SQL texte. |
| |
Vous pouvez l'exécuter. |
| |
Et en regardant ici cette requête ou en appuyant sur le bouton Modifier la requête, |
| |
vous verrez la requête de texte. Donc ce n'est qu'une façon, |
| |
conversion d'une requête visuelle en requête SQL personnalisée. |
| |
Alors laisse moi juste ranger |
| |
des tables. D'accord. |
| |
Le bloc de construction suivant consiste à obtenir des données de la base de données et vous avez besoin d'une connexion ODBC à ces sources de données. |
| |
Et généralement, les sources de données ODBC et les pilotes sont configurés par votre administration informatique. Donc sous Windows, vous pouvez trouver |
| |
ces connexions sous l'administrateur de source de données ODBC. |
| |
Et gardez à l'esprit que le bit-ness des sources de la base de données doit correspondre à JMP. Donc, dans ce cas, j'ai une application JMP 64 bits et j'ai donc besoin de pilotes 64 bits |
| |
Et les sources d'utilisateurs, vous pouvez configurer vous-même. |
| |
Et les DSN système sont configurés par l'administrateur, et les pilotes pour différents types de bases de données sont également définis par l'administrateur. |
| |
En cas de dépannage, vous pouvez utiliser cet onglet pour le traçage |
| |
où la requête est allée et quel peut être le problème. |
| |
Et un conseil de mon côté serait de vérifier si la connexion fonctionne correctement à partir de ces sources de données. Ainsi, si vous appuyez sur Configurer et sur l'administrateur de la source de données, vous pouvez entendre pour une certaine source tester la connexion après avoir fourni vos informations d'identification. |
| |
Et si tout va bien, alors le système vous dit que |
| |
la connexion a réussi. |
| |
Ce n'est pas à Windows que la requête ne fonctionne pas. |
| |
Et aussi d'autres détails, vous pouvez trouver dans le manuel JMP dans la documentation. Par exemple Utilisation de JMP, chapitre trois, vous pouvez le trouver ici dans le |
| |
Menu d'aide |
| |
et la bibliothèque de documentation JMP. Et là, il est bien documenté comment utiliser tous ces outils. |
| |
D'accord, il y a donc dans le script et JSL, dans le langage de script, trois façons de script ces requêtes de base de données SQL. La première est une nouvelle requête SQL, comme nous l'avons déjà utilisée auparavant. Il se trouve donc ici dans le menu JMP sous Table, JMP Query Builder pour les tables JMP. |
| |
Ou pour la base de données, vous pouvez la trouver ici sous Database Query Builder. |
| |
Et puis New SQL Query est la commande la plus puissante de toutes. Ainsi, il génère un nouvel objet de requête, vous pouvez l'enregistrer en tant que fichier de requête JMP. Il peut générer directement une table de données et fournit très bien l'origine des données, comme nous l'avons vu auparavant avec le script de modification et de mise à jour de la source. |
| |
Une autre commande dans JSL pour interroger les données de la base de données est la commande open database. Vous trouverez également la documentation de toutes ces commandes dans l'index de script. Comme ici, |
| |
si je tape |
| |
ouvert |
| |
base de données, |
| |
vous pouvez trouver ici comment cela fonctionne pour toutes les commandes. |
| |
Et une troisième façon de se connecter à la base de données et de poser des requêtes est la connexion à la base de données. |
| |
Et il faut trois étapes. Le premier est de créer une connexion à la base de données. La seconde consiste à placer vos requêtes, une ou plusieurs, dans la base de données. Et pour finaliser, vous devez fermer la connexion à la base de données. |
| |
Et enfin, si vous avez écrit de jolis scripts. |
| |
Vous devriez le rendre accessible à vous, ou peut-être à vos collègues, et il y a au moins deux façons. La première consiste donc à le mettre dans un complément afin que vous puissiez le fournir facilement à d'autres. Et l'autre possibilité est de le mettre dans un menu personnalisé, comme je l'ai fait ici. |
| |
Et tu peux le trouver |
| |
dans le menu, puis ici comme ça. Il y a deux compléments installés sur mon système. |
| |
Et voici mon personnel |
| |
menu personnalisé. |
| |
Alors disons ... nous avons terminé les blocs de construction. Passons aux exemples. |
| |
Et le premier exemple consiste à utiliser un script de table pour enregistrer la disposition de la table et la requête. |
| |
Cela peut donc ressembler à ceci. Si vous avez une table de données qui vient |
| |
à partir de la base de données et vous y mettez des scripts pour un joli graphique également, |
| |
vous voudrez peut-être l'utiliser tous les jours. Et il y a une belle possibilité ici |
| |
pour dire, copier le script de table sans données. |
| |
Et ce script, vous pouvez ensuite utiliser. |
| |
Je voudrais faire un nouveau script. Pardon. |
| |
Et collez-le dans la fenêtre de script. |
| |
Et voici cette nouvelle table en appuyant simplement sur le bouton Exécuter le script. |
| |
Et ça vient comme ???, sans données. Et vous pouvez enregistrer ce script, par exemple, dans votre menu et pour obtenir les données, il peut s'agir d'une énorme quantité de données. Vous pouvez simplement appuyer sur le bouton Mettre à jour à partir de la base de données et la table se remplit de toutes les données de la base de données peut-être ou ailleurs. |
| |
Donc c'est une belle possibilité |
| |
utiliser simplement le script |
| |
pour obtenir les données de la base de données. |
| |
Le deuxième exemple |
| |
consiste à utiliser une requête depuis l'intérieur d'une table. |
| |
Alors comme ça. Si vous disposez d'une table de données et que vous souhaitez interroger des données supplémentaires, en fonction du contenu de votre table actuelle. |
| |
Alors je vais le montrer. |
| |
Je supprime quelques lignes. |
| |
Et avec ces trois noms, je veux aller dans une table différente pour récupérer des données. |
| |
Et c'est fait par ce script. |
| |
Et ici, vous pouvez voir à partir de ce tableau, j'ai obtenu les noms et fait une requête |
| |
pour interroger les données d'une autre table des grandes familles de classe. |
| |
Et comment ça marche? |
| |
Vous pouvez le trouver dans ce script. |
| |
C'est assez court. Ici, les noms sont tirés de la première requête de table telle que définie, comme ici. |
| |
Les noms sont substitués dans la requête. |
| |
Et ici, la requête est placée dans la table Familles de grande classe. |
| |
D'accord, je dois aussi fermer cette table. |
| |
Celui-ci est un script de requête personnalisé avec une interface utilisateur graphique. Donc, si vous avez, par exemple, une grande table de données sur la base de données et que vous en avez souvent besoin de petites quantités, |
| |
vous pouvez, bien sûr, extraire toutes les données, mais il est peut-être plus flexible et efficace d'obtenir des données bien filtrées. Donc ça marche comme ça. |
| |
une table pour filtrer les données et une table avec toutes les colonnes de la table Big Data. Et ici, nous pouvons filtrer graphiquement. Disons femme et âge, donc je n'ai pris que deux colonnes pour filtrer, |
| |
comme ça, 12 et 13 ans. |
| |
Et je veux peut-être avoir toutes les colonnes ou supprimer une seule colonne. |
| |
Je l'interroge |
| |
et ici obtenez le résultat approprié avec ces restrictions. Et vous pouvez, comme vous pouvez le voir ici, et le script source ou dans le SQL, |
| |
les restrictions sont ici |
| |
à partir de l'interface utilisateur graphique définie. |
| |
Et comment fait |
| |
Le travail de script fonctionne-t-il? C'est un peu |
| |
plus complexe, bien sûr. Il y a donc la requête de filtrage. |
| |
La requête des colonnes. |
| |
Voici un script, une fonction qui convertit le |
| |
conditions de filtre de données dans une condition SQL. |
| |
Il s'agit de la partie GUI, interface utilisateur graphique. |
| |
Et ici, enfin, les résultats de l'interface utilisateur graphique sont évalués et placés dans ce script personnalisé. |
| |
L'exemple suivant est une requête en deux étapes. Supposons donc que vous deviez d'abord interroger certains ID de lot. |
| |
Et pour prendre ces ID dans une autre requête, peut-être dans une autre table de données pour obtenir des données supplémentaires, |
| |
vous pouvez le faire comme ça. Donc, ici, j'ai pris la table de données Big Class comme filtre. Alors je n'ai filtré que le mâle |
| |
et |
| |
élève de moins de 13 ans. |
| |
Et j'ai pris ces noms pour interroger les grandes familles de classe, toutes les lignes, comme vous pouvez le voir ici. |
| |
Et |
| |
les deux tables sont connectées via une jointure virtuelle, comme vous pouvez le voir ici. |
| |
Alors |
| |
cette table fait référence via le nom à l'autre table à la table de filtrage. Et je peux utiliser |
| |
les colonnes du tableau des filtres ici dans ce tableau comme si elles étaient |
| |
dans ce tableau. |
| |
C'est donc une bonne façon d'avoir plusieurs tables et d'utiliser le contenu dans une seule table. |
| |
Et le dernier exemple est |
| |
comment exécuter deux ou plusieurs requêtes en arrière-plan en parallèle. Je n'ai donc aucun exemple ici. Il est discuté dans la communauté JMP. Et si vous êtes intéressé, vous pouvez y jeter un œil. |
| |
Alors maintenant, j'ai fini avec mes exemples et les scripts du journal et du matériel de présentation sont disponibles en ligne. |
| |
Merci à la communauté pour ces merveilleuses discussions, et merci aux développeurs JMP pour la construction et la maintenance de ce formidable logiciel. Et enfin, merci pour votre attention. |