Lautsprecher
|
Transkript
|
| Georg Raming (Siltronic AG) |
Hallo zusammen. |
| |
Heute möchte ich über Strategien und Beispiele für die Datenerfassung aus verteilten und komplexen Quellen sprechen. |
| |
Mein Name ist Georg Raming, mein Job ist die Prozessentwicklung von ??? gewachsene Einkristalle bei Siltronic. Ich habe einige Erfahrungen mit statistischen Auswertungen und Prozessen |
| |
und Produktdaten und statistische Bildung. Ich bin auch für die JMP-Software bei Siltronic und die Schulungsaktivitäten für einige hundert Benutzer verantwortlich. |
| |
Siltronic ist einer der weltweit führenden Hersteller von hochspezialisierten hyperreinen Siliziumwafern. |
| |
Einige technische Hinweise. Ich arbeite hier in dieser Präsentation mit Datentabellen anstelle von Datenbanken, aber die hier gezeigten Konzepte werden ursprünglich verwendet, um Daten aus relationalen Datenbanken über eine ODBC-Verbindung abzurufen. |
| |
Der JMP Query Builder funktioniert auf ähnliche Weise für JMP-Datentabellen und für Datenbanktabellen. |
| |
Was ist das Ziel der heutigen Präsentation? Es werden einige Möglichkeiten festgelegt, wie Daten auf einfache und effiziente Weise aus der Datenbank in Ihr JMP oder in eine JMP-Tabelle abgerufen werden können. |
| |
Lassen Sie uns zuerst über die Bausteine sprechen. |
| |
Man kann also eine JMP-Datentabelle sein. |
| |
Wenn Sie also eine Datentabelle aus einer Datenbankabfrage generiert haben, sieht diese möglicherweise so aus. Also habe ich hier die berühmte Beispieltabelle von JMP, Big Class, genommen und die Daten über JMP Query Builder abgefragt. Ich habe das gesamte Skript gelöscht, das mit der Tabelle geliefert wird. |
| |
Und du wirst finden |
| |
für diese Datentabelle, wenn Sie sie mit JMP Query Builder abfragen, mehrere Skripte und Tabellenvariablen. |
| |
Innerhalb dieser Variablen können Sie also die SQL sehen. Die Definition der Datentabelle wird also aus der Tabelle oder Datenbank gezogen. |
| |
Und Sie haben diese Skripte, ein Quellenskript, das einfach ist |
| |
erhält eine weitere Kopie der ursprünglichen Datentabelle wie diese. Und hier können Sie sehen, dass sich auch die ursprünglichen Skripte dort befinden, aber es gibt wieder diese Skripte aus dem JMP Query Builder. |
| |
Es gibt auch ein Änderungsabfrageskript, mit dem Sie diese Abfrage in der JMP-Datentabelle bearbeiten und auch ausführen können. |
| |
Und es gibt eine Abfrage für die Aktualisierung von der Datenbank. Wenn Sie also die Daten in Ihrer Datentabelle ändern |
| |
Wenn die Datentabelle neue Daten enthält, können Sie die Daten einfach aktualisieren, indem Sie auf diese Schaltfläche klicken. |
| |
So was. Auch hier sind die Skripte wieder aus der Beispieltabelle gekommen. |
| |
Okay, der nächste Baustein ist JMP Query Builder. |
| |
Wenn Sie also eine oder mehrere Tabellen in der Datenbank haben und eine Abfrage wie hier durchführen möchten, habe ich Big Class- und Big Class-Familien aus der JMP-Beispieltabelle entnommen |
| |
Verzeichnis und verwenden Sie den JMP Query Builder wie |
| |
hier auf den Tischen. JMP Query Builder. |
| |
JMP sieht diese offenen Tabellen |
| |
und es gibt auch eine im primären Feld, und ich kann eine sekundäre Tabelle wie diese hinzufügen, und JMP erstellt dann automatisch einen Join zwischen beiden Tabellen. Also, wie sie verbunden sind. Und Sie können diesen Join bearbeiten |
| |
so was. |
| |
Sie sehen die Details hier. |
| |
Anschließend können Sie die Abfrage erstellen |
| |
so was. Sie haben hier beide Tabellen zur Verfügung. |
| |
Hier können Sie auch den Join erneut bearbeiten |
| |
Und vielleicht möchten Sie alles hinzufügen |
| |
Säulen, |
| |
so was. |
| |
Und vielleicht möchten Sie einen Filter setzen, |
| |
so was. |
| |
Und führen Sie die Abfrage aus. Dann du wieder |
| |
Holen Sie sich diese Ergebnistabelle mit den Skripten aus dem |
| |
Beispieltabellen brauchen wir hier nicht. |
| |
Ich lösche sie. Und dies sind die Skripte, die Skripte und Variablen, die von JMP Query Builder geschrieben wurden |
| |
wie ich es vorher benutzt habe. Und wieder hier können Sie |
| |
Bearbeiten Sie diese Abfrage. Das Skript für die Abfrage wird hier in dieser Ergebnistabelle gespeichert, wie wir es hier zuvor definiert haben. |
| |
So funktioniert der JMP Query Builder. |
| |
Und wie bereits erwähnt, funktioniert es bei Datenbanktabellen genauso wie hier bei JMP-Beispieltabellen. |
| |
Das nächste Gebäude ... Ich habe hier auch einige Skripte eingefügt, und Sie können jederzeit vom visuellen Abfrage-Generator wechseln |
| |
zu einem benutzerdefinierten SQL |
| |
Abfrage. Das funktioniert hier also. Ein weiteres rotes Dreieck-Menü. |
| |
Konvertieren Sie in benutzerdefiniertes SQL und was Sie hier visuell definiert haben. |
| |
Sie können hier in einer Text-SQL-Abfrage definieren. |
| |
Sie können es ausführen. |
| |
Wenn Sie sich diese Abfrage ansehen oder auf die Schaltfläche "Abfrage ändern" klicken, |
| |
Sie sehen die Textabfrage. Das ist also nur ein Weg, |
| |
Konvertieren von einer visuellen Abfrage in eine benutzerdefinierte SQL-Abfrage. |
| |
Also lass mich einfach aufräumen |
| |
manche Tische. Okay. |
| |
Der nächste Baustein besteht darin, Daten aus der Datenbank abzurufen, und Sie benötigen eine ODBC-Verbindung zu diesen Datenquellen. |
| |
In der Regel werden die ODBC-Datenquellen und -Treiber von Ihrer IT-Administration eingerichtet. So finden Sie unter Windows |
| |
diese Verbindungen unter dem ODBC-Datenquellenadministrator. |
| |
Und bitte denken Sie daran, dass die Bit-Ness der Datenbankquellen zu JMP passen sollte. In diesem Fall habe ich also eine 64-Bit-JMP-Anwendung und benötige daher 64-Bit-Treiber |
| |
Und die Benutzerquellen können Sie selbst einrichten. |
| |
System-DSNs werden vom Administrator eingerichtet, und Treiber für verschiedene Datenbanktypen werden vom Administrator festgelegt. |
| |
Im Falle einer Fehlerbehebung können Sie diese Registerkarte zur Ablaufverfolgung verwenden |
| |
Wohin ging die Abfrage und was könnte das Problem sein. |
| |
Ein Tipp von meiner Seite wäre, zu überprüfen, ob die Verbindung über diese Datenquellen ordnungsgemäß funktioniert. Wenn Sie also Konfigurieren und der Datenquellenadministrator drücken, können Sie für eine bestimmte Quelle die Verbindung testen hören, nachdem Sie Ihre Anmeldeinformationen angegeben haben. |
| |
Und wenn alles in Ordnung ist, sagt Ihnen das System das |
| |
Die Verbindung war erfolgreich. |
| |
Es liegt nicht an Windows, dass die Abfrage nicht funktioniert. |
| |
Weitere Details finden Sie im JMP-Handbuch in der Dokumentation. Wenn Sie beispielsweise JMP verwenden, finden Sie es in Kapitel 3 hier in der |
| |
Hilfemenü |
| |
und die JMP-Dokumentationsbibliothek. Und dort ist gut dokumentiert, wie man all diese Werkzeuge benutzt. |
| |
Okay, es gibt dann in Scripting und JSL in der Skriptsprache drei Möglichkeiten, diese SQL-Datenbankabfragen zu skripten. Die erste ist eine neue SQL-Abfrage, wie wir sie bereits verwendet haben. Es befindet sich also hier im JMP-Menü unter Tabelle, JMP Query Builder für JMP-Tabellen. |
| |
Oder für die Datenbank finden Sie sie hier unter Datenbank Query Builder. |
| |
Und dann ist New SQL Query der mächtigste Befehl von allen. Damit ein neues Abfrageobjekt generiert wird, können Sie sich selbst als JMP-Abfragedatei speichern. Es kann eine Datentabelle direkt generieren und liefert einen sehr guten Ursprung der Daten, wie wir zuvor mit dem Quell-Änderungs- und Aktualisierungsskript gesehen haben. |
| |
Ein weiterer Befehl in JSL zum Abfragen von Daten aus der Datenbank ist der Befehl open database. Die Dokumentation all dieser Befehle finden Sie auch im Skriptindex. Wie hier, |
| |
wenn ich tippe |
| |
öffnen |
| |
Datenbank, |
| |
Hier erfahren Sie, wie es für alle Befehle funktioniert. |
| |
Eine dritte Möglichkeit, eine Verbindung zur Datenbank herzustellen und einige Abfragen zu stellen, ist die Datenbankverbindung. |
| |
Und es braucht drei Schritte. Der erste ist das Erstellen einer Datenbankverbindung. Die zweite besteht darin, Ihre oder mehrere Abfragen an die Datenbank zu senden. Zum Abschluss müssen Sie die Datenbankverbindung schließen. |
| |
Und zum Schluss, wenn Sie ein paar nette Skripte geschrieben haben. |
| |
Sie sollten es Ihnen oder vielleicht Kollegen zugänglich machen, und es gibt mindestens zwei Möglichkeiten. Sie müssen es also in ein Add-In einfügen, damit Sie es auch anderen problemlos zur Verfügung stellen können. Und die andere Möglichkeit ist, es in ein benutzerdefiniertes Menü zu setzen, wie ich es hier getan habe. |
| |
Und du kannst es finden |
| |
im Menü dann hier so. In meinem System sind zwei Add-Ins installiert. |
| |
Und hier ist meine persönliche |
| |
benutzerdefiniertes Menü. |
| |
Also lasst uns ... wir haben die Bausteine fertiggestellt. Gehen wir zu den Beispielen. |
| |
Das erste Beispiel ist die Verwendung eines Tabellenskripts zum Speichern des Tabellenlayouts und der Abfrage. |
| |
So kann es aussehen. Wenn Sie eine Datentabelle haben, die kommt |
| |
aus der Datenbank und Sie setzen einige Skripte in sie für schöne Grafik auch, |
| |
Vielleicht möchten Sie es jeden Tag verwenden. Und hier gibt es eine schöne Möglichkeit |
| |
Kopieren Sie das Tabellenskript ohne Daten. |
| |
Und dieses Skript können Sie dann verwenden. |
| |
Ich möchte ein neues Skript erstellen. Es tut uns leid. |
| |
Und fügen Sie es in das Skriptfenster ein. |
| |
Und hier kommt diese neue Tabelle, indem Sie einfach auf die Schaltfläche Skript ausführen klicken. |
| |
Und es kommt als ???, ohne Daten. Sie können dieses Skript beispielsweise in Ihrem Menü speichern. Um die Daten abzurufen, kann es sich um eine große Datenmenge handeln. Sie können einfach auf die Schaltfläche Von Datenbank aktualisieren klicken, und die Tabelle wird mit allen Daten aus der Datenbank oder einem anderen Ort gefüllt. |
| |
Das ist also eine schöne Möglichkeit |
| |
um einfach das Skript zu verwenden |
| |
um die Daten aus der Datenbank zu erhalten. |
| |
Das zweite Beispiel |
| |
besteht darin, eine Abfrage aus einer Tabelle heraus zu verwenden. |
| |
Also so. Wenn Sie eine Datentabelle haben und einige zusätzliche Daten abfragen möchten, abhängig vom Inhalt Ihrer aktuellen Tabelle. |
| |
Also werde ich es zeigen. |
| |
Ich lösche einige Zeilen. |
| |
Und mit diesen drei Namen möchte ich zu einer anderen Tabelle gehen, um einige Daten abzurufen. |
| |
Und das macht dieses Skript. |
| |
Und hier können Sie aus dieser Tabelle sehen, ich habe die Namen bekommen und eine Abfrage gemacht |
| |
um Daten aus einer anderen Tabelle von Big Class Families abzufragen. |
| |
Und wie funktioniert es? |
| |
Sie finden es in diesem Skript. |
| |
Es ist ziemlich kurz. Hier werden die Namen wie hier aus der ersten definierten Tabellenabfrage übernommen. |
| |
Die Namen werden in die Abfrage eingesetzt. |
| |
Und hier wird die Abfrage in die Tabelle Big Class Families gestellt. |
| |
Okay, ich muss diesen Tisch auch schließen. |
| |
Dies ist ein benutzerdefiniertes Abfrageskript mit grafischer Benutzeroberfläche. Wenn Sie beispielsweise eine große Datentabelle in der Datenbank haben und häufig kleine Mengen davon benötigen, |
| |
Sie können natürlich alle Daten abrufen, aber vielleicht ist es flexibler und effizienter, gut gefilterte Daten zu erhalten. So funktioniert es also. |
| |
eine Tabelle zum Filtern der Daten und eine Tabelle mit allen Spalten der Big-Data-Tabelle. Und hier können wir grafisch filtern. Nehmen wir an, weiblich und alt, also habe ich nur zwei Spalten zum Filtern verwendet. |
| |
so, 12 und 13 Jahre alt. |
| |
Und ich möchte vielleicht alle Spalten haben oder nur eine Spalte entfernen. |
| |
Ich frage es ab |
| |
und hier erhalten Sie das richtige Ergebnis mit diesen Einschränkungen. Und Sie können, wie Sie hier sehen können, und das Quellenskript oder in der SQL, |
| |
Die Einschränkungen sind hier |
| |
über die grafische Benutzeroberfläche definiert. |
| |
Und wie geht das? |
| |
Die Scripting-Arbeit funktioniert? Es ist ein bisschen |
| |
natürlich komplexer. Es gibt also die Filterabfrage. |
| |
Die Spaltenabfrage. |
| |
Hier ist ein Skript, eine Funktion, die das konvertiert |
| |
Datenfilterbedingungen in eine SQL-Bedingung. |
| |
Dies ist der GUI-Teil, grafische Benutzeroberfläche. |
| |
Und hier werden schließlich die Ergebnisse der grafischen Benutzeroberfläche ausgewertet und in dieses benutzerdefinierte Skript eingefügt. |
| |
Das nächste Beispiel ist eine zweistufige Abfrage. Nehmen wir also an, Sie müssen zuerst einige Batch-IDs abfragen. |
| |
Und um diese IDs in eine andere Abfrage zu übernehmen, möglicherweise in eine andere Datentabelle, um zusätzliche Daten zu erhalten, |
| |
Sie können es so machen. Also habe ich hier die Big Class-Datentabelle als Filter genommen. Also habe ich nur das Männchen gefiltert |
| |
und |
| |
gleich oder kleiner als 13 Jahre alter Schüler. |
| |
Und diese Namen wurden verwendet, um in großen Klassenfamilien alle Zeilen abzufragen, wie Sie hier sehen können. |
| |
Und |
| |
Beide Tabellen sind über einen virtuellen Join verbunden, wie Sie hier sehen können. |
| |
So |
| |
Diese Tabelle verweist über den Namen auf die andere Tabelle auf die Filtertabelle. Und ich kann verwenden |
| |
die Spalten der Filtertabelle hier in dieser Tabelle, als ob sie wären |
| |
in dieser Tabelle. |
| |
Dies ist also eine gute Möglichkeit, mehrere Tabellen zu haben und den Inhalt in einer Tabelle zu verwenden. |
| |
Und das letzte Beispiel ist |
| |
So führen Sie zwei oder mehrere Abfragen parallel im Hintergrund aus. Ich habe hier also kein Beispiel. Es wird in der JMP-Community diskutiert. Und wenn Sie interessiert sind, können Sie einen Blick darauf werfen. |
| |
Jetzt bin ich mit meinen Beispielen fertig und die Skripte für Tagebuch und Präsentationsmaterial sind online verfügbar. |
| |
Vielen Dank an die Community für die wunderbaren Diskussionen und an die JMP-Entwickler für die Erstellung und Wartung dieser großartigen Software. Und zum Schluss vielen Dank für Ihre Aufmerksamkeit. |