| Oratore |
Trascrizione |
| Georg Raming (Siltronic AG) |
Ciao a tutti. |
| |
Oggi voglio parlare di strategie ed esempi per l'acquisizione di dati da fonti distribuite e complesse. |
| |
Mi chiamo Georg Raming e il mio lavoro è lo sviluppo di processi di cristalli singoli coltivati presso Siltronic. Ho una certa esperienza nella valutazione statistica e nei processi. |
| |
e dati di prodotto e formazione statistica. Sono responsabile anche del software JMP presso Siltronic e delle attività di formazione per alcune centinaia di utenti. |
| |
Siltronic è uno dei principali produttori mondiali di wafer di silicio iperpuro altamente specializzati. |
| |
Alcuni suggerimenti tecnici. In questa presentazione, sto lavorando con tabelle di dati anziché con database, ma i concetti mostrati qui sono originariamente utilizzati per ottenere dati da database relazionali tramite connessione ODBC. |
| |
E JMP Query Builder funziona in modo simile per le tabelle dati JMP e per le tabelle del database. |
| |
Qual è l'obiettivo della presentazione di oggi? Definire alcuni metodi per importare dati da un database in modo semplice ed efficiente nel vostro JMP o in una tabella JMP. |
| |
Parliamo innanzitutto degli elementi costitutivi. |
| |
Quindi potrebbe trattarsi di una tabella dati JMP. |
| |
Quindi, se avete generato una tabella dati da una query di database, potrebbe apparire così. Ho preso la famosa tabella di esempio di JMP, Big Class, e ho interrogato i dati tramite JMP Query Builder. Ho eliminato tutto lo script fornito con la tabella. |
| |
E troverai |
| |
per questa tabella dati se la si interroga tramite JMP Query Builder, diversi script e variabili di tabella. |
| |
Quindi all'interno di quella variabile è possibile vedere il codice SQL. Quindi la definizione della tabella dati viene ricavata dalla tabella o dal database. |
| |
E hai questi script, uno script sorgente che semplicemente |
| |
Ottiene un'altra copia della tabella dati originale in questo modo. E qui potete vedere che ci sono anche gli script originali, ma ci sono anche questi script provenienti dal JMP Query Builder. |
| |
Esiste anche uno script di modifica della query che consente di modificare questa query sulla tabella dati JMP e di eseguirla. |
| |
E c'è una query per l'aggiornamento dal database. Quindi se modifichi i dati nella tua tabella dati |
| |
oppure se nella tabella dati sono presenti nuovi dati, è possibile semplicemente aggiornare i dati premendo questo pulsante. |
| |
Così. Anche qui gli script provengono nuovamente dalla tabella di esempio. |
| |
Bene, quindi il prossimo elemento costitutivo è JMP Query Builder. |
| |
Quindi, una volta che hai una o più tabelle nel database, vuoi fare una query come questa, ho preso Big Class e Big Class Families dalla tabella di esempio JMP |
| |
directory e utilizzare JMP Query Builder come |
| |
qui sulle tabelle. JMP Query Builder. |
| |
JMP vede queste tabelle aperte |
| |
E ce n'è anche uno nel campo primario, e posso aggiungere una tabella secondaria come questa, e JMP crea automaticamente un join tra le due tabelle. Ecco come vengono unite. E puoi modificare questo join. |
| |
così. |
| |
Qui troverete i dettagli. |
| |
E poi puoi continuare a costruire la query |
| |
in questo modo. Hai a disposizione entrambe le tabelle. |
| |
Qui puoi anche modificare nuovamente l'unione |
| |
E forse vuoi aggiungere tutto |
| |
colonne, |
| |
così. |
| |
E forse vuoi mettere un filtro, |
| |
così. |
| |
Ed esegui la query. Poi di nuovo |
| |
ottenere questa tabella dei risultati con gli script da |
| |
tabelle di esempio di cui non abbiamo bisogno qui. |
| |
Li elimino. E questi sono gli script, gli script e le variabili scritti da JMP Query Builder |
| |
come l'ho usato prima. E ancora, qui puoi |
| |
Modifica questa query. Lo script per la query viene salvato in questa tabella dei risultati, come abbiamo definito in precedenza. |
| |
Ecco come funziona JMP Query Builder. |
| |
Come accennato in precedenza, funziona allo stesso modo sulle tabelle del database e sulle tabelle di esempio JMP. |
| |
Il prossimo edificio...Ho anche messo qui alcuni script e puoi sempre passare da Visual Query Builder |
| |
a un SQL personalizzato |
| |
query. Quindi funziona qui. Un altro menu con il triangolo rosso. |
| |
Converti in SQL personalizzato e ciò che hai definito qui visivamente, |
| |
puoi definirlo qui in una query SQL di testo. |
| |
Puoi eseguirlo. |
| |
E quando si guarda questa query o si preme il pulsante Modifica query, |
| |
vedrai la query di testo. Quindi questo è solo un modo, |
| |
conversione da query visiva a query SQL personalizzata. |
| |
Quindi lasciami solo sistemare |
| |
alcuni tavoli. Okay. |
| |
Il passaggio successivo consiste nell'ottenere i dati dal database e per farlo è necessaria una connessione ODBC a tali origini dati. |
| |
Di solito, le origini dati e i driver ODBC vengono configurati dall'amministrazione IT. Quindi, in Windows, puoi trovare |
| |
queste connessioni sotto l'amministratore della sorgente dati ODBC. |
| |
E tieni presente che la bit-ness delle sorgenti del database deve essere compatibile con JMP. Quindi, in questo caso, ho un'applicazione JMP a 64 bit e quindi ho bisogno di driver a 64 bit. |
| |
E le fonti utente puoi configurarle tu stesso. |
| |
I DSN di sistema vengono impostati dall'amministratore, così come i driver per i diversi tipi di database. |
| |
In caso di risoluzione dei problemi, è possibile utilizzare questa scheda per il tracciamento |
| |
dove è andata a finire la query e quale potrebbe essere il problema. |
| |
Un consiglio da parte mia è di verificare se la connessione funziona correttamente da queste fonti dati. Quindi, se si preme "Configura" e l'amministratore della fonte dati, si può sentire un test di connessione per una determinata fonte dopo aver fornito le credenziali. |
| |
E se tutto va bene, allora il sistema ti dice che |
| |
la connessione è riuscita. |
| |
Non è colpa di Windows se la query non funziona. |
| |
E anche altri dettagli, puoi trovarli nel manuale JMP nella documentazione. Ad esempio, il capitolo tre di Utilizzo di JMP, puoi trovarlo qui nella |
| |
Menu di aiuto |
| |
e la libreria di documentazione JMP. Lì è ben documentato come utilizzare tutti questi strumenti. |
| |
Bene, quindi nello scripting e in JSL, nel linguaggio di scripting, ci sono tre modi per creare script per queste query di database SQL. Il primo è una nuova query SQL, come abbiamo già usato in precedenza. Si trova qui nel menu JMP, sotto Tabella, Generatore di query JMP per tabelle JMP. |
| |
Oppure, per il database, puoi trovarlo qui in Database Query Builder. |
| |
"Nuova query SQL" è il comando più potente di tutti. Genera un nuovo oggetto query, che può essere salvato come file di query JMP. Può generare direttamente una tabella dati e fornisce molto bene l'origine dei dati, come abbiamo visto in precedenza con gli script di modifica e aggiornamento dell'origine. |
| |
Un altro comando in JSL per interrogare i dati da un database è il comando "open database". Troverete la documentazione di tutti questi comandi anche nell'indice degli script. Ad esempio, qui: |
| |
se scrivo |
| |
aprire |
| |
banca dati, |
| |
qui puoi trovare come funziona per tutti i comandi. |
| |
Un terzo modo per connettersi al database e inserire delle query è la connessione al database. |
| |
E richiede tre passaggi. Il primo è creare una connessione al database. Il secondo è inviare le query, una o più, al database. E per concludere, è necessario chiudere la connessione al database. |
| |
E infine, se hai scritto delle belle sceneggiature. |
| |
Dovresti renderlo accessibile a te, o magari ai colleghi, e ci sono almeno due modi. Uno è inserirlo in un componente aggiuntivo in modo da poterlo condividere facilmente anche con altri. L'altra possibilità è inserirlo in un menu personalizzato, come ho fatto io qui. |
| |
E puoi trovarlo |
| |
nel menu, poi qui, in questo modo. Ci sono due componenti aggiuntivi installati nel mio sistema. |
| |
Ed ecco il mio personale |
| |
menù personalizzato. |
| |
Quindi... abbiamo completato i mattoni. Passiamo agli esempi. |
| |
Il primo esempio consiste nell'utilizzare uno script di tabella per salvare il layout della tabella e la query. |
| |
Quindi potrebbe apparire così. Se hai una tabella dati che viene |
| |
dal database e inserisci anche alcuni script per ottenere un bel grafico, |
| |
potresti volerlo usare ogni giorno. E qui c'è una bella possibilità |
| |
per dire, copiare lo script della tabella senza dati. |
| |
E questo script lo puoi usare. |
| |
Vorrei creare un nuovo script. Mi dispiace. |
| |
E incollalo nella finestra dello script. |
| |
Ed ecco che arriva la nuova tabella semplicemente premendo il pulsante Esegui script. |
| |
E si presenta come ???, senza dati. Puoi salvare questo script, ad esempio, nel tuo menu e ottenere i dati, che potrebbero essere una quantità enorme. Puoi semplicemente premere il pulsante Aggiorna dal database e la tabella si riempirà con tutti i dati, forse dal database o da qualche altra parte. |
| |
Quindi questa è una bella possibilità |
| |
per usare semplicemente lo script |
| |
per ottenere i dati dal database. |
| |
Il secondo esempio |
| |
consiste nell'utilizzare una query dall'interno di una tabella. |
| |
Ecco come. Se hai una tabella dati e vuoi interrogare alcuni dati aggiuntivi, a seconda del contenuto della tabella corrente. |
| |
Quindi lo mostrerò. |
| |
Elimino alcune righe. |
| |
E con questi tre nomi, voglio andare su una tabella diversa per recuperare alcuni dati. |
| |
E questo viene fatto tramite questo script. |
| |
E qui puoi vedere da questa tabella, ho preso i nomi e ho fatto una query |
| |
per interrogare i dati di un'altra tabella di Big Class Families. |
| |
E come funziona? |
| |
Lo puoi trovare in questo script. |
| |
È piuttosto breve. Qui, i nomi vengono presi dalla query della prima tabella, come definita, come qui. |
| |
I nomi vengono sostituiti nella query. |
| |
Ed ecco che la domanda viene posta al tavolo delle Grandi Famiglie. |
| |
Ok, devo chiudere anche questa tabella. |
| |
Questo è uno script di query personalizzato con interfaccia utente grafica. Quindi, se, ad esempio, si dispone di una grande tabella dati nel database e si hanno spesso bisogno di piccole quantità di dati, |
| |
Certo, puoi estrarre tutti i dati, ma forse è più flessibile ed efficiente ottenere dati ben filtrati. Quindi funziona così. |
| |
Una tabella per filtrare i dati e una tabella con tutte le colonne della tabella Big Data. E qui possiamo filtrare graficamente. Diciamo "femmina" ed "età", quindi ho preso solo due colonne da filtrare. |
| |
così, 12 e 13 anni. |
| |
E potrei voler avere tutte le colonne o rimuoverne solo una. |
| |
Lo interrogo |
| |
e qui ottieni il risultato corretto con queste restrizioni. E puoi, come puoi vedere qui, e nello script sorgente o nel SQL, |
| |
le restrizioni sono qui |
| |
dall'interfaccia utente grafica definita. |
| |
E come fa |
| |
Il lavoro di sceneggiatura funziona? È un po' |
| |
più complesso, ovviamente. Quindi c'è la query di filtro. |
| |
La query delle colonne. |
| |
Ecco uno script, una funzione che converte il |
| |
condizioni del filtro dati in una condizione SQL. |
| |
Questa è la parte GUI, l'interfaccia utente grafica. |
| |
E qui, infine, i risultati dell'interfaccia utente grafica vengono valutati e inseriti in questo script personalizzato. |
| |
Il prossimo esempio è una query in due passaggi. Supponiamo quindi di dover prima interrogare alcuni ID batch. |
| |
E per prendere questi ID in un'altra query, magari in un'altra tabella dati per ottenere dati aggiuntivi, |
| |
Puoi farlo in questo modo. Quindi qui ho preso la tabella dati Big Class come filtro. Quindi ho filtrato solo i dati maschili |
| |
E |
| |
alunno di età uguale o inferiore a 13 anni. |
| |
E ho preso questi nomi per effettuare una query sulle famiglie di grandi classi, tutte le righe, come puoi vedere qui. |
| |
E |
| |
entrambe le tabelle sono collegate tramite un join virtuale, come puoi vedere qui. |
| |
COSÌ |
| |
questa tabella fa riferimento tramite il nome all'altra tabella alla tabella filtro. E posso usare |
| |
le colonne della tabella dei filtri qui in questa tabella come se fossero |
| |
in questa tabella. |
| |
Questo è un buon modo per avere più tabelle e utilizzare il contenuto di una sola. |
| |
E l'ultimo esempio è |
| |
Come eseguire due o più query in background in parallelo. Quindi non ho esempi da proporre. Se ne parla nella community di JMP. E se siete interessati, potete dare un'occhiata a... |
| |
Ora ho terminato i miei esempi e gli script del diario e del materiale di presentazione sono disponibili online. |
| |
Grazie alla Community per le meravigliose discussioni e grazie agli sviluppatori di JMP per aver creato e mantenuto questo fantastico software. E infine, grazie per l'attenzione. |