<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />eric colina ( erichill ), Desarrollador principal de sistemas JMP, SAS
NOTA: Este es sólo el texto del artículo; Las capturas de pantalla no están incluidas.Por favor vea el versión adjunta del papel para conseguirlo todo.

Consultor de construcción
La nueva herramienta JMP 12 para obtener sus datos SQL en JMP
(Actualizado para JMP 12.1)
Por Eric Hill, desarrollador de software, JMP
Contenido
- Introducción . 2
Sección 1: Hacer la conexión . 3
Sección 2: Seleccionar tablas para la consulta . 6
Sección 3: Creación de la consulta . 11
Agregar columnas . 13
Guardando la consulta . 15
Ejecutando la consulta . 15
Respondiendo las preguntas . dieciséis
- Filtración . 19
Filtros de mensajes . 23
- Muestreo . 25
Escribiendo su propio SQL . 26
Sección 4: Gestión de consultas en segundo plano . 27
Panel de estado de consulta 28
Ventana de consultas en ejecución .. 28
Sección 5: Compartir consultas . 28
Sección 6: Ejecución de consultas desde JMP Scripting Language (JSL) . 29
¿Qué hay de nuevo en JMP 12.1? . 31
- Buscar . 31
Agregar tablas relacionadas . 32
Abrir como plantilla . 34
Editar una fórmula de columna calculada . 34
Corrección de errores . 35
- Conclusión . 35
Introducción
JMP pone a su alcance una amplia gama de herramientas analíticas, pero esas herramientas no le sirven de nada si no puede obtener los datos que necesita para analizar en JMP de la manera que los necesita.JMP ha tenido soporte para importar datos de bases de datos relacionales a JMP durante bastante tiempo a través de Archivo > Base de datos > Abrir tabla . Mesa abierta está bien hasta donde llega, pero tiene algunas limitaciones notables:
- La mayoría de los datos en las bases de datos relacionales se almacenan de forma normalizada, lo que requiere uniones para obtener todos los datos que necesita, pero Mesa abierta no te ayuda con las uniones; Tienes que escribir el SQL tú mismo.
- Mientras Mesa abierta proporciona el Editor de fórmulas para crear una cláusula WHERE, no muestra, por ejemplo, los distintos valores de una variable categórica para ayudarle a filtrarla.
- Puede resultar difícil compartir de forma segura sus consultas con otras personas, porque Mesa abierta almacena su contraseña en la cadena de conexión de los scripts JSL que genera.
- Mesa abierta no le ayuda con los pasos de posprocesamiento que se requieren una vez que se han importado los datos, como la limpieza de datos, los tipos de modelado y el formato.
Consultor de construcción fue diseñado desde cero para abordar las limitaciones de Mesa abierta , que le ayuda a crear consultas de varias tablas con filtrado interactivo solicitado que se puede compartir de forma segura con sus compañeros de trabajo.
En este artículo, usaré Consultor de construcción con un disponible gratuitamente PostgreSQL base de datos de muestra llamada dellstore2 . PostgreSQL es una base de datos de código abierto que se puede descargar gratuitamente desde aquí:
http://www.postgresql.org/download/
El dellstore2 La base de datos de muestra se puede encontrar aquí:
http://wiki.postgresql.org/wiki/Sample_Databases
El dellstore2 La base de datos de muestra también está disponible para otras plataformas de bases de datos (MySQL, Oracle y SQL Server).
Sección 1: Hacer la conexión
Iniciado Consultor de construcción usando Archivo > Base de datos > Generador de consultas desde el menú:
También puedes iniciarlo desde la primera página de Arrancador JMP :
Por último, en Windows, también puedes encontrar un Consultor de construcción herramienta en el Ventana de inicio barra de herramientas:
Después del lanzamiento Consultor de construcción , serás recibido con Seleccionar conexión de base de datos caja de diálogo:
El Seleccionar conexión de base de datos El cuadro de diálogo es un subconjunto del Mesa abierta ventana.Consultor de construcción y Mesa abierta use las mismas conexiones ODBC y, de hecho, comparta conexiones, por lo que cualquier conexión que realice en cualquier lugar aparecerá en ambos.
Hacer clic Nueva conexión… para conectarse a su base de datos utilizando un DSN existente o para crear un nuevo DSN.Se le pedirá que proporcione las credenciales requeridas:
Después de conectarse, JMP recuperará esquemas de la conexión para ayudarlo a asegurarse de que esta sea la conexión que desea:
También puede ver las tablas disponibles en el esquema seleccionado. Hacer clic Próximo para continuar con el siguiente paso.
Nuevo en JMP 12.2: Note los dos Buscar cajas en el Esquemas – Tablas panel.Estos son nuevos en la actualización JMP 12.1 y filtran a medida que escribe en el esquemas y Mesas liza.Sabemos que muchos de ustedes tienen cientos de esquemas y cientos de tablas en un esquema determinado, por lo que el nuevo Buscar Los cuadros pueden ayudarle a reducir la lista para que pueda encontrar lo que está buscando.
Sección 2: Seleccionar tablas para la consulta
Figura 1: Selección de tablas para la consulta
Cuando haces clic Próximo , el Seleccionar tablas Aparecerá el cuadro de diálogo.En el Seleccionar tablas cuadro de diálogo, seleccionará qué tablas desea incluir en su consulta (consulte Figura 1 arriba).Seleccionar tablas en el Mesas disponibles lista que desea incluir en la consulta y agregarlos a la Primario y Secundario listas de tablas en la parte superior derecha.
- El Primario La tabla en una consulta es normalmente la tabla de la que se deben recuperar todas las filas, independientemente de si tienen un valor coincidente en alguna otra tabla.Esta es tu tabla de hechos , en términos de almacenamiento de datos.Sólo puede haber una tabla principal en una consulta.
- Secundario Las tablas son normalmente tablas de consulta.De forma predeterminada, las filas de las tablas secundarias solo se incluyen en la consulta cuando el valor de una columna en el primario La tabla coincide con el valor de una columna especificada en el secundario mesa.Estos son tus tablas de dimensiones , en términos de almacenamiento de datos.Puedes agregar tantos secundario tablas a la consulta como desee.
El panel en la parte inferior derecha muestra información sobre la tabla seleccionada.El columnas La pestaña muestra información sobre cada columna de la tabla, incluso si es una clave de algún tipo:
Nuevo en JMP 12.2: Nota la Caja de búsqeda en el Mesas disponibles panel, que es nuevo en JMP 12.1. Úselo para encontrar la tabla que busca cuando sus esquemas contengan muchas tablas.
El Instantánea de la tabla El panel muestra una instantánea de los datos para que pueda asegurarse de que la tabla tenga la información que necesita:
Normalmente, al crear una consulta, tiene una o varias preguntas en mente que espera responder, y esas preguntas impulsan las decisiones sobre qué tablas debe incluir su consulta.Los datos que estamos explorando provienen de una empresa ficticia de alquiler de DVD.Las preguntas que me gustaría responder son:
- ¿Qué géneros de películas generan más ingresos?
- ¿Qué actores generan más ingresos?
El alquiler La tabla tiene un registro para cada evento de alquiler de DVD durante la vida de esta empresa, por lo que será la tabla principal para esta consulta.puedo ver desde el columnas panel que alquiler tiene columnas con relaciones de clave externa para el inventario y cliente mesas:
Figura 2: Claves externas
A clave externa relación (también conocida como clave externa) restricción ) significa que los valores en la columna de una tabla deben encontrarse en la Clave primaria columna de otro mesa.De Figura 2 , podemos ver que los valores de la id_inventario columna de la alquileres La tabla debe existir en el Clave primaria columna de la inventario tabla, valores de la Identificación del cliente columna de la alquileres La tabla debe existir en el Clave primaria columna de la cliente tabla y valores de la Identificación del personal La columna de la tabla de alquileres simplemente existe en el Clave primaria columna de la personal mesa.Para esta consulta, busco más información sobre la película alquilada, en lugar del cliente del miembro del personal involucrado en el alquiler, por lo que agregaré el inventario tabla a la consulta como tabla secundaria.
Mirando a la columnas panel para el inventario mesa, puedo ver además una clave externa relación con el película mesa:
Figura 3: detalles de la tabla de inventario
Entonces el película La tabla también entra en la consulta.Mirando los detalles del película mesa, veo un tasa de arrendamiento columna, que debería ser lo que necesito para calcular los ingresos, pero no veo nada sobre la categoría de la película o los actores de la película:
Figura 4: Columnas en la tabla de películas.
Sin embargo, mirando el Mesas disponibles lista, veo un Actor de películas mesa y un categoría_película tabla, que parece asignar la identificación de una película a sus actores y categoría, así como actor y categoría tablas que tienen más información sobre los actores y categorías.Así que también querré estas tablas en la consulta.Sin embargo, si simplemente agrego esas 4 tablas, algo parece salir mal:
Figura 5: Unión automática fallida
Los íconos de "señal de alto" con la "X" en el medio significan que JMP no pudo unir automáticamente esas dos tablas, por lo que tendré que configurar las uniones manualmente.Si descubre que la función de unión automática de JMP con frecuencia no hace lo que necesita, puede desactivarla desde el triángulo rojo al lado Seleccionar tablas para consulta .
Si selecciono público.film_actor (t14) y haga clic en el Editar Unirse botón ( ), el Editar condición Aparece un cuadro de diálogo que me permite configurar la unión.Inicialmente, el cuadro de diálogo se ve así:
Figura 6: Edición de la condición de unión
ya que todavía no existe ninguna condición de unión.quiero unirme actor_de_película.id_de_película a inventario.film_id .Para lograr esto, simplemente selecciono el inventario mesa de la Columna izquierda enumerar y seleccionar id_película en ambas listas:
Figura 7: Edición de la condición de unión
De manera similar, puedo establecer la condición de unión para public.film_category ser inventario.film_id = categoría_película.id_película .Después de hacerlo, las cosas se ven mejor:
Figura 8: Las uniones entre tablas son válidas
Todas las tablas secundarias muestran el izquierda combinación externa Icono del diagrama de Venn.Usando la unión que acabamos de hacer entre Actor de películas y inventario como ejemplo, una unión externa izquierda significa que todo filas de la inventario tabla, que en este caso es la tabla de la izquierda, se incluirá en la consulta si hay una coincidencia en el Actor de películas tabla o no, pero solo filas de la Actor de películas tabla que coincide con una fila en el inventario Se incluirá la tabla.
Por cierto, el t1 , t2 , t3 , etc., entre paréntesis después de los nombres de las tablas están los alias de tabla que JMP asigna a las tablas a medida que las agrega a la consulta.Los alias de tabla facilitan la generación de SQL correcto y hacen que el SQL generado sea más legible.Puede cambiar el alias de la tabla para una tabla haciendo clic derecho en la tabla en el Primario o Secundario lista de tablas y selección Cambiar alias .Los alias de tablas no pueden contener espacios ni caracteres especiales.
Si necesita algo más que una unión externa izquierda, puede cambiar el tipo de unión usando las casillas de verificación en el Editar Unirse diálogo.El tipo de unión y el icono del diagrama de Venn cambiarán para reflejar el estado de las casillas de verificación.
Figura 9: Cambiar el tipo de unión
Para comprobar si tiene las uniones configuradas correctamente, puede hacer clic en el Vista previa Unirse botón.Esto ejecutará la consulta y mostrará una instantánea de los primeros cientos de filas de datos para que pueda comprobar que todo se ve bien.
Ahora que tenemos todas las tablas en la consulta que necesitamos, podemos hacer clic Crear consulta criar Consultor de construcción en sí, donde podemos especificar qué columnas incluir en la consulta, criterios de filtrado a utilizar, cómo se deben ordenar los datos resultantes y mucho más.
Sección 3: Creación de la consulta
Cuando el Consultor de construcción Inicialmente aparece una ventana para esta consulta, se ve así:
- El Nombre de la consulta El cuadro contiene el nombre de la consulta, que de forma predeterminada es el nombre de la tabla principal.El Nombre de la consulta es el nombre asignado a la tabla de datos JMP que resulta de ejecutar la consulta y también es el nombre de archivo predeterminado al guardar la consulta en un archivo.El Fuente de datos muestra el nombre de la fuente de datos que utiliza la consulta.
- El Mesas El cuadro muestra las tablas que se encuentran actualmente en la consulta.Para agregar o eliminar tablas o cambiar combinaciones, haga clic en el Cambiar… botón.
- El Columnas disponibles La lista muestra todas las columnas de todas las tablas de la consulta.Seleccione columnas de esta lista y arrástrelas a la Columnas incluidas , Filtros , o Ordenar por paneles.O, si lo prefiere, hay opciones de clic derecho para lograr lo mismo.
Nuevo en JMP 12.1: El Columnas disponibles panel ahora tiene un Buscar en caso de que necesite encontrar una columna en particular en una lista larga.Como con el otro Buscar cuadros, se filtra a medida que escribe. - El Columnas incluidas El panel muestra una cuadrícula de todas las columnas que incluye su consulta.Utilizar el Columnas incluidas grid para establecer cosas como el formato y el tipo de modelado que deben tener los datos de la columna después de importarlos a JMP.También puede especificar agregaciones junto con Agrupar por para columnas si desea que sus datos se resuman antes de ingresar a JMP.
También hay una Muestra pestaña en este panel para generar muestras aleatorias de datos en el servidor, para aquellas bases de datos que admiten muestreo. - El Vista previa de consulta La pestaña en esta área se actualiza automáticamente para mostrar una instantánea de los datos que devolverá su consulta cuando la ejecute. El SQL La pestaña muestra el SQL que Consultor de construcción se está generando en función de las selecciones actuales.El Script posterior a la consulta La pestaña le permite especificar un script JSL que se ejecutará una vez completada la consulta.El Estado de la consulta La pestaña muestra el estado de las consultas que se están ejecutando en segundo plano y le permite cancelarlas.
- El Filtros El panel le permite especificar criterios para filtrar los datos (creando la cláusula WHERE) y convertir el filtro en un mensaje que se ejecuta cada vez que ejecuta la consulta.
- El Ordenar por El panel le permite especificar la columna o columnas que se utilizarán para ordenar las filas devueltas (cláusula ORDER BY).
Agregar columnas
Cada consulta necesita algunas columnas.Agregue columnas a la consulta utilizando cualquiera de estos métodos:
- Haga clic en el Añadir todo botón para agregar todas las columnas disponibles de todas las tablas en la consulta
- Seleccione columnas específicas de la Columnas disponibles lista y haga clic Agregar o arrástrelos.
- Haga doble clic en una columna del Columnas disponibles lista.
Para esta consulta, agregaré id_película , título , y tasa de arrendamiento desde el película mesa, categoria ID y nombre desde el categoría mesa, y id_actor , nombre de pila , y apellido desde el actor mesa.
Figura 10: Después de agregar columnas inicialmente
Utilizando el Nombre JMP, tipo de modelado y Formato columnas de la Columnas incluidas , puedo controlar cuál será el nombre, el tipo de modelado y el formato de cada columna después de importar los datos a JMP.
Figura 11: Después de ajustar los detalles de la columna
Para los propósitos de este análisis, también preferiría que los nombres de los actores estuvieran concatenados en una sola columna en lugar de dividirse en columnas separadas. nombre de pila y apellido columnas.Para lograrlo, puedo agregar un columna calculada seleccionando Agregar columna calculada desde el menú del triángulo rojo en la Columnas disponibles panel.
Esto agregará una columna llamada Calc1 hacia Columnas disponibles lista, pero puedo hacer clic derecho y usar Cambiar nombre de columna para cambiarle el nombre a Nombre del actor , agréguelo a la consulta y elimine nombre de pila y apellido .Así es como se ve la vista previa de la consulta después de realizarla:
Figura 12: Vista previa de consulta con columna calculada
(Esos valores de Nombre de actor pueden parecer un poco extraños, pero de hecho son los nombres correctos de la base de datos.Los nombres de los actores parecen haber sido generados emparejando aleatoriamente un nombre con un apellido).
Guardando la consulta
En este punto, tengo suficiente tiempo invertido en esta consulta y me gustaría guardarla para no perder mi trabajo.Simplemente haga clic en Ahorrar botón en la parte inferior derecha de la Consultor de construcción ventana para guardar la consulta.Se le pedirá que proporcione un nombre de archivo, con el texto del Nombre de la consulta caja suministrada por defecto.nombraré la consulta categoría_película_actor .Se mostrará un mensaje en la parte inferior izquierda de la Consultor de construcción ventana que confirma que la consulta fue guardada:
Al guardar una consulta se crea un archivo con un .jmpquery extensión.De vuelta en el Consultor de construcción ventana, notarás que el Nombre de la consulta se ha cambiado para que coincida con el nombre del archivo, por lo que ahora es categoría_película_actor .
Si necesita crear otra consulta similar a la que tiene abierta, pero desea conservar la original, puede utilizar el Guardar como… para guardar una copia con un nombre diferente.
Ejecutando la consulta
También puedo ejecutar la consulta en este punto para crear una tabla de datos JMP que contenga todas las filas de la base de datos.Haga clic en el Ejecutar consulta botón en la parte inferior de la Consultor de construcción ventana para ejecutar la consulta. De forma predeterminada, JMP ejecuta consultas en segundo plano para que pueda continuar trabajando mientras se ejecutan las consultas.Utilizar el Estado de la consulta pestaña en la sección inferior central de la ventana para ver el estado de las consultas que aún están en proceso desde este Consultor de construcción ventana, o utilizar Ver > Consultas en ejecución para ver el estado de todas las consultas que se están ejecutando actualmente en segundo plano.Esta consulta en particular tarda sólo uno o dos segundos y devuelve 88.020 filas:
Figura 13: Resultados de la consulta en la tabla de datos JMP
Observe que la tabla de datos JMP resultante tiene 3 scripts y un SQL variable de tabla definida:
Respondiendo las preguntas
En este punto, estoy cerca de poder responder las preguntas originales para las que estaba buscando respuestas, pero tengo que tomar una decisión: ¿Quiero que la base de datos resuma los resultados o quiero incorporar los datos sin procesar a ¿JMP y que JMP haga el trabajo?Si los datos sin procesar no son demasiado grandes para caber en la memoria y no toma un tiempo prohibitivo importarlos, entonces importar los datos sin procesar a JMP y realizar el análisis allí tiene muchas ventajas: JMP es mucho más capaz de analizar datos que un sistema relacional. base de datos.
Para la tarea que nos ocupa, es una simple cuestión de utilizar el Distribución plataforma en nombre de la categoría y Nombre del actor , usando Tasa de arrendamiento como el frecuencia variable.Si ordeno los histogramas resultantes por Contar ascendente , obtengo un resultado que responde a nuestras dos preguntas:
Figura 14: Uso de la plataforma de distribución en el resultado de la consulta
Sin embargo, si traer todos los datos sin procesar fue prohibitivo en tamaño o tiempo transcurrido, puedo usar como alternativa el Agregación columna en el Columnas incluidas panel para que la base de datos resuma los datos.Sin embargo, para ello tendré que responder las dos preguntas una por una.
Para responder a la pregunta de ¿Qué géneros de películas generan más ingresos? , Puedo eliminar las columnas que tienen que ver con la información del actor de la consulta y pedirle a la base de datos que sume Tasa de arrendamiento agrupar por nombre de la categoría , y luego puedo ordenar el resultado por la suma Tasa de arrendamiento .Aquí están los pasos:
- Haga clic en el Agregación columna para Tasa de arrendamiento y seleccione Suma .
Darse cuenta de Agrupar por se comprueba para todas las variables que no tienen una agregación especificada.Una vez que cualquier columna de una consulta especifica una agregación, todas las columnas de la consulta que lo hacen no especificar que una agregación debe ser Agrupar por columnas. - Haga clic derecho en el Nombre de la variable columna para Tasa de arrendamiento y seleccione Ordenar por .
- Seleccionar SUMA(t4.tasa_alquiler) en el Ordenar por y haga clic en el botón de flecha que apunta hacia abajo ( Descendente ).
El resultado se ve así:
De manera similar, quitando las columnas de categorías y volviendo a colocar las columnas de actores, puedo responder la pregunta de ¿Qué actores generan más ingresos? :
Filtración
Volvamos un momento al estado en el que nuestra consulta recuperaba todos los datos sin procesar y estábamos usando el Distribución plataforma para responder a nuestras preguntas sobre ingresos.Una opción que tenemos a la hora de hacer el análisis en JMP es que podemos solicitar el script para el análisis JMP:
Luego puedo pegar ese script en el Script posterior a la consulta panel de Consultor de construcción :
Figura 15: Agregar un script JSL posterior a la consulta
Ese script ahora se ejecutará cada vez que ejecute la consulta.
Ahora me gustaría refinar un poco mis preguntas.En lugar de mirar los ingresos por categorías y actores para todos los alquileres en la base de datos, es posible que desee verlos según el país donde se alquiló la película, la tienda donde se alquiló o en un rango de fechas determinado.
El alquiler la mesa tiene fecha_alquiler , y Identificación del cliente campos, así que estoy cerca de tener lo que necesito.Vimos antes que Identificación del cliente es una referencia de clave externa al cliente mesa.Desde el cliente tabla, podemos obtener el país de donde es el cliente y la tienda donde se alquiló el DVD.
Si hago clic en Cambiar… botón en el Mesas panel de Query Builder, puedo regresar y agregar más tablas a la consulta.Para obtener información del país, tendré que agregar el cliente , DIRECCIÓN , ciudad , y país tablas a la consulta.Afortunadamente, con las relaciones clave que el administrador de esta base de datos ha configurado, todas las tablas se unen automáticamente con éxito.
Después de agregar las tablas adicionales necesarias, de vuelta en Query Builder, puedo agregar las columnas que necesito a la consulta: fecha_alquiler , id_tienda , y país .También configuré nombres JMP descriptivos y corrigí el tipo de modelado de id_tienda :
Figura 16: Después de agregar las columnas Fecha de alquiler, ID de tienda y País
Primero, filtremos por el país del cliente.Puedo hacer clic derecho en el t7.país variables en el Columnas incluidas panel y seleccione Filtrado por .Después de hacerlo, aparece un filtro por país en la Filtros panel:
Figura 17: Filtro de país
En este punto, puedo simplemente desplazarme hacia abajo por la lista de países y marcar los que me interesan, luego ejecutar la consulta y solo se incluirán las filas de esos países.
Del mismo modo, puedo agregar filtros para id_tienda y fecha_alquiler , después de lo cual el panel Filtros se ve así:
Cuando agrego el fecha_alquiler filtro, como es una variable continua, obtengo un Comparación sencilla filtrar de forma predeterminada.Lo que me gustaría en cambio es un Rango filtrar.Usando el menú del triángulo rojo al lado de t1.fecha_alquiler , puedo cambiar el tipo de filtro a Rango :
Ahora el filtro para t1.fecha_alquiler parece:
permitiéndome especificar un rango de fechas.Entonces, si quiero encontrar todos los alquileres del segundo semestre de 2005, puedo hacer:
Figura 18: Filtro de rango de fechas
Todos los tipos de filtros en Consultor de construcción Tenemos una forma de desactivarlos de manera efectiva, lo que le permite agregar varios filtros a una consulta aunque no todos estén activos para una consulta determinada.Para filtros categóricos que muestran una lista de valores, seleccionando el (Todo) El elemento en la parte superior desactiva el filtro.Para filtros que solicitan valores numéricos, establecer el valor en desaparecido (.) desactiva el filtro (o parte del filtro).Entonces, si quiero todos los alquileres a partir del 1 de enero de 2006 en adelante, puedo hacer esto:
Ahora el Filtros El panel para mi consulta se ve así. Figura 19 abajo.
| Figura 19: Uso de Missing para desactivar el filtro | Figura 20: Filtro con dos grupos OR |
Con las selecciones de filtro que se muestran en Figura 19 , al ejecutar la consulta ahora se devolverán filas en las que el país del cliente es Francia o Alemania y el DVD se alquiló en la tienda 2 a partir del 1 de enero de 2006. De forma predeterminada, se combinan varios filtros con AND, por lo que una fila debe coincidir con todos filtros que aparecerán en el resultado.Si necesita un filtro OR, haga clic en O , que creará otro grupo de filtros, y los dos grupos de filtros se combinarán mediante operación OR.Por ejemplo, el filtro que se muestra en Figura 20 arriba devuelve alquileres donde la categoría es Drama o el título de la película contiene "Balde" .
Filtros de mensajes
Si bien es bueno poder especificar criterios de filtro en Consultor de construcción , es posible que también desee crear una consulta para que la utilicen otras personas que en realidad no necesitan que se les presente la información completa. Consultor de construcción interfaz de usuario, pero desea que puedan ingresar diferentes criterios de filtro cada vez que ejecuten la consulta.La forma más sencilla de lograr esto es seleccionar Todos los mensajes al ejecutar en el menú del triángulo rojo junto a Filtros :
Eso convierte todos los filtros de la consulta en incitación filtros.Si solo desea que se le soliciten algunos de los filtros y no otros, puede activar y desactivar las solicitudes para cada filtro individual usando su menú de triángulo rojo.
Después de configurar Todos los mensajes en ejecución , cuando ejecuto esta consulta, se me solicita que establezca los valores del filtro de la manera que quiero:
La configuración predeterminada para el mensaje será la que se seleccionó en Consultor de construcción (o en el archivo de consulta guardado si la consulta se ejecuta directamente desde el archivo) antes de ejecutar la consulta.
También puede personalizar las etiquetas utilizadas en el mensaje.Por ejemplo, supongamos que en lugar de " País: "Quería que el mensaje dijera " País del cliente: ”.De vuelta en Query Builder, usando el menú del triángulo rojo para t7.país filtrar, seleccionar Configurar mensaje .Aparece un cuadro de diálogo que le permite cambiar la etiqueta del mensaje y también cambiar la tabla que proporciona los niveles de categoría para el mensaje:
Muestreo
Si su base de datos admite muestreo aleatorio, el Muestra pestaña en la sección central superior de Consultor de construcción mostrará las opciones de muestreo que admite su base de datos. He estado usando PostgreSQL para los ejemplos de este artículo, que admite el muestreo aleatorio simple de un número específico de filas:
SQL Server y Oracle admiten diferentes opciones de muestreo, por lo que Muestra La pestaña reflejará las diferentes opciones:
| Figura 21: Opciones de muestreo de SQL Server | Figura 22: Opciones de muestreo de Oracle |
El muestreo se realiza por la base de datos , antes de que los datos se descarguen en JMP, por lo que esta es una buena manera de limitar el número de filas recuperadas de consultas que, de otro modo, recuperarían un número prohibitivamente grande de filas.
Escribiendo su propio SQL
Reconocemos que, tantas características como Consultor de construcción tiene ahora o puede tener en el futuro, hay ocasiones en las que es posible que necesite una consulta que haga cosas que Consultor de construcción no apoya directamente.Además, muchos de ustedes ya han escrito y depurado minuciosamente algo de SQL que realiza exactamente la consulta que necesita que realice JMP.Consultor de construcción tiene dos opciones para proporcionar su propio SQL para una consulta:
- Expresión de filtro personalizado - Si Consultor de construcción está haciendo lo que necesita en cuanto a seleccionar tablas y especificar las columnas a incluir, pero solo desea incluir una expresión SQL personalizada como parte del filtro, puede seleccionar Agregar expresión personalizada desde el Filtros menú triángulo rojo:
| Figura 23: Agregar una expresión de filtro personalizada | Figura 24: El filtro resultante |
Ingrese el SQL que desee en el Expresión personalizada siempre que sea SQL válido para la consulta.
si un Expresión personalizada El filtro está configurado para ser un filtro de solicitud, la expresión personalizada aparecerá en el cuadro de diálogo de solicitud de filtro y será editable.
- Convertir la consulta completa a una Consulta SQL personalizada – Si solo desea escribir su propio SQL para una consulta completa, luego de iniciar Consultor de construcción y especificando la conexión de datos, puede utilizar el menú del triángulo rojo en la parte superior izquierda de Consultor de construcción al lado de Nombre de la consulta campo y seleccione Convertir a SQL personalizado :
Figura 25: Convertir a SQL personalizado
El Consultor de construcción La ventana cambiará al modo SQL personalizado, brindándole un área grande para ingresar su propio SQL.Si hubiera comenzado a crear la consulta de forma interactiva, el SQL personalizado El cuadro se inicializará con el SQL generado en función de las selecciones que haya realizado hasta el momento (consulte Figura 26 abajo).
Figura 26: Consulta SQL personalizada
Puede editar el SQL según sea necesario o pegarlo desde otra fuente y luego puede hacer clic en el Actualizar botón para actualizar el Vista previa de consulta .Algunas advertencias:
- No puede realizar un filtrado solicitado con una consulta SQL personalizada.
- Una vez que convierte una consulta a SQL personalizado y edita el SQL, si revierte la consulta a interactiva, perderá todas las personalizaciones que haya realizado en el SQL. Query Builder no intenta interpretar el SQL.
Sección 4: Gestión de consultas en segundo plano
Consultor de construcción ejecuta consultas en segundo plano de forma predeterminada, y también es posible desde JMP Scripting Language (JSL) ejecutar consultas en segundo plano (consulte Sección 6 ).JMP proporciona dos formas de ver la lista de consultas en segundo plano que se están ejecutando actualmente y detener la ejecución de consultas si es necesario.
Panel de estado de consulta
En la sección central inferior del Generador de consultas, hay una Estado de la consulta pestaña.Cualquier consulta en segundo plano que se haya iniciado desde esa ventana del Generador de consultas aparecerá en esa pestaña:
Si desea detener una consulta en ejecución, simplemente selecciónela en la lista y haga clic en el Detener botón.Si se han recuperado algunas filas, JMP abrirá una tabla de datos que contiene las filas que ya se han recuperado.El nombre de la tabla de datos reflejará que el resultado es parcial.
Ventana de consultas en ejecución
Desde el Vista menú en la ventana de inicio u otra ventana de JMP que incluya un menú, seleccione Ejecución de consultas .Esto abrirá una ventana que tiene el mismo aspecto que la Estado de la consulta pestaña de Consultor de construcción , pero el Ejecución de consultas la ventana contendrá todo consultas que se están ejecutando actualmente en segundo plano, independientemente de cómo se invocaron (una ventana del Generador de consultas o lenguaje de secuencias de comandos JMP):
Aquí nuevamente, seleccione una consulta y haga clic Detener para detener su ejecución, abriendo cualquier resultado parcial.
Sección 5: Compartir consultas
En la introducción se mencionó que Mesa abierta Creó scripts que eran difíciles de compartir porque la contraseña de la base de datos está incluida en la cadena de conexión.Consultor de construcción funciona de manera diferente. Si guardas un .jmpquery archivo para una consulta cuya conexión requirió una contraseña, y abre ese archivo en un editor de texto, verá algo como esto:
Puedes ver que el nombre de usuario ( UID ) está presente en la cadena de conexión, pero luego ves PWD=%_PWD_% .“%_PWD_%” no es la contraseña; es un marcador de posición colocado allí por Query Builder.Cuando Query Builder ve ese marcador de posición, sabe que originalmente se requería una contraseña, por lo que si esta consulta se abre en un momento en que el usuario que la abre no tiene ya una conexión con el Alquiler de DVD Postgres DSN, Query Builder sabrá solicitar la contraseña al usuario.
¿Y qué pasa con el propio DSN?¿Qué sucede si envía este archivo .jmpquery a un usuario de JMP que no tiene un DSN llamado Alquiler de DVD Postgres definido en su máquina?Mesa abierta no puede proceder en tal escenario, pero Consultor de construcción informará al usuario de esta situación y le dará la oportunidad de conectarse a un DSN diferente (que presumiblemente se conecta a la misma base de datos) o crear uno nuevo.
Debido a la posibilidad de que diferentes usuarios tengan diferentes DSN definidos en sus máquinas, algunas organizaciones han pasado a Conexiones sin DSN .Consultor de construcción Actualmente no se puede convertir una cadena de conexión basada en DSN a una sin DSN, pero si cambia una cadena de conexión en el script para una consulta de modo que en lugar de especificar una DSN , especifica un CONDUCTOR y SERVIDOR , Consultor de construcción propagará esta conexión sin DSN en cualquier script o archivo .jmpquery que genere.
Sección 6: Ejecución de consultas desde JMP Scripting Language (JSL)
Las consultas creadas por Query Builder también se pueden ejecutar desde Lenguaje de secuencias de comandos JMP (JSL) guiones. La mejor opción es guardar la consulta como .jmpquery archivo, ábralo desde JSL y ejecútelo. Supongamos, por ejemplo, que tiene una consulta guardada en el c:\usuarios\público\temp carpeta nombrada pg_rentals.jmpquery .Aquí hay algunas cosas que puede hacer con ese archivo de consulta de JSL:
- Abra un archivo .jmpquery en Query Builder:
abierto ( "c:\usuarios\public\temp\pg_rentals.jmpquery" ) ;
consulta = abierto ( "c:\usuarios\public\temp\pg_rentals.jmpquery" , Privado ) ;
- Abra la consulta en Consultor de construcción para editar:
consulta << Modificar ;
consulta << Correr () ;
- Ejecute la consulta en primer plano. La tabla de datos resultante se abrirá en JMP cuando finalice la consulta. dtResult será una referencia a la tabla de datos de resultados.
dtResultado = consulta << Ejecutar primer plano () ;
- Ejecute la consulta en primer plano, pero no no abra la tabla de datos resultante en JMP; mantenlo en privado.dtResult será una referencia a la tabla de datos de resultados.
dtResultado = consulta << Ejecutar primer plano ( Privado ) ;
- Ejecute la consulta en segundo plano. La tabla de datos resultante se abrirá en JMP cuando finalice la consulta. Ejecutar en segundo plano no puede devolver una referencia a la tabla de datos de resultados porque la consulta simplemente se inicia en segundo plano.Los ejemplos que siguen a este muestran cómo obtener una referencia a la tabla de datos de resultados cuando se ejecutan consultas en segundo plano.
consulta << Ejecutar en segundo plano () ;
- Ejecute la consulta en segundo plano. Si la consulta tiene éxito, invoque la plataforma de distribución en la tabla de datos de resultados ( consultaResultado es una variable JSL especial dentro de un En ejecución completa script que hace referencia a la tabla de datos de resultados). Si la consulta es cancelada por el usuario o tiene un error, escriba un mensaje en el Registro JMP.
consulta << Ejecutar en segundo plano (
En ejecución completa (
consultaResultado << Distribución ( Distribución nominal ( Columna ( : título ) ) ) ;
) ,
En ejecución cancelada ( Escribir ( "\!N¡La consulta fue cancelada!") ) ,
En caso de error ( Escribir ( "\!NError al ejecutar la consulta!") ; )
) ;
- Ejecute la consulta en segundo plano.Una vez completada exitosamente la consulta, invoque la función MyFunc. La tabla de datos de resultados de la consulta siempre se pasa como primer parámetro de la función.
:: MiFunc = Función ( { dt } , { Local predeterminado } ,
Escribir ( "\!nNúmero de alquileres: " , Nfilas ( dt ) ) ;
dt << Distribución ( Distribución nominal ( Columna ( : título ) ) ) ;
) ;
consulta << Ejecutar en segundo plano ( En ejecución completa ( :: MiFunc ) ) ;
Si abrir una consulta desde un archivo .jmpquery separado en su secuencia de comandos JSL no es satisfactorio, puede obtener la secuencia de comandos sin formato para crear un objeto de consulta programable desde el menú del triángulo rojo en la parte superior izquierda de la página. Consultor de construcción ventana:
Por ejemplo, invocando Guardar ejecutar script en la ventana de script para una consulta sencilla me da:
Nueva consulta SQL devuelve un objeto programable de consulta SQL como Abierto hace al abrir un archivo .jmpquery y se puede utilizar de la misma manera.
¿Qué hay de nuevo en JMP 12.1?
Buscar
Muchas personas con las que hablamos tienen montañas de datos en cientos de esquemas, tablas y columnas en sus bases de datos.En la versión JMP 12.1 de Query Builder, hemos agregado Buscar cuadros a las listas de esquemas, tablas y columnas para ayudarle a encontrar los que está buscando rápidamente:
Todos estos Buscar Los cuadros se actualizan a medida que escribe y tiene la opción de usar expresiones regulares para refinar su búsqueda.
Agregar tablas relacionadas
En el Seleccionar tablas para consulta En el cuadro de diálogo, si una tabla que ha agregado a la consulta tiene referencias de clave externa a otras tablas, puede agregar todas esas tablas relacionadas a la consulta haciendo clic en el botón Agregar tablas relacionadas botón.
Abrir como plantilla
Con frecuencia, necesita crear una consulta que sea muy similar a otra consulta que haya creado y guardado en un archivo .jmpquery.Siempre puede abrir la consulta previamente guardada, realizar cambios en ella y usar Guardar como para guardarlo en un archivo .jmpquery diferente, pero si accidentalmente presionara Ahorrar por error, su consulta original se sobrescribiría.El Abrir como plantilla Existe una característica para evitar ese escenario.Abrir como plantilla está disponible en el menú contextual de la ventana de inicio para archivos .jmpquery tanto en Mac como en Windows:
Cuando abres un .jmpquery como plantilla, en realidad estás abriendo un Copiar de la consulta original que no tiene asociación con el archivo .jmpquery en el disco.Si abrió una consulta como plantilla, realizó cambios y accidentalmente presionó el botón Ahorrar , se le pedirá que proporcione un archivo en el que guardar la consulta.
También puede abrir un archivo .jmpquery como plantilla desde JMP Scripting Language (JSL):
abierto ( "C:\Usuarios\Público\Temp\rentals.jmpquery" , Como plantilla ) ;
Editar una fórmula de columna calculada
En JMP 12.0, podía agregar una columna calculada a su consulta que se calcularía en el servidor de la base de datos y los valores resultantes se devolverían en la consulta.Sin embargo, si necesitaba editar la fórmula de una columna calculada que había creado anteriormente, no era posible hacerlo.En su lugar, tuvo que eliminar la columna calculada y agregar una nueva, lo que posiblemente requiera volver a crear una fórmula compleja.En JMP 12.1, ahora tiene la opción de editar una columna calculada.Simplemente haga clic derecho en la columna en Columnas disponibles y seleccione Editar fórmula :
Corrección de errores
Como era de esperar, hemos solucionado una serie de errores en Query Builder en JMP 12.1, algunos de los cuales fueron informados por los clientes.Si tiene algún problema al utilizar Query Builder, informe el problema a través del soporte técnico de SAS para que podamos solucionarlo.
Conclusión
Consultor de construcción es una nueva característica de JMP 12 (actualizada en JMP 12.1) que le ayuda a crear consultas SQL de múltiples tablas altamente personalizadas en sus bases de datos relacionales.El objetivo es facilitarle la introducción de sus datos en JMP en un formato listo para el análisis más rápidamente de lo que era posible antes y facilitarle el compartir sus consultas de forma segura.Esperamos que lo pruebes y nos envíes tus comentarios ( eric.hill@jmp.com ) sobre lo que funciona bien y lo que no funciona para usted.