| Oratore |
Trascrizione |
| Peter Hersh |
Bene, grazie per essere qui oggi. Hadley e io parleremo dell'accesso ai dati e di un modo per semplificarlo e renderlo un po' più semplice utilizzando il generatore di applicazioni JMP. |
| |
Ecco quindi una panoramica del flusso di lavoro analitico all'interno di JMP. Il primo passo di qualsiasi percorso analitico è accedere ai dati. |
| |
E spesso questo può essere un processo lungo e noioso e spesso viene trascurato come |
| |
Un processo cruciale che deve essere completato prima di poter apprendere dai propri dati. È necessario potervi accedere. Quindi Hadley e io vi mostreremo un paio di trucchi su come accedere ai dati da diverse fonti e, si spera, semplificare la situazione. |
| |
Quindi quello che mostreremo oggi è la creazione di un pulsante semplice, che è |
| |
in pratica si utilizza l'app builder all'interno di JMP per accedere ai dati esternamente, tramite una connessione OBDC o una webAPI. |
| |
Puoi applicarlo anche a file locali o a qualsiasi tipo di fonte dati a cui JMP possa accedere. E poi mostreremo anche come combinare le fonti. |
| |
e applicare filtri a più fonti diverse durante l'estrazione dei dati. Infine, concluderemo mostrando un'interfaccia su come inserire manualmente i dati, |
| |
ma rendiamo il processo un po' più semplice. E poi, alla fine, come possiamo distribuire tutto ciò che produciamo all'interno dell'organizzazione e renderlo un |
| |
componente aggiuntivo distribuibile che possiamo condividere. Quindi inizieremo con Hadley che ci mostrerà come connetterci tramite il driver ODBC. |
| Hadley Myers |
Sì. |
| |
Grazie mille, Pete. |
| |
Ciao a tutti quelli che stanno guardando questo video, ovunque siate. Quindi inizierò mostrandovi questa app creata con l'app builder e il suo funzionamento: si connette a un database. |
| |
Forse nel tuo sistema sono presenti diverse posizioni o server in cui sono archiviati i tuoi dati, quindi puoi selezionare quello appropriato. Questo ti permette di cercare e filtrare i tag. Quello che vedi qui è uno |
| |
Query SQL. Abbiamo consultato il database, ne abbiamo estratto alcuni tag e posso selezionare quelli appropriati. |
| |
Posso scegliere il periodo di tempo che mi interessa esaminare; in questo caso, il database risale a parecchio tempo fa. Eseguo quei dati e seleziono... |
| |
Sai, estraggo immediatamente i dati di cui ho bisogno. Abbiamo visto le persone lavorare con queste cose, le prendono e le mettono in un angolo. |
| |
del loro desktop, così, e ogni volta che hanno bisogno di dati dicono: "Oh, avrei dovuto prendere anche i 102". Nessun problema. Posso semplicemente andare a prenderli così. |
| |
Ecco il tipo di cosa che vi mostreremo come costruire oggi, e l'esempio che useremo è un po' più semplice di questo. |
| |
Puoi vederlo qui. Quindi seleziona semplicemente il periodo di tempo, scegli qualsiasi cosa |
| |
Uno dei tag che vorresti cercare, in questo caso è un metodo di analisi. Si tratta di un filtro su una delle colonne categoriali, per poi estrarre i dati. Quindi, quello più complesso che hai visto è solo un'estensione per aggiungere funzionalità a questo. |
| |
Quindi inizieremo utilizzando il generatore di query in JMP. |
| |
Una volta connessi al nostro database, cosa che ho già fatto qui, vado a selezionare la tabella da cui voglio iniziare. In questo caso, si tratta dei miei dati di produzione e ho fatto questo. Unirò il mio risultato. |
| |
e i miei dati campione qui. Quindi andiamo avanti e creiamo questa query. Inizierò inserendo il mio lotto. Inserirò tutti i miei dati di produzione. |
| |
Inserirò la data del campione creato e l'analisi, e forse li prenderò e li metterò in alto, così potrai vederli un po' |
| |
un po' meglio. Quindi queste saranno le prime colonne, |
| |
così come il mio risultato. Quindi, se dovessi impostare questa query usando i filtri, quello che potremmo fare è, ad esempio, filtrare la nostra analisi inserendolo lì. |
| |
E filtriamo sulla nostra data campione qui, e forse la cambieremo in un intervallo, quindi diciamo prevedi... prendi i dati tra una data e |
| |
un'altra data. Ora, normalmente, quello che faresti in questo caso è che |
| |
prompt all on run, in modo che quando esegui la query, |
| |
potresti far selezionare al tuo utente |
| |
le date appropriate, e ancora una volta credo che questo database risalga a un periodo piuttosto lontano, quindi sceglieremo un intervallo molto ampio. Premi OK. E ora ho i miei dati per quell'analisi e... |
| |
quelle date, ma cosa farò |
| |
Voglio rimuovere questi prompt, in modo da avere prompt chiari. Ne selezionerò alcuni manualmente, solo per vedere come si inseriscono nella query... |
| |
nel codice. |
| |
Sì. |
| |
Quindi posso andare avanti e copiare questo script di esecuzione, giusto, che esegue questa query, inclusi i filtri. E ora quello che farò è aprire l'Application Builder. |
| |
Sceglierò un'applicazione vuota e creerò un pulsante. |
| |
Quindi, quando clicco con il pulsante destro del mouse sul pulsante, posso scegliere quale script eseguire quando viene premuto. In questo caso, eseguiremo semplicemente l'intero script dalla nostra query. |
| |
Quindi, se ora dovessi eseguire questa operazione, premo il pulsante e ottengo i dati esattamente come ho impostato la query. Ma quello che vorrei fare, e forse anche tu, è consentire all'utente di scegliere il filtro di query. |
| |
variabili, quindi quale periodo di tempo scegliere e quale analisi, e per questo è |
| |
incredibilmente semplice. |
| |
Quello che farò è selezionare due caselle di modifica numeriche per l'ora di inizio e di fine della mia query. |
| |
E quello che mi piace sempre fare è prenderli e inserirli in un riquadro. Rende un po' più facile per l'utente vedere esattamente di cosa si tratta... sai, mi permette di inserire un'istruzione. Quindi posso scrivere qui qualcosa tipo "inserisci data di inizio". |
| |
e inserisci la data di fine. |
| |
Così. |
| |
Daremo a queste variabili dei nomi che possiamo capire. |
| |
Quindi chiameremo questo...se clicco sulla casella di modifica del numero, posso dare un nome a questo tizio |
| |
inizio |
| |
casella di modifica del numero. |
| |
E chiameremo questa un'estremità |
| |
casella di modifica del numero e possiamo anche occuparci dei formati |
| |
in modo che utilizziamo il nostro |
| |
formato del calendario data e ora qui. |
| |
Proprio così. |
| |
E, naturalmente, ciò che dobbiamo fare è ottenere le informazioni da questi |
| |
immissione dati |
| |
variabili nella nostra query. Quindi, quando si preme il pulsante, quello che faremo è creare una variabile chiamata start |
| |
e lo renderemo uguale a qualsiasi valore sia |
| |
digitato nella nostra casella di modifica dei numeri. |
| |
Ottieni quel valore. |
| |
Otterremo il valore dalla casella di modifica del numero finale. |
| |
E prenderemo questi |
| |
e inserirli nella nostra query qui. |
| |
Quindi se dovessi eseguire questo, |
| |
Posso scegliere la mia data di inizio |
| |
e scegli la mia data di fine. |
| |
Posso eseguirlo e ottenere i miei dati. Ora te ne mostrerò un altro molto velocemente: come possiamo filtrare questa analisi. Per farlo, userò questo... |
| |
Ho diverse opzioni per i diversi pulsanti che posso usare. Credo che quello che farò sarà includere questa casella di controllo qui, e inserire i valori che vorrei che fossero selezionati. |
| |
Ora forse cambieremo questo in analisi. |
| |
Sì, spunta la casella. Quindi qui creerò semplicemente un'altra analisi delle variabili. |
| |
E se non ricordo quale comando devo usare per ottenere le informazioni...per ottenere la selezione, tutto quello che devo fare è cliccare qui. |
| |
E se clicco con il tasto destro, un bel trucco è che posso andare direttamente al menu della guida, direttamente all'indice degli script, e ora vedo che ciò di cui ho bisogno è il comando "Ottieni selezione" per poterli ottenere. |
| |
Scriverò qui |
| |
Fatti selezionare. |
| |
E ora possiamo prendere questa analisi |
| |
e sostituire il nostro |
| |
parametri di query proprio lì. Quindi se lo eseguissi, |
| |
Di nuovo, |
| |
Posso selezionare l'ora di inizio |
| |
e seleziona l'ora di fine. |
| |
E posso scegliere di eseguire uno o l'altro parametro, oppure entrambi. |
| |
Quindi il passo successivo... |
| |
e naturalmente, posso aggiungere a questo quanto voglio, ma quello che vorrei fare a questo punto è distribuirlo all'interno della mia organizzazione, e il trucco qui è che chiunque abbia accesso a questo |
| |
La posizione del database potrà accedere o utilizzare questo componente aggiuntivo se lo condividessi con loro. Quindi, quello che farò è cliccare qui e salvare lo script in un componente aggiuntivo. |
| |
Lo chiameremo database |
| |
accesso |
| |
E |
| |
dbaccess1, |
| |
solo per dargli un nome univoco. |
| |
Accedi ai dati. E l'intero script necessario per far funzionare il componente aggiuntivo si trova qui, quindi è già... è già tutto pronto. Lo salverò nel mio |
| |
scrivania. |
| |
E come potete vedere ora, è installato proprio qui. |
| |
Quindi tutto quello che devo fare è prendere questo componente aggiuntivo, che credo sia salvato sull'altro schermo. |
| |
Eccolo qui, e posso inviarlo via email a chiunque nella mia organizzazione. Ho già scritto questa email in anticipo. |
| |
Già per tua comodità. Invialo via email e, se hanno accesso a questa posizione, potranno installare il componente aggiuntivo e utilizzarlo immediatamente. A questo punto, vorrei interrompere la condivisione e inviare... |
| |
Torniamo a Pete, che ci mostrerà come accedere ai dati dal web. |
| Peter Hersh |
Va bene, grazie, Hadley. E sì, ottima dimostrazione. Quindi in questa parte ci baseremo su quanto mostrato da Hadley. |
| |
E alla fine otterremo un componente aggiuntivo simile a questo. Quindi seguiremo lo stesso processo di Hadley. Salterò la parte relativa a ODBC e mostrerò |
| |
Una parte API, ma l'idea qui è: ho due diverse fonti di dati. Estrarrò i dati da entrambe le fonti, li unirò e poi creerò una tabella dati finale come questa. Quindi inizieremo con ciò che Hadley aveva mostrato come già completato, ovvero |
| |
un semplice pull ODBC con ancora meno dettagli di quelli di Hadley, dove abbiamo solo |
| |
dati su due diversi tipi di azioni e abbiamo un filtro che sta esaminando per selezionare quel tipo di azione, e quello che faremo è creare un |
| |
Connessione API. Quindi seguirò un processo simile a quello di Hadley. L'ha descritto così bene che andrò un po' veloce e aggiungerò un riquadro con una casella di modifica del testo e, come ha mostrato Hadley, possiamo |
| |
utilizzare e fare riferimento a questi |
| |
scatole, perché hanno un nome. E potrei rinominarle come ha fatto Hadley. |
| |
In questo caso, si chiama semplicemente TextEdit1 e quello che dirò alle persone di fare è inserire qui la loro entità chiave API e quella chiave API la useremo per |
| |
Fare in modo che ogni singola persona possa accedere ai dati utilizzando la propria chiave API, evitando così di doverla distribuire insieme a questo. E poi, proprio come ha mostrato Hadley, creerò un pulsante qui e lo chiameremo "pulsante". |
| |
Estrazione dati API. |
| |
Bene, e ancora la stessa cosa, clicchiamo con il tasto destro qui e aggiungiamo uno script alla stampa. Quindi, da dove stiamo accedendo a questi dati è |
| |
Questo sito web si chiama Alpha Vantage ed è un ottimo modo per dimostrare e provare un'API data pull. Ha una documentazione API molto utile. Se dovessi farlo all'interno della tua azienda, avresti un approccio leggermente diverso. |
| |
comandi che utilizzeresti, ma l'idea generale sarà la stessa: devi passare alcune cose da un... |
| |
da JMP a quell'API per eseguire il pull. E qui, ho pre-scritto questo script, quindi fondamentalmente, devo passare una chiave, devo indicargli l'URL, che tipo di richiesta farò, e poi ho alcuni |
| |
Qui sotto c'è altro script che funziona per ottenere quei dati nel formato corretto per JMP, quindi analizza quel JSON. Quindi selezionerò questo, che ho già scritto qui. Lo copierò e poi, proprio come abbiamo visto prima, se lo inserisco qui, ora ho il mio |
| |
I dati vengono estratti lì. Quindi un paio di cose che devo fare qui sono... voglio fare riferimento a quella chiave API qui. |
| |
Quindi quello che farò è dire, okay, quella chiave è uguale |
| |
textedit1 e dirò semplicemente, proprio come Hadley ha dimostrato che si poteva |
| |
passare attraverso quell'indice di aiuto e capire cosa è necessario per prendere quel testo, ma in questo caso dirò solo che la chiave è... vai a quel textedit1 e ottieni il |
| |
testo. L'altra cosa qui è che voglio fare riferimento a questa casella qui, che per caso si chiama Combo1, su cui filtrare. Quindi aggiungerò che |
| |
anche qui sotto, e lo chiameremo semplicemente stock |
| |
è uguale al nome della variabile, Combo1, e poi di nuovo questo, proprio come hai mostrato Hadley, viene selezionato. |
| |
Bene, ora quello che farò è prelevare quella chiave, prendere quello stock, andare sul sito web, fare un ping e procedere con l'esecuzione per mostrarlo. Quindi userò solo una chiave demo qui. Forse cambieremo lo stock. |
| |
Sarà... oh, sai cosa? È una bella cosa |
| |
il fatto è che ho dimenticato di cambiarlo nel codice qui, quindi dico che lo stock è combo1, ma qui |
| |
Questo mi dice che il mio simbolo è Microsoft, quindi... se non inserisco quello stock lì, non eseguirà l'estrazione correttamente. Quindi, mostriamolo ancora una volta. Mostriamo che ora sta esaminando il filtro e non è più codificato in modo fisso, quindi ora sta estraendo i dati corretti. |
| |
Bene, ora il passo successivo è acquisire dati da entrambe le fonti e combinarli. C'è una bella funzionalità in JMP 16, |
| |
di cui spero abbiate tutti sentito parlare, ovvero questo nuovo registro migliorato, e ora vado a sistemarlo. |
| |
E questo registro, quello che fa è catturare qualsiasi tipo di manipolazione dei dati che potresti fare. Quindi lasciami mostrarti un esempio di join. Unirò semplicemente questi due |
| |
tabelle di dati e puoi scegliere come vuoi unirle, magari, che tipo di |
| |
colonne che vuoi in quell'unione, magari nome |
| |
tuo |
| |
dati come vuoi. E una volta che sei soddisfatto, puoi cliccare su "Ok". Noterai quindi che nel log è stato catturato tutto ciò di cui ho bisogno per quel join, quindi andrò qui sotto, andrò a salvare lo script negli appunti e poi lo farò |
| |
torna indietro e crea un nuovo pulsante nella mia app |
| |
Ecco. E di nuovo, userò una casella di pulsanti, ma puoi scegliere il tipo che preferisci. Di nuovo, dagli... magari un nome; lo chiameremo join. |
| |
Fare clic con il tasto destro del mouse qui. |
| |
E scrivi quella sceneggiatura sulla pressa. |
| |
E poi basta un copia e incolla. |
| |
E ora, passerà attraverso e si unirà. Quindi, in realtà, potremmo estrarre ogni singolo pezzo e unirlo, ma penso che l'obiettivo finale sia fare tutto in un unico passaggio. |
| |
Tutto quello che devi fare è raccogliere tutti questi script in un unico posto, cosa che ho fatto in precedenza, |
| |
e poi...e poi crea un nuovo pulsante. Vi mostrerò due cose che ho aggiunto a questo script una volta inserito, quindi lo chiameremo il pulsante facile per rimanere fedeli al tema. |
| |
Pulsante facile. |
| |
E ho intenzione di farlo solo |
| |
prendo questo script qui, quindi selezionerò tutto questo, copierò quello e poi |
| |
ripetere la stessa procedura qui. |
| |
E incollalo. |
| |
Bene, quindi un paio di cose che ho aggiunto a questo script oltre a copiare e incollare ciò che era già lì, era questo comando di attesa e ciò che fa è darmi un po' di tempo per |
| |
per consentire l'estrazione dei dati prima che inizino a unirsi, e poi chiudo quelle due tabelle di dati aggiuntive, quindi non... non sto semplicemente creando più tabelle. Quindi, |
| |
Guarda qui. Inserisco la mia chiave API, seleziono il mio titolo azionario. Premo il pulsante "Easy", prelevo da due posizioni, aspetto due secondi e poi li unisco. |
| |
Quindi questo è l'obiettivo finale, e ora passerò il testimone ad Hadley per mostrargli un buon esempio su come rendere l'inserimento dei dati un po' più agevole. |
| Hadley Myers |
Sì. |
| |
Grazie mille, Pete. Ti abbiamo mostrato come ottenere dati da un database esterno usando SQL. |
| |
database e Pete ti ha mostrato come ottenere dati da un'API... un'API web e poi combinarli con altri dati che hai. Potresti volere i tuoi dati da qualche altra fonte, magari devi accedervi usando Python, va bene così. |
| |
oppure si trovano in file diversi, ma potrebbe anche essere necessario inserire i dati manualmente. E questo è un esempio di set di dati, |
| |
dove abbiamo i nomi dei cereali e i produttori, e tutti questi dati sono stati inseriti manualmente dalle etichette di queste scatole, che purtroppo non sono in un formato in cui i dati possano essere facilmente estratti automaticamente. Quindi qualcuno dovrà farlo. |
| |
manualmente. Una volta facevo un lavoro del genere, quindi posso sicuramente capire la persona che deve farlo. |
| |
Ora, potresti inserirlo nella tabella in questo modo, ma quello che ho fatto è stato semplificare un po' il tutto creando questa applicazione qui. |
| |
Quindi ora puoi vedere che possono inserirlo semplicemente da una schermata e poi aggiungerlo alla tabella. Ora ho intenzionalmente omesso gli ultimi due |
| |
colonne. Il metodo per farlo sarebbe esattamente lo stesso. Quello che faremo è... quindi vedi qui che la prima cosa che fa il pulsante |
| |
Aggiunge una riga alla tabella. Calcola quante righe ha la tabella e poi, per ogni colonna e numero di riga, |
| |
Semplicemente prenderà i dati da ciascuno dei nostri input e li salverà in ciascuna di quelle celle, giusto? Quindi andiamo avanti e procediamo con gli ultimi due. |
| |
E potreste aver notato che è piuttosto uniforme e, sapete, ben distanziato, quindi è stato fatto usando questi fantastici separatori qui, quello orizzontale e quello verticale. Quindi andrò avanti e aggiungerò un separatore orizzontale proprio qui in basso. |
| |
E a questo aggiungeremo un pannello box |
| |
e una casella di modifica numerica in basso. |
| |
E aggiungerò ancora un altro riquadro del pannello |
| |
e un'altra casella di modifica numerica. Quindi la chiameremo, |
| |
le nostre ultime due colonne qui, che rappresentano il peso per porzione e il nostro |
| |
tazze per servizio dalle nostre etichette per cereali. |
| |
Ora, potrei rinominarli, ma per ora non lo farò. Tutto quello che devo fare qui è procedere. |
| |
E nella colonna della nostra tabella dati, peso per porzione. |
| |
E il nostro numero di fila. |
| |
Lo renderò uguale al numero della casella di modifica che abbiamo appena creato. |
| |
La stessa cosa qui |
| |
per il nostro |
| |
tazze per porzione |
| Hadely Myers |
in fase di modifica2. |
| Hadley Myers |
Giusto, quindi ora, se dovessi eseguire questo, posso inserire tutti i dati e poi ottenerlo |
| |
in questi |
| |
celle o per aggiungere la riga in basso, ma ti mostrerò un'ultima cosa, che, se stai creando questo per qualcuno, ti prometto che lo apprezzerà molto, cioè aggiungere |
| |
Un po' di colore all'immagine lì, per... per l'applicazione. Quindi andiamo avanti e puoi aggiungere un logo aziendale, oppure puoi semplicemente aggiungere una foto stock come ho fatto qui. |
| |
Quindi non deve essere perfetto. Se lo aggiungiamo semplicemente in questo modo, puoi vedere che quando lo eseguiamo, rende la giornata di qualcuno un po' più piacevole di prima. Ora, invece di salvarlo come componente aggiuntivo o salvarlo |
| |
in uno script, quello che farò è andare avanti e salvarlo subito nella tabella dati. |
| |
Chiamalo aggiungi |
| |
dati o aggiungi riga, qualsiasi cosa e ora puoi vedere qui che abbiamo il nostro componente aggiuntivo proprio lì. Quindi posso eseguire questo componente aggiuntivo. |
| |
cereali. La cosa bella è che se premo Tab, passa a quello successivo. |
| |
Aggiungerò solo alcuni dati fittizi |
| |
e così via. Giusto, aggiungi quella riga e vedrai questo. |
| |
Spero che l'abbiate trovato interessante, spero che qualcuno di voi abbia l'opportunità di usarli o crearli. E con questo, passo la parola a Pete. |
| Peter Hersh |
Ottimo, grazie Hadley. |
| |
Vorrei concludere qui con un altro paio di cose |
| |
Slide. Riassumendo quanto visto finora, spesso si riscontrano difficoltà nell'accesso ai dati, e questo significa che i problemi possono persistere più a lungo del necessario. Speriamo quindi che abbiate tratto beneficio da questo e che possiate semplificare l'accesso ai dati o persino l'inserimento degli stessi. |
| |
E |
| |
ottenere... ottenere i tuoi dati nel formato corretto e |
| |
La facilità di accesso rappresenta circa l'80% della soluzione, quindi di solito è lì che si dedica l'80% del tempo. Se si riesce a semplificare questa fase, si può ottenere un enorme risparmio di tempo. |
| |
e fate in modo che i vostri analisti, scienziati e ingegneri intelligenti lavorino sui problemi relativi ai dati, non sui problemi di accesso ai dati. |
| |
Abbiamo dimostrato che creare pulsanti semplici è piuttosto semplice all'interno dell'application builder di JMP, dove è possibile scegliere un'origine, filtrare, combinare più origini e persino aggiungere dati manualmente. |
| |
E poi, come ha dimostrato Hadley, possiamo distribuirlo all'interno dell'organizzazione con un componente aggiuntivo oppure possiamo farlo anche solo con uno script o con un'app stessa. |
| |
Grazie per il vostro tempo. Spero che abbiate trovato utile questo articolo e risponderemo a tutte le domande che ci invierete nella chat qui sotto. Grazie. |