| Vocero |
Transcripción |
| Peter Hersh |
Bien, gracias por acompañarnos hoy. Hadley y yo hablaremos sobre el acceso a los datos y cómo optimizarlo y hacerlo un poco más fácil usando el generador de aplicaciones JMP. |
| |
A continuación se presenta una descripción general del flujo de trabajo analítico dentro de JMP, y el primer paso en cualquier recorrido analítico es acceder a sus datos. |
| |
Y muchas veces esto puede ser un proceso tedioso y que requiere mucho tiempo, y muchas veces se pasa por alto. |
| |
Es un proceso crítico que debe realizarse antes de poder aprender de los datos. Es necesario poder acceder a ellos. Hadley y yo les mostraremos algunos trucos para acceder a datos de diferentes fuentes y, con suerte, facilitar el proceso. |
| |
Entonces, lo que vamos a mostrar hoy es cómo crear un botón fácil, que es |
| |
Básicamente, se utiliza el generador de aplicaciones dentro de JMP para acceder a los datos de forma externa, ya sea a través de una conexión OBDC o una webAPI. |
| |
También puedes aplicar esto a archivos locales o a cualquier tipo de fuente de datos a la que JMP pueda acceder. Además, te mostraremos cómo combinar fuentes. |
| |
y aplicar filtros a múltiples fuentes diferentes en la extracción de datos. Finalmente, terminaremos mostrando una interfaz sobre cómo ingresar datos manualmente. |
| |
Pero simplifiquemos un poco el proceso. Y luego, al final, ¿cómo podemos distribuir lo que hacemos en toda la organización y convertirlo en un... |
| |
Complemento distribuible que podemos compartir. Comenzaremos con Hadley, quien nos mostrará cómo conectarnos mediante el controlador ODBC. |
| Hadley Myers |
Sí. |
| |
Muchas gracias, Pete. |
| |
Hola a todos los que están viendo esto dondequiera que estén. Empezaré mostrándoles esta aplicación, creada con el creador de aplicaciones, que se conecta a una base de datos. |
| |
Quizás en tu propio sistema tengas diferentes ubicaciones o servidores donde se almacenan tus datos, así que puedes seleccionar el adecuado. Esto te permite buscar y filtrar etiquetas. Lo que ves aquí es una... |
| |
Consulta SQL. Accedimos a la base de datos, extrajimos algunas etiquetas y puedo seleccionar las adecuadas. |
| |
Puedo elegir el período que me interesa consultar; en este caso, la base de datos es bastante antigua. Ejecuta esos datos y selecciona... |
| |
Ya sabes, extraer inmediatamente los datos que necesito. Hemos visto que la gente trabaja con esto: toman estas cosas y las guardan en un rincón. |
| |
De su escritorio, así, y cada vez que necesiten datos, dirán: "Ah, debería haber obtenido también los 102". No hay problema. Puedo simplemente ir y sacarlos así. |
| |
Así que este es el tipo de cosas que les mostraremos cómo construir hoy, y el ejemplo que vamos a usar es un poco más simple que esto. |
| |
Puedes verlo aquí. Simplemente selecciona el período de tiempo y elige lo que quieras. |
| |
Una de las etiquetas que desea buscar, en este caso, es un método de análisis. Es un filtro en una de las columnas categóricas y luego extrae los datos. La opción más compleja que vio es simplemente una extensión para añadir funcionalidad a esto. |
| |
Entonces, comenzaremos utilizando el generador de consultas en JMP. |
| |
Una vez que nos hayamos conectado a nuestra base de datos, como ya hice aquí, seleccionaré la tabla con la que quiero empezar. En este caso, son mis datos de producción. Uniré mis resultados. |
| |
Y aquí están mis datos de muestra. Vamos a crear esta consulta. Empezaré por extraer mi lote. Voy a extraer todos mis datos de producción. |
| |
Voy a poner la fecha de creación de la muestra y el análisis, y quizás los tome y los ponga cerca de la parte superior, para que puedas verlos. |
| |
Un poco mejor. Así que esas serán las primeras columnas. |
| |
Así como mi resultado. Si configuro esta consulta usando los filtros, podríamos, por ejemplo, filtrar nuestro análisis. |
| |
Y filtramos nuestra fecha de muestra aquí, y tal vez cambiemos eso a un rango, por lo que decimos predecir... tomar datos entre una fecha y |
| |
Otra cita. Normalmente, lo que harías en este caso es... |
| |
solicitar todo al ejecutar, de modo que cuando ejecute la consulta, |
| |
Podrías hacer que tu usuario seleccione |
| |
Las fechas apropiadas, y de nuevo, creo que esta base de datos es bastante antigua, así que elegiremos un rango muy amplio. Pulsa "Aceptar". Y ahora tengo mis datos para ese análisis y eso... |
| |
esas fechas, pero lo que voy a hacer |
| |
Voy a desmarcar estas indicaciones, así que las borraré. Seleccionaré algunas manualmente para ver cómo encajan en la consulta. |
| |
en el código. |
| |
Sí. |
| |
Puedo copiar este script de ejecución (correcto), que ejecuta esta consulta, incluyendo los filtros. Ahora, abriré el generador de aplicaciones. |
| |
Elegiré una aplicación en blanco y crearé un botón. |
| |
Así, al hacer clic derecho en el botón, puedo elegir qué script quiero ejecutar al presionarlo. En este caso, simplemente ejecutaremos el script completo de nuestra consulta. |
| |
Ahora, si ejecuto esto, presiono el botón y obtengo mis datos exactamente como configuré la consulta. Pero lo que me gustaría hacer, y quizás lo que usted también, es permitir que el usuario elija el filtro de la consulta. |
| |
variables, entonces qué período de tiempo elegir y qué análisis, y para eso es |
| |
Sorprendentemente sencillo. |
| |
Lo que voy a hacer es tomar dos cuadros de edición de números para las horas de inicio y finalización de mi consulta. |
| |
Y lo que siempre me gusta hacer es tomarlos y colocarlos dentro de un cuadro de panel. Simplemente facilita que el usuario vea exactamente qué es lo que está... Me permite poner una instrucción. Así puedo escribir aquí algo como "Ingresar fecha de inicio". |
| |
e ingrese la fecha de finalización. |
| |
Así me gusta. |
| |
Y les daremos a estas variables nombres que podamos entender. |
| |
Entonces, llamaremos a este... si hago clic en el cuadro de edición de número, puedo nombrar a este tipo. |
| |
comenzar |
| |
cuadro de edición de número. |
| |
Y a este lo llamaremos extremo |
| |
cuadro de edición de números, y también podemos abordar los formatos |
| |
para que usemos nuestro |
| |
Formato de calendario de fecha y hora aquí. |
| |
Justo así. |
| |
Y, por supuesto, lo que tenemos que hacer es obtener la información de estos |
| |
entrada de datos |
| |
variables en nuestra consulta. Y entonces, cuando se presiona el botón, lo que haremos es crear una variable llamada inicio |
| |
y lo haremos igual a cualquier valor que sea |
| |
escrito en nuestro cuadro de edición de números. |
| |
Obtenga ese valor. |
| |
Obtendremos el valor de nuestro cuadro de edición de número final. |
| |
Y tomaremos estos |
| |
e insertarlos en nuestra consulta aquí. |
| |
Entonces, si tuviera que ejecutar esto, |
| |
Puedo elegir mi fecha de inicio |
| |
y elegir mi fecha de finalización. |
| |
Puedo ejecutarlo y obtener mis datos. Ahora les mostraré uno más rápidamente: cómo podemos filtrar este análisis. Para ello, usaré esto... |
| |
Tengo diferentes opciones para los distintos botones que puedo usar. Creo que lo que voy a hacer es incluir esta casilla de verificación aquí y puedo introducir los valores que quiero que seleccionen. |
| |
Ahora, tal vez cambiemos esto a análisis. |
| |
Sí, casilla de verificación. Aquí simplemente crearé otro análisis de variables. |
| |
Y si no puedo recordar qué comando necesito usar para obtener la información... para obtener la selección de esto, todo lo que necesito hacer es hacer clic aquí. |
| |
Y si hago clic derecho, un buen truco es que puedo ir directamente al menú de ayuda, directamente al índice de scripts, y ahora puedo ver que lo que necesito es el comando obtener seleccionado para poder obtenerlos. |
| |
Escribiré aquí |
| |
Ser seleccionado |
| |
Y ahora podemos tomar este análisis. |
| |
y reemplazar nuestro |
| |
Parámetros de consulta directamente ahí. Así que si lo ejecutara... |
| |
Una vez más, |
| |
Puedo seleccionar mi hora de inicio |
| |
y seleccione mi hora de finalización. |
| |
Y puedo elegir uno de los parámetros para ejecutar o el otro, o ambos. |
| |
Entonces el siguiente paso... |
| |
Y por supuesto, puedo agregar a esto tanto como quiera, pero lo que me gustaría hacer en este momento es distribuirlo dentro de mi organización, y el truco aquí es que cualquiera que tenga acceso a esto |
| |
La ubicación de la base de datos podrá acceder o usar este complemento si lo comparto con ellos. Así que haré clic aquí y guardaré el script en un complemento. |
| |
Lo llamaremos base de datos. |
| |
acceso |
| |
y |
| |
acceso a base de datos1, |
| |
Sólo para darle un nombre único. |
| |
Datos de acceso. Y todo el script necesario para que el complemento funcione se encuentra aquí, así que ya está todo listo. Lo guardaré en mi... |
| |
de oficina. |
| |
Y como podéis ver ahora, está instalado aquí. |
| |
Entonces todo lo que necesito hacer es tomar este complemento, que creo que está guardado en mi otra pantalla. |
| |
Aquí está, y puedo enviarlo por correo electrónico a cualquier persona de mi organización. Lo escribí con antelación. |
| |
Ya para su comodidad. Envíenlo por correo electrónico y, si tienen acceso a esta ubicación, podrán instalar el complemento y usarlo de inmediato. Y en este punto, me gustaría dejar de compartir y enviar... |
| |
Volvamos con Pete, quien nos mostrará cómo acceder a los datos de la web. |
| Peter Hersh |
Muy bien, gracias, Hadley. Y sí, una gran demostración. En esta parte, nos basaremos en lo que Hadley mostró. |
| |
Terminaremos con un complemento similar a este. Seguiremos el mismo proceso que Hadley. Omitiré la parte de ODBC y mostraré... |
| |
Una parte de la API, pero la idea es que tengo dos fuentes de datos diferentes. Voy a extraer datos de ambas, combinarlos y luego crear una tabla de datos final como esta. Comenzaremos con lo que Hadley ya había demostrado, que es |
| |
una simple extracción ODBC con incluso menos detalles que los que tenía Hadley, donde simplemente tenemos |
| |
datos sobre dos tipos de acciones diferentes y tenemos un filtro que está mirando para seleccionar ese tipo de acción, y lo que vamos a hacer es construir un |
| |
Conexión API. Voy a seguir un proceso similar al de Hadley. Lo describió muy bien. Voy a ir un poco rápido y agregar un cuadro de panel con un cuadro de edición de texto. Como mostró Hadley, podemos... |
| |
Utilice y haga referencia a estos |
| |
Cajas, porque tienen nombre. Y podría rebautizarlas como hizo Hadley. |
| |
En este caso, esto simplemente se llama TextEdit1, y lo que le voy a decir a la gente que haga es ingresar su entidad de clave API aquí y esa clave API la usaremos para |
| |
Que cada persona pueda acceder a los datos usando su propia clave API, sin tener que distribuirla. Y luego, como mostró Hadley, crearé un botón aquí y lo llamaremos... |
| |
Extracción de datos API. |
| |
Muy bien, y de nuevo lo mismo: vamos a hacer clic derecho aquí y agregar un script al presionar. Así que desde dónde accedemos a estos datos es... |
| |
Este sitio web llamado Alpha Vantage es una buena manera de demostrar y probar la extracción de datos de una API. Tiene una documentación de API muy útil. Si lo hicieras dentro de tu propia empresa, tendrías resultados ligeramente diferentes. |
| |
comandos que estarías usando, pero la idea general será la misma, es que tienes que pasar algunas cosas desde un... |
| |
de JMP a esa API para extraer. Y aquí, he preescrito este script, así que básicamente, tengo que pasar una clave, tengo que decirle la URL, qué tipo de solicitud voy a hacer y luego tengo algunos |
| |
Hay más scripts aquí abajo que funcionan para obtener los datos en el formato correcto para JMP, analizando así ese JSON. Voy a seleccionar esto, que ya escribí aquí. Lo copiaré y luego, como vimos antes, si lo pongo aquí, ahora tengo mi... |
| |
Los datos se extraen. Un par de cosas que necesito hacer aquí es... Quiero hacer referencia a esa clave API aquí. |
| |
Entonces lo que voy a hacer es decir, bien, esa clave es igual a |
| |
textedit1 y solo diré, tal como Hadley demostró que se podía |
| |
Revisa ese índice de ayuda y descubre qué se necesita para capturar ese texto, pero en este caso solo diré que la clave es... vas a textedit1 y obtienes el |
| |
Texto. También quiero hacer referencia a este cuadro, que se llama Combo1, para filtrar. Así que voy a agregar eso. |
| |
Aquí abajo también, y simplemente lo llamaremos stock. |
| |
es igual a ese nombre de variable, Combo1, y luego esto nuevamente, tal como lo mostró Hadley, se selecciona. |
| |
Bien, ahora mi consulta obtendrá la clave y el stock, y luego accederá al sitio web, hará ping y ejecutará esto para mostrarlo. Usaré una clave de demostración. Quizás cambiemos el stock. |
| |
Será... oh, ¿sabes qué? Eso es bueno. |
| |
El problema aquí es que olvidé cambiar eso en el código aquí, así que digo que el stock es combo1, pero aquí |
| |
Esto me indica que mi símbolo es Microsoft, así que si no incluyo esa acción, no se extraerá correctamente. Vamos a mostrarlo una vez más. Ahora se basa en el filtro y no está predefinido, por lo que extrae los datos correctamente. |
| |
Bien, ahora, el siguiente paso es obtener datos de ambas fuentes y combinarlos. Hay una función útil en JMP 16, |
| |
de lo cual espero que todos hayan oído hablar aquí, que es este registro nuevo y mejorado, y voy a seguir adelante y aclararlo. |
| |
Este registro captura cualquier manipulación de datos que se realice. Les mostraré un ejemplo de una unión. Voy a unir estos dos... |
| |
tablas de datos y puedes elegir cómo quieres unirlas, tal vez, qué tipo de |
| |
columnas que desea en esa unión, tal vez nombre |
| |
su |
| |
los datos como quieras. Una vez que estés satisfecho con esto, puedes hacer clic en Aceptar. Verás que en ese registro se ha capturado todo lo necesario para esa unión. Así que voy a ir aquí, a guardar el script en el portapapeles y luego... |
| |
Regresa y crea un nuevo botón en mi aplicación |
| |
Aquí. De nuevo, usaré un cuadro de botones, pero puedes elegir el tipo que prefieras. De nuevo, dale un nombre; lo llamaremos unión. |
| |
Haga clic derecho aquí. |
| |
Y hacer ese guión en la prensa. |
| |
Y luego sólo copiar y pegar. |
| |
Y ahora, se procesará y se unirá. Así que, en realidad, podríamos extraer cada pieza individualmente y unirlas, pero creo que el objetivo final es hacerlo todo en un solo paso. |
| |
Todo lo que tienes que hacer es reunir todos estos scripts en un solo lugar, lo cual hice con anticipación. |
| |
Y luego... crea un nuevo botón. Voy a mostrar dos cosas que agregué a este script una vez que lo incorporé, así que lo llamaremos el botón fácil para mantener el tema. |
| |
Botón fácil. |
| |
Y voy a simplemente |
| |
Toma este script aquí, así que seleccionaré todo esto, copiaré eso y luego |
| |
Haz el mismo procedimiento aquí. |
| |
Y pega eso. |
| |
Bien, entonces, un par de cosas que agregué a este script más allá de simplemente copiar y pegar lo que ya estaba allí, fue este comando de espera y lo que hace es darme un poco de tiempo para... |
| |
Para que la extracción de datos se realice antes de que comience la unión, y luego cierro esas dos tablas de datos adicionales, para no... no estoy simplemente creando varias tablas. Así que... |
| |
Mira esto. Voy a ingresar mi clave API y seleccionar mi stock. Presiono el botón fácil, extraigo datos de dos lugares, espero dos segundos y los uno. |
| |
Ese es el objetivo final aquí y ahora voy a devolvérselo a Hadley para que le muestre un buen ejemplo de cómo hacer que el ingreso de datos sea un poco más fluido. |
| Hadley Myers |
Sí. |
| |
Muchas gracias, Pete. Ya te mostramos cómo obtener datos de una base de datos externa usando SQL. |
| |
Base de datos y Pete te mostró cómo obtener datos de una API web y luego combinarlos con tus datos. Quizás quieras tus datos en otra fuente, o quizás necesites acceder a ellos usando Python. No hay problema. |
| |
O está en archivos diferentes, pero también podría ser necesario ingresar los datos manualmente. Este es un ejemplo de un conjunto de datos. |
| |
Donde tenemos nombres y fabricantes de cereales, y todos estos datos se han ingresado manualmente a partir de las etiquetas de estas cajas, que lamentablemente no están en un formato que permita extraerlos fácilmente de forma automática. Así que alguien tendrá que hacer esto. |
| |
Manualmente. Tuve un trabajo similar una vez, así que puedo entender perfectamente a la persona que lo necesita. |
| |
Ahora, puedes ingresarlo en la... tabla de esta manera, pero lo que hice fue simplificarlo un poco creando esta aplicación aquí. |
| |
Como pueden ver, ahora pueden ingresarlo desde una sola pantalla y luego se agregará a la tabla. He omitido intencionalmente los dos últimos. |
| |
columnas. El método para hacer esto sería exactamente el mismo. Lo que haremos es... como ven aquí, lo primero que hace el botón... |
| |
Agrega una fila a la tabla. Calcula cuántas filas tiene y luego, para cada columna y número de fila, |
| |
Simplemente tomará los datos de cada una de nuestras entradas y los guardará en cada una de esas celdas, ¿cierto? Así que sigamos con las dos últimas. |
| |
Y habrán notado que esto es bastante uniforme y, ya saben, bien espaciado, así que lo logré usando estos divisores, el horizontal y el vertical. Así que voy a agregar un divisor horizontal justo aquí abajo. |
| |
Y a esto le añadiremos un cuadro de panel. |
| |
y un cuadro de edición de números en la parte inferior. |
| |
Y añadiré otro cuadro de panel más. |
| |
y otro cuadro de edición de números. Así que lo llamaremos, |
| |
Nuestras dos últimas columnas aquí, que son el peso por porción y nuestra |
| |
tazas por servicio de nuestras etiquetas de cereales. |
| |
Ahora mismo puedo cambiarles el nombre, pero no lo haré por ahora. Solo tengo que seguir adelante. |
| |
Y en nuestra columna de la tabla de datos, peso por porción. |
| |
Y nuestro número de fila. |
| |
Lo haré igual a nuestro cuadro de edición de número que acabamos de crear. |
| |
Lo mismo aqui |
| |
para nuestro |
| |
tazas por porción |
| Hadely Myers |
bajo edit2. |
| Hadley Myers |
Bien, ahora, si tuviera que ejecutar esto, puedo ingresar todos los datos y luego obtenerlos. |
| |
en estos |
| |
celdas o para agregar la fila en la parte inferior, pero te voy a mostrar una última cosa, que, si estás creando esto para alguien, te prometo que lo agradecerá mucho, es agregar |
| |
Un poco de color a la imagen de ahí, a la aplicación. Puedes agregar el logotipo de tu empresa o una foto de archivo, como hice aquí. |
| |
Así que no tiene que ser perfecto. Si lo añadimos así, verán que, al ejecutarlo, le alegramos el día a alguien. Ahora, en lugar de guardarlo como complemento o... |
| |
En un script, lo que voy a hacer es seguir adelante y guardar esto inmediatamente en la tabla de datos. |
| |
Llámalo añadir |
| |
datos o agregar una fila, lo que sea. Ahora pueden ver que tenemos nuestro complemento ahí mismo. Así que puedo ejecutarlo. |
| |
cereal. Lo bueno es que si presiono tabulador, pasa al siguiente. |
| |
Solo agregaré algunos datos ficticios. |
| |
y así sucesivamente. Correcto, agrega esa fila y verás eso. |
| |
Espero que les haya parecido interesante y que algunos de ustedes tengan la oportunidad de usarlos o crearlos. Y con esto, le devuelvo la palabra a Pete. |
| Peter Hersh |
Genial, gracias, Hadley. |
| |
Voy a terminar aquí con un par de cosas más. |
| |
Diapositivas. Resumiendo lo que vimos aquí, a menudo hay dificultades para acceder a los datos, lo que significa que los problemas pueden persistir más tiempo del necesario. Esperamos que esto les haya resultado útil y que puedan agilizar el acceso o incluso la entrada de datos. |
| |
Y |
| |
Conseguir... conseguir que sus datos estén en el formato correcto y |
| |
El acceso fácil representa aproximadamente el 80 % de la solución, por lo que normalmente es ahí donde se invierte el 80 % del tiempo. Si se puede optimizar, se puede ahorrar mucho tiempo. |
| |
y que sus analistas, científicos e ingenieros inteligentes trabajen en los problemas de datos, no en los problemas de acceso a los datos. |
| |
Y demostramos que crear botones fáciles es bastante sencillo dentro del generador de aplicaciones de JMP, donde puedes elegir una fuente, filtrar, combinar múltiples fuentes e incluso agregar datos manualmente. |
| |
Y luego, como demostró Hadley, podemos distribuir eso en toda la organización con un complemento o también podemos hacerlo solo con un script o una aplicación. |
| |
Gracias por su tiempo. Espero que les haya sido útil. Responderemos cualquier pregunta que tengan en el chat de abajo. Gracias. |