Acceder a una vinculación e incrustación de objetos, base de datos u OLEDB desde Query Builder (QB) de JMP.A menudo los clientes me preguntan si es posible acceder a nuestra base de datos Proficy Historian desde JMP.Así que pensé en compartir algunas opciones para responder la pregunta de ¿Cómo accedo a los datos creados en torno a la interfaz basada en COM, como Historian?
El lenguaje de secuencias de comandos de JMP o JSL proporciona solo los recursos necesarios para acceder a cualquier tipo de datos que puedan ser necesarios y que aún no estén disponibles directamente desde el cuadro de diálogo de apertura del archivo.JMP proporciona una gran cantidad de conectores de datos prediseñados que pueden leer directamente datos de muchas fuentes de datos de archivos planos, como Triple-S XML, CSV, SAS y SPSS.No me centraré en este tipo de archivo en esta publicación de blog, sino que centraré su atención en el acceso a datos de bases de datos relacionales como Oracle, PostgreSQL y SQLite o de otras fuentes OLEDB como Historian.
El acceso a bases de datos relacionales se realiza mediante la interfaz JMP Query Builder.Se puede acceder a QB yendo al menú Archivo, seleccionando Base de datos y luego Generador de consultas.

Como este enfoque es familiar para los usuarios actuales de JMP, decidí que este sería un buen paso preliminar para acceder a datos de almacenes de datos que no son ODBC, como la base de datos Historian.
Aquí presento dos enfoques y los detalles de cada una de las respectivas soluciones.Además, proporciono algunas ideas sobre los beneficios y limitaciones de cada una de las soluciones. El primero es a través de una consulta personalizada y la segunda es a través de una conversión o instantánea del OLEDB a un formulario que JMP Query Builder puede consumir más fácilmente.
El primer enfoque, coincidentemente, es el más sencillo para acceder al Historian OLEDB utilizando el Query Builder de JMP.Simplemente hace uso de una consulta personalizada.La única configuración de la base de datos requerida fue crear un enlace de base de datos desde el servidor SQL al Historian OLEDB.

Establezca una conexión a la base de datos utilizando el servidor vinculado como se muestra a continuación (en mi caso, el nombre del servidor vinculado se llamaba "MY_HISTORIAN").

Haga clic en Siguiente para abrir el cuadro de diálogo del generador de consultas. El cuadro de diálogo le permitirá seleccionar esquemas y tablas dentro de un esquema que se utilizarán para crear la consulta.S Seleccione cualquiera de los esquemas y una tabla de la conexión del servidor SQL (cualquier tabla funcionará ya que en realidad no la estamos usando directamente).Elegí el esquema sys y la tabla all_columns como mi tabla de datos principal.

Haga clic en el botón Crear consulta para comenzar a crear una consulta.Al hacer clic en el triángulo rojo debajo del menú de la tabla en la parte superior izquierda, podrá insertar una consulta personalizada.
JMP le proporcionará una alerta preguntándole si está seguro de querer convertir su consulta existente en una consulta personalizada.Haga clic en el botón "Aceptar" para continuar.
Las consultas personalizadas pueden ser algo que haya escrito anteriormente, como lo siguiente:
SELECCIONE Nombre de etiqueta, Marca de tiempo, Valor, Calidad DE OPENQUERY (iHist,' SET StartTime=ayer-12Day, EndTime=Hoy, IntervalMillisegundos=1Hour, SamplingMode=Calculated, CalculationMode=Maximum SELECT * FROM ihRawData WHERE TagName LIKE *simulation00001')
Una consulta personalizada ya no será editable. cantar la interfaz QB. Simplemente pegue la consulta original para aplicar la consulta desde su portapapeles.Al hacer clic en el botón Actualizar se mostrará una vista previa de sus datos.
C Haga clic en Ejecutar consulta para importar la tabla de datos de ihRawData Historian como una tabla de datos JMP.
La parte clave de la sintaxis es la opción OPENQUERY.Esto indica a SQL Server que pase la consulta directamente al servidor vinculado para su procesamiento.
Una vez que el servidor vinculado procesa la solicitud, se devuelve una tabla a JMP donde luego puede realizar más visualizaciones y análisis.Uno de los beneficios del enfoque de consulta personalizada es la simplicidad de implementación; solo requiere que crees un servidor vinculado.La interfaz QB hace el resto del trabajo.Este enfoque funcionaría bien si su DBA le ha proporcionado una biblioteca de consultas disponibles desde las que puede copiar y pegar. La desventaja de este enfoque es que debe saber de antemano qué consulta desea ejecutar con poca libertad para explorar y consultar más sus datos.
Para aquellos que no están familiarizados con el uso del Generador de consultas de JMP, he proporcionado un enlace a algunos recursos adicionales, incluido un Masterización Avanzada Sesión del JMP presentada por chris.kirchberg .
El segundo enfoque no requiere ningún cambio en la configuración de la base de datos. Sin embargo, requiere la instalación de Python y una biblioteca adicional de Python (win32com.client).Simplemente instale el Complemento de herramientas de base de datos OLE y sigue las indicaciones.El complemento ejecuta un script de Python (gracias por la ayuda para escribir el script de Python desde bryan.boone) eso a su vez crea una instantánea de OLEDB y la guarda como una base de datos SQLite.Luego se puede acceder directamente a la base de datos SQLite desde QB como se muestra.Los programas externos como Python se pueden ejecutar utilizando el lenguaje de secuencias de comandos JMP o JSL.JSL tiene una función llamada Ejecutar programa.En nuestra reciente Discovery Summit Europe se presentó un excelente documento sobre este mismo tema por parte de hecht@jmp con derecho " Ejecutar programa: el enlace JMP® a otros programas " que proporciona varios ejemplos detallados sobre cómo utilizar esta función.
El script de Python ejecuta algunas opciones de línea de comando que se le pasan desde la interfaz de usuario (UI).La interfaz de usuario se creó completamente con JSL y se pudo implementar para cualquier analista al empaquetarla como un complemento JMP.Para instalar el complemento, el analista simplemente hace doble clic.El complemento ahora está disponible para su uso desde el menú de complementos.

Hay tres opciones de menú disponibles para seleccionar.Los menús se titulan Base de datos OLE instantánea para usar con Query Builder , Consulta QB personalizada a un OLEDB y Utilidades . La primera opción convierte una base de datos OLE o una única tabla de base de datos OLE a un formato de base de datos SQLite.La opción de consulta QB personalizada envía una consulta creada con JMP Query Builder (QB) a una base de datos OLE para su procesamiento.Las últimas opciones en el menú Utilidades permiten eliminar una tabla o todos los datos de la base de datos SQLite y opciones para modificar las opciones predeterminadas en el complemento. Con la última opción en el menú de utilidades, proporciono un mecanismo para actualizar la configuración predeterminada del complemento.Si el número de observaciones es grande, utilice la opción para establecer el número máximo de filas para recuperar de la base de datos OLE.A continuación muestro cómo establecer el número máximo de registros para que vuelva a ser 10. Configurar el máximo de registros en -1 recuperará todas las filas de cada tabla en la base de datos OLE.

Conectar. Seleccionar. Construir. Importar.
Utilice QB para establecer una conexión a la base de datos SQLite que acaba de crear.Ahora puede utilizar la misma interfaz para comenzar a crear sus consultas.Una vez que haya creado una consulta que le guste, ejecute la opción "Consulta QB personalizada a un OLEDB" para copiar la consulta que ejecutará el script Python por segunda vez.Esta vez, cuando se ejecute la consulta, devolverá todas las filas que coincidan con la cláusula donde de la consulta.Ahora, con la tabla disponible en JMP, tiene acceso completo a las capacidades de visualización y modelado de JMP.

¿A qué fuentes de datos te conectas habitualmente?¿Conocía la función Ejecutar programa dentro de JSL?
Déjeme un comentario con cualquier fuente de datos a la que se conecte habitualmente u otras formas en las que haya utilizado Ejecutar programa en sus propios scripts.
Hasta la próxima... ¡Feliz codificación!
* GE Intelligent Platforms, Inc es una subsidiaria de propiedad absoluta de General Electric Company. La marca y el logotipo de GE son marcas comerciales de General Electric Company.