Wie kann ich eine große Datentabelle basierend auf einer Spaltenebene abfragen und Spalten zurückgeben, deren Name diese Ebene enthält?Wir möchten eine Anwendung zur Qualitätsüberwachung erstellen, die in Dutzenden von Produktionsanlagen eingesetzt werden kann (und die schließlich in JMP Live veröffentlicht wird).
Für jede Anlage verfügen wir über eine sehr hohe und breite Datentabelle (nennen wir sie „dtBigBoy“, <1000 Spalten, 10.000–100.000 Zeilen), die aus einem Prozessdatenarchiv aktualisiert wird, das nicht direkt abgefragt werden kann (wir erfassen alle Daten zwischen den Start-/Stopp-Zeitstempeln und verknüpfen die neuen Daten mit der vorhandenen Tabelle). Eine der Spalten „Grade“ enthält den Namen des aktuell hergestellten Produkts (für diese Zeile). Die Spaltenbenennung lautet: „Grade.Eigenschaft.#“. Pro Grad gibt es mindestens eine Spalte „Grade.Eigenschaft.#“. Ein Anwendungsfall ist, dass der Benutzer an einem bestimmten Grad (z. B. ABCD001) interessiert ist und alle Eigenschaftsdaten sehen möchte.
- Was ist der effizienteste Weg, dies zu tun? Verwenden Sie einen lokalen Datenfilter auf dtBigBoy und fahren Sie mit Kontrolldiagrammen usw. fort?
ODER nur Zeilen auswählen, in denen :Grade == Chosen.Grade und Spaltennamen Chosen.Grade enthalten, und eine Teilmenge erstellen?
- Wie erstellt man ein Auswahldialogfeld, das die Spalte „Note“ liest und die Stufen in „Note“ als Auswahlmöglichkeiten präsentiert? Die Benutzerauswahl wird in der Variable „Chosen.Grade“ gespeichert.
- Wie wähle ich Spalten aus, deren Name „Chosen.Grade“ enthält?
- Ist es effizienter, 1–3 auszuführen ODER JMP Table Query zu verwenden, um die Zeilen und Spalten zu erhalten, die wir von dtBigBoy benötigen?
Vielen Dank im Voraus aus dem feuchten und dampfenden Kuala Lumpur, Malaysia!
Automatisierung und SkriptingDatenzugriffBetreff: Wie kann ich eine große Datentabelle basierend auf einer Spaltenebene abfragen und Spalten zurückgeben, deren Name diese Ebene enthält?Ich bin mir nicht sicher, aber ich denke, der lokale Datenfilter wird einer verknüpften Teilmenge ähneln; die gefilterte Tabelle hängt davon ab, ob die Tabelle geöffnet bleibt. 1e3 Zeilen * 1e5 Spalten * 8 Bytes/Zahl liegen unter 1 GB und sollten in einen Speicher von über 16 GB passen. Verknüpfte Teilmengen sollten den Speicherbedarf nicht wesentlich erhöhen.
Sie können die Übersichtsplattform interaktiv ausprobieren, um eine Übersichtstabelle der Notenspalte zu erhalten. Das Skript können Sie dort herunterladen.
Sie können die Teilmengenplattform auf ähnliche Weise skripten. Sie schreiben eine Schleife, um die Spalten für die Teilmenge auszuwählen.
Ich glaube nicht, dass jemand die Antwort auf die letzte Frage kennt, ohne beides auszuprobieren. Ich denke, beides könnte schnell genug sein.
Betreff: Wie kann ich eine große Datentabelle basierend auf einer Spaltenebene abfragen und Spalten zurückgeben, deren Name diese Ebene enthält?Je nach Diagrammtyp sollten die Daten nicht zu umfangreich sein. Zeichnen Sie alle 1000 Spalten gleichzeitig? Könnte der Benutzer so viele Daten auf einmal verarbeiten? Ich würde mit dem lokalen Datenfilter beginnen (ggf. bedingte Filter verwenden) und dann gegebenenfalls mit dem Skripting fortfahren (funktioniert höchstwahrscheinlich nicht in JMP Live). Das Ändern der Spalten ist wahrscheinlich der schwierigste Teil, wenn Sie sich nicht ausschließlich auf Spaltenumschalter verlassen können. Die Bereitstellung einfacher Beispieldaten mit zusätzlichen Erläuterungen könnte hilfreich sein.
Als ich über 4 Millionen Zeilen verarbeiten musste, musste ich auf Skripting mit lokalem Datenfilter zurückgreifen. Das lag allerdings nicht an der Langsamkeit der Einzelanzeige, sondern eher an der umständlichen Aktualisierung des lokalen Datenfilters: Bei jeder Änderung wird sofort aktualisiert, und ich kann nicht erzwingen, dass nur bei bestimmten Änderungen aktualisiert wird. Daher habe ich die Übersichtstabelle mit dem lokalen Datenfilter mit Änderungsfunktion verwendet und die angezeigten Daten darauf basierend aktualisiert. Alternativ können Sie einen „vollständig“ benutzerdefinierten Filter mit Listenfeldern und verknüpften Teilmengen verwenden.
Betreff: Wie kann ich eine große Datentabelle basierend auf einer Spaltenebene abfragen und Spalten zurückgeben, deren Name diese Ebene enthält?Craige: Danke für die Informationen zum Speicher und die Vorschläge! Wir werden sie ausprobieren.
Betreff: Wie kann ich eine große Datentabelle basierend auf einer Spaltenebene abfragen und Spalten zurückgeben, deren Name diese Ebene enthält?Jarmo:
Danke für die Vorschläge.
Nein, wir zeichnen nicht alle Spalten gleichzeitig. Wir möchten ein IMR-Diagramm pro Klasse|Eigenschaft erstellen. Da jede Klasse und Eigenschaft unterschiedliche Spezifikationen hat, müssen wir das dt nach Klasse|Eigenschaft aufteilen. Dies führt zu vielen spärlich besetzten Spalten. Siehe unten einen Ausschnitt für nur eine Eigenschaft für 12 Klassen. Der Control Chart Builder mag die vielen leeren Zeilen nicht.
Snippet of datatableSnippet of datatableAusschnitt der Datentabelle
Betreff: Wie kann ich eine große Datentabelle basierend auf einer Spaltenebene abfragen und Spalten zurückgeben, deren Name diese Ebene enthält?Die Situation hat sich seit 2021 möglicherweise geändert, aber in diesem Beitrag werden einige Optionen bezüglich fehlender Werte im Kontrolldiagramm-Generator erörtert . Wie zeichnet man Kontrolldiagramme, die fehlende Daten ignorieren? (und natürlich gibt es über Skripting viele verschiedene Optionen).
Bearbeiten: Qualitäts- und Prozessmethoden > Kontrollkarten-Generator > Ausgeschlossene und ausgeblendete Stichproben im Kontrollkarten-Generator