Limpiar filtro
Artículo
Alberto Fuentes · 14 mayo, 2019
Hola a todos, me gustaría compartir una guía rápida publicada en el Developer Community sobre cómo conectar Apache Spark + Apache Zeppelin con InterSystems IRIS.
Introducción
Apache Spark es un framework opensource para computación en cluster. Proporciona una interfaz para desarrollar sobre clusters incluyendo paralelismo y tolerancia a fallos. Por ello es muy utilizado en Big Data.
Apache Zeppelin es un bloc de notas, que cuenta con una excelente interfaz de usuario para trabajar con diversos tipos análisis y machine learning.
Combinándolo con InterSystems IRIS, el conjunto funciona de tal manera que: IRIS proporciona los datos, Spark los lee y los trabajamos con en un bloc de notas de Apache Zeppelin.
Nota: la guía se ha confeccionado ejecutando los pasos sobre Windows 10.
Apache Zeppelin
Ahora instalaremos los programas necesarios. Antes que nada, descargamos Apache Zeppelin de su sitio oficial. Hemos utilizado zeppelin-0.8.0-bin-all.tgz que incluye Apache Spark, Scala, y Python.
Tras descomprimirlo, podemos ejecutar Zeppelin con el script con \bin\zeppelin.cmd, que se encuentra en la raíz de su carpeta Zeppelin. Tras aparecer "Done, zeppelin server started" ya podemos abrir la interfaz http://localhost:8080 en el navegador. Si todo se ejecutó de manera correcta, aparecerá lo siguiente:
Apache Spark
En la interfaz de Zeppelin, hacemos click en la esquina superior derecha de la pantalla en anonymous > Interpreter. Nos desplazamos hacia abajo y buscamos spark.
Hacemos click en el botón edit que aparece junto a spark y nos desplazamos hacia abajo para añadir las dependencias a las librerías jar que necesitamos (se encuentran en el directorio dev\java\lib\JDK de la instalación de IRIS).
Comprobar el funcionamiento
Vamos a comprobar que funciona. Creamos una nueva nota en Zeppelin, y en un párrafo nuevo escribimos el siguiente código para recuperar datos de una tabla Sample.Person:
var dataFrame=spark.read.format("com.intersystems.spark").option("url", "IRIS://localhost:51773/NAMESPACE").option("user", "UserLogin").option("password", "UserPassword").option("dbtable", "Sample.Person").load()
// dbtable - pasar el nombre de la tabla a cargar (e.g. Sample.Person)
La URL de IRIS tiene la siguiente forma:IRIS://ipAddress:superserverPort/namespace:
El protocolo IRIS es una conexión JDBC hecha sobre TCP/IP que ofrece una conexión de memoria compartida con Java.
ipAddress — La dirección IP de la instancia InterSystems IRIS.
superserverPort — El número de puerto del superservidor para la instancia IRIS (no es el puerto web). Recuerda que para consultar el número puerto del superservidor de IRIS puedes ir al Portal de Administración del sistema System Administration > Configuration > System Configuration > Memory and Startup (SuperServer port)
Namespace - Namespace de la instancia al que vamos a conectarnos.
Al ejecutarlo, si todo va bien aparecerá como FINISHED
Conclusión
En esta guía descubrimos cómo hacer que Apache Spark, Apache Zeppelin e InterSystems IRIS trabajen en conjunto. En próximos artículos hablaremos sobre las distintas formas que existen para analizar datos.
Enlaces
El sitio oficial de Apache Spark
Documentos disponibles sobre Apache Spark
El protocolo IRIS
Cómo utilizar InterSystems Spark Connector
Este artículo está etiquetado como "Mejores prácticas" ("Best practices")
(Los artículos con la etiqueta "Mejores prácticas" incluyen recomendaciones sobre cómo desarrollar, probar, implementar y administrar mejor las soluciones de InterSystems).
Anuncio
David Reche · 24 jul, 2019
Ya están disponibles las versiones de prueba de InterSystems IRIS e IRIS for Health 2019.3.La imagen del contenedor está disponible a través de la página de descargas para prueba del Centro de Soporte Internacional (WRC). .El número de compilación de estas versiones es 2019.3.0.302.0Los anuncios oficiales se harán dentro de poco, con anuncios independientes para cada producto. InterSystems IRIS Data Platform 2019.3 es una versión CD (continuous delivery) de InterSystems IRIS. Incluye muchas funcionalidades nuevas:Continuous Delivery Releases of InterSystems IRISInterSystems API ManagerNode-level Architecture for Sharding and SQL SupportInfrastructure and Cloud Deployment ImprovementsPort Authority for Monitoring Port Usage in Interoperability ProductionsX12 Element Validation in Interoperability ProductionsNew Framework for Coding Business Hosts in JavaJava and .NET Gateway Reentrancy InterSystems IRIS for Health 2019.3 incluye todas las mejoras de InterSystems IRIS. Además, esta versión incluye otras actualizaciones:FHIR STU3 PATCH SupportNew IHE Profiles XCA-I and IUAX12 Element Validation in Interoperability Productions Estas nuevas funcionalidades se detallan en:la versión preliminar de la documentación y las notas de la versión de InterSystems IRIS 2019.3 la versión preliminar de la documentación y las notas de la versión de InterSystems IRIS for Health 2019.3 Al ser una versión CD, solo está disponible en OCI (Open Container Initiative), es decir, en formato contenedor Docker. Las plataformas soportadas para producción y desarrollo se detallan en el Documento de plataformas soportadas. Para más información sobre lo que es una versión CD, revisad por favor el artículo sobre el nuevo plan de versiones (publicado en la Developer Community).Las versiones de prueba permiten a nuestros clientes empezar a trabajar con nuevas funcionalidades y características. Están soportadas cuando se utilicen con fines de desarrollo o pruebas, no en producción.
Artículo
Jose-Tomas Salvador · 2 sep, 2019
¡Hola Desarrolladores!Esta es la segunda publicación sobre recursos para desarrolladores. Esta parte es sobre Open Exchange.Utilizando Open Exchange para avanzar en la tecnología de InterSystemsInterSystems Open Exchange es una galería de herramientas de aplicaciones, conectores y librerías, que los desarrolladores de InterSystems publican para compartir formas de trabajar, enfoques y hacer negocio. Todas las aplicaciones están o construidas con InterSystems Data Platform o pensadas para ser usadas en desarrollos con nuestra tecnología.Si eres un desarrollador principiante en nuestra tecnología, puedes echar un vistazo a las aplicaciones de la categoría Technology Example. Todas las aplicaciones en esa categoría vienen con repositorios con el código fuente, así que podrás ejecutar los ejemplos en un contenedor docker de IRIS, en tu propio equipo servidor, en servidores en la nube o en una sandbox de IRIS en la nube.Ejemplos: Igualmente, echa un vistazo a las categorias Tools y Developer Environment para utilizar herramientas de desarrollador en tecnología IRIS Data Platform. Estas categorías contienen aplicaciones que ayudan a los desarrolladores en su trabajo del día a día, para aumentar la velocidad de su proceso de desarrollo, configurar nuevas formas de gestión de cambio e integración continua.Ejemplos: La categoría Frameworks te ayudará a sacar mejor provecho de las librerías de interoperabilidad con los frameworks más populares para desarrollar más rápido tus soluciones con InterSystems Por ejemplo, puedes utilizar Python, node.js, Laravel, etc. para construir soluciones con IRIS.Ejemplos: Por último, utiliza stars sorting para saber qué aplicaciones son más populares entre los desarrolladores de IRIS.¡No olvides suscribirte al tag OpenExchange para no perderte ningún anuncio de aplicaciones Open Exchange y no dudes en plantear tus preguntas o comentarios a la Comunidad de Desarrolladores!
Anuncio
Esther Sanchez · 26 sep, 2019
¡Hola Comunidad!
Tenemos un nuevo vídeo en el canal de YouTube de la Comunidad de Desarrolladores en inglés, grabado por @Stefan.Wittmann
Serialización JSON y XML de datos persistentes en InterSystems IRIS
¿Tienes que trabajar con JSON o XML?
InterSystems IRIS soporta herencia múltiple y ofrece varias herramientas integradas para facilitar la conversión entre XML, JSON y objetos, cuando lo necesites.
Descubre más sobre las posibilidades de desarrollo multi-modelo de InterSystems IRIS en nuestra web: learning.intersystems.com.
¡Esperamos que os resulte útil!
Artículo
Estevan Martinez · 22 oct, 2019
El DBMS de InterSystems incorpora una tecnología para trabajar con datos no estructurados (iKnow) y una tecnología de búsqueda de textos completos (iFind). Decidimos profundizar en ambas y hacer algo útil. Como resultado, tenemos DocSearch, una aplicación web para realizar búsquedas en la documentación de InterSystems utilizando iKnow y iFind.
Cómo funciona la documentación de Caché
La documentación en Caché se basa en la tecnología Docbook. Tiene una interfaz web (que incluye la posibilidad de realizar búsquedas sin utilizar iFind ni iKnow). Los artículos se almacenan en clases de Caché, lo que nos permite realizar consultas de estos datos y, por supuesto, crear nuestra propia herramienta de búsqueda.
Qué son iKnow y iFind
Intersystems iKnow es una tecnología que se desarrolló para el análisis de datos no estructurados, y proporciona acceso a estos mediante la indexación de frases e instancias en ellos. Para iniciar el análisis, primero necesita crear un dominio, es decir, un almacenamiento para datos no estructurados y subir un texto en él.
The iFind technology es un módulo DBMS de Caché para llevar a cabo búsquedas de texto completo en las clases de Caché. iFind utiliza muchas clases de iKnow para realizar búsquedas inteligentes de texto. Para utilizar iFind en sus consultas, debe introducir un índice especial iFind en su clase de Caché.
Existen tres tipos de índices iFind, cada uno de los cuales ofrece todas las funciones del tipo anterior, más algunas funciones adicionales:
El índice principal (%iFind.Index.Basic): es compatible con la búsqueda y las combinaciones de palabras
El índice semántico (%iFind.Index.Semantic): es compatible con la búsqueda de objetos en iKnow
La búsqueda analítica (%iFind.Index.Analytic): es compatible con todas las funciones iKnow de la búsqueda semántica, así como con la información sobre las rutas y la proximidad de las palabra
Dado que la documentación de las clases se almacena en un namespace separado, si desea que las clases estén disponibles en el nuestro, el programa de instalación también realiza un mapeo de los paquetes y los globals.
Código de instalación para el mapeo
XData Install [ XMLNamespace = INSTALLER ]
{
<Manifest>
// Specify the name of the namespace
<IfNotDef Var="Namespace">
<Var Name="Namespace" Value="DOCSEARCH"/>
<Log Text="Set namespace to ${Namespace}" Level="0"/>
</IfNotDef>
// Check if the area exists
<If Condition='(##class(Config.Namespaces).Exists("${Namespace}")=1)'>
<Log Text="Namespace ${Namespace} already exists" Level="0"/>
</If>
// Creating the namespace
<If Condition='(##class(Config.Namespaces).Exists("${Namespace}")=0)'>
<Log Text="Creating namespace ${Namespace}" Level="0"/>
// Creating a database
<Namespace Name="${Namespace}" Create="yes" Code="${Namespace}" Ensemble="" Data="${Namespace}">
<Log Text="Creating database ${Namespace}" Level="0"/>
// Map the specified classes and globals to a new namespace
<Configuration> <Database Name="${Namespace}" Dir="${MGRDIR}/${Namespace}" Create="yes" MountRequired="false"
Resource="%DB_${Namespace}" PublicPermissions="RW" MountAtStartup="false"/>
<Log Text="Mapping DOCBOOK to ${Namespace}" Level="0"/>
<GlobalMapping Global="Cache*" From="DOCBOOK" Collation="5"/>
<GlobalMapping Global="D*" From="DOCBOOK" Collation="5"/>
<GlobalMapping Global="XML*" From="DOCBOOK" Collation="5"/>
<ClassMapping Package="DocBook" From="DOCBOOK"/>
<ClassMapping Package="DocBook.UI" From="DOCBOOK"/>
<ClassMapping Package="csp" From="DOCBOOK"/>
</Configuration>
<Log Text="End creating database ${Namespace}" Level="0"/>
</Namespace> <Log Text="End creating namespace ${Namespace}" Level="0"/>
</If>
</Manifest>
}
El dominio que iKnow requiere se construye sobre la tabla que contiene la documentación. Debido a que utilizamos una tabla como fuente de datos, utilizaremos a SQL.Lister. El campo de contenido tiene el texto de la documentación, así que lo especificaremos como el campo de datos. El resto de los campos se describirán en los metadatos.
Código del instalador para crear un dominio
ClassMethod Domain(ByRef pVars, pLogLevel As %String, tInstaller As %Installer.Installer) As %Status
{
#Include %IKInclude
#Include %IKPublic
set ns = $Namespace
znspace "DOCSEARCH"
// Create a domain or open it if it exists
set dname="DocSearch"
if (##class(%iKnow.Domain).Exists(dname)=1){
write "The ",dname," domain already exists",!
zn ns
quit
}
else {
write "The ",dname," domain does not exist",!
set domoref=##class(%iKnow.Domain).%New(dname)
do domoref.%Save()
}
set domId=domoref.Id
// Lister is used for searching for sources corresponding to the records in query results
set flister=##class(%iKnow.Source.SQL.Lister).%New(domId)
set myloader=##class(%iKnow.Source.Loader).%New(domId)
// Building a query
set myquery="SELECT id, docKey, title, bookKey, bookTitle, content, textKey FROM SQLUser.DocBook"
set idfld="id"
set grpfld="id"
// Specifying the fields for data and metadata
set dataflds=$LB("content")
set metaflds=$LB("docKey", "title", "bookKey", "bookTitle", "textKey")
// Putting all data into Lister
set stat=flister.AddListToBatch(myquery,idfld,grpfld,dataflds,metaflds)
if stat '= 1 {write "The lister failed: ",$System.Status.DisplayError(stat) quit }
//Starting the analysis process
set stat=myloader.ProcessBatch()
if stat '= 1 {
quit
}
set numSrcD=##class(%iKnow.Queries.SourceQAPI).GetCountByDomain(domId)
write "Done",!
write "Domain cointains ",numSrcD," source(s)",!
zn ns
quit
}
Para buscar dentro de la documentación, utilizamos el índice %iFind.Index.Analytic:
Index contentInd On (content) As %iFind.Index.Analytic(LANGUAGE = "en",
LOWER = 1, RANKERCLASS = "%iFind.Rank.Analytic");
Donde contentInd es el nombre del índice y content es el nombre del campo que creamos para el índice. El parámetro LANGUAGE = “en” establece el idioma del texto. El parámetro LOWER = 1 desactiva la sensibilidad para diferenciar las mayúsculas y las minúsculas. El parámetro RANKERCLASS = "%iFind.Rank.Analytic" permite que se utilice el resultado del algoritmo de clasificación TF-IDF.
Después de añadir y elaborar dicho índice, éste se puede utilizar, por ejemplo, en las consultas SQL. La sintaxis general para utilizar iFind en SQL es:
SELECT * FROM TABLE WHERE %ID %FIND
search_index(indexname,'search_items',search_option)
Después de crear el índice %iFind.Index.Analytic con esos parámetros, se generan varios procedimientos SQL del siguiente tipo: [table_name]_[index name]Procedure name
En nuestro proyecto, utilizamos dos de ellos:
DocBook_contentIndRank - devuelve el resultado del algoritmo de clasificación TF-IDF para una solicitud. El procedimiento tiene la siguiente sintaxis:
SELECT DocBook_contentIndRank(%ID, ‘SearchString’, ‘SearchOption’) Rank FROM DocBook
WHERE %ID %FIND search_index(contentInd,‘SearchString’, ‘SearchOption’)
DocBook_contentIndHighlight - devuelve los resultados de la búsqueda, donde las palabras buscadas se envolvieron en la etiqueta que se especificó:
SELECT DocBook_contentIndHighlight(%ID, ‘SearchString’, ‘SearchOption’,’Tags’) Text FROM DocBook
WHERE %ID %FIND search_index(contentInd,‘SearchString’, ‘SearchOption’)
Entraré en más detalles sobre esto más adelante en el artículo.
Qué obtenemos al final:
Autocompletado en el campo de búsqueda
Cuando empiece a introducir texto en el campo de búsqueda, el sistema le sugerirá posibles variantes de la consulta, para ayudarle a encontrar la información necesaria más rápidamente. Estas sugerencias se generan de acuerdo a la palabra (o su inicio) que se escribe. El sistema muestra las diez mejores palabras o frases que coinciden con la búsqueda. Este proceso utiliza iKnow, es decir, el método %iKnow.Queries.Entity.GetSimilar
Búsqueda difusa
iFind es compatible con la búsqueda difusa, para encontrar palabras que coincidan parcialmente con la cadena de búsqueda introducida. Esto se logra al medir la distancia de Levenshtein que existe entre dos palabras. La distancia Levenshtein es el número mínimo de cambios en un carácter (inserciones, eliminaciones o sustituciones) que son necesarios para convertir una palabra en otra. Esto puede utilizarse para corregir errores tipográficis, pequeñas variaciones en la escritura, diferentes formas gramaticales (por ejemplo, el plural y el singular).
En las consultas SQL que se realizan con iFind, el parámetro search_option es responsable de la búsqueda difusa. El parámetro search_option = 3 denota una distancia de Levenshtein de 2. Para establecer una distancia Levenshtein que sea igual a n, es necesario establecer el parámetro search_option en ‘3:n’. En la búsqueda de documentación se utiliza una distancia Levenshtein de 1, así que vamos a demostrar cómo funciona esto: Escribamos "ifind" en el campo de búsqueda.
Vamos a realizar una búsqueda difusa poniendo un error tipográfico de forma intencional. Como podemos ver, la búsqueda corrigió el error tipográfico y encontró los artículos necesarios.
Búsquedas complejas
Gracias a que iFind es compatible con las consultas complejas con corchetes y con los operadores AND OR NOT, pudimos implementar la funcionalidad de búsquedas complejas. Esto es lo que puede especificar en su consulta: una palabra, una combinación de palabras, una de varias palabras, excepciones. Los campos pueden completarse uno por uno, o todos al mismo tiempo. Por ejemplo, vamos a buscar artículos que contengan la palabra “iknow”, la combinación “rest api” y los que tengan “domain” o “UI”. Podemos ver que existen dos artículos de este tipo: Tenga en cuenta que en el segundo artículo se menciona Swagger UI, de modo que podemos modificar la consulta para que excluya los que contengan la palabra Swagger. Como resultado, únicamente encontramos un artículo:
Resaltado en los resultados de búsqueda
Como se indicó anteriormente, el uso del índice iFind crea el procedimiento DocBook_contentIndHighlight. Utilicemos lo siguiente:
SELECT DocBook_contentIndHighlight(%ID, 'search_items', '0', '<span class=""Illumination"">', 0) Text FROM DocBook
Para obtener el texto resultante dentro de una etiqueta
<span class=""Illumination"">
Esto le ayudará a resaltar visualmente los resultados de la búsqueda en el front-end.
Clasificación de los resultados de la búsqueda
Find es capaz de clasificar los resultados mediante el algoritmo TF-IDF. TF-IDF se utiliza con frecuencia en las tareas para analizar texto y en la búsqueda de datos, por ejemplo, como un criterio de importancia cuando se realiza una consulta de búsqueda en un documento.
Como resultado de la consulta SQL, el campo Rank contendrá la importancia de la palabra, la cual será proporcional al número de veces que la palabra se utilizó en un artículo, e inversamente proporcional a la frecuencia con que aparece la palabra en otros artículos.
SELECT DocBook_contentIndRank(%ID, ‘SearchString’, ‘SearchOption’) Rank FROM DocBook
WHERE %ID %FIND search_index(contentInd,‘SearchString’, ‘SearchOption’)
Integración con la búsqueda de documentos oficial
Después de la instalación, se añadirá el botón “Search using iFind” a la búsqueda de documentos oficial. Si el campo “Search words” está lleno, le llevará a la página de resultados de la búsqueda después de hacer clic en el botón “Search using iFind”. Si el campo está vacío, le llevará a una nueva página de búsqueda.
Instalación
Descargue la última versión disponible del archivo Installer.xml en la página correspondiente.
Importe el archivo Installer.xml hacia el namespace %SYS y realice la compilación.
Introduzca el siguiente comando dentro del terminal, en el namespace %SYS:
do ##class(Docsearch.Installer).setup(.pVars)
Después de eso, la búsqueda estará disponible en la siguiente dirección localhost:[port]/csp/docsearch/index.html
Demo
Aquí puede ver una demo online sobre cómo se realizan las búsquedas.
Conclusión
Este proyecto muestra las interesantes y útiles capacidades de las tecnologías iFind e iKnow, que hacen que la búsqueda de datos sea más relevante. Apreciamos mucho cualquier comentario o sugerencia que haga. El código fuente completo con el instalador y la guía de implementación está disponible en GitHub.
Anuncio
David Reche · 14 oct, 2019
¡Hola a tod@s!
Hoy anunciamos el lanzamiento de un Área de Descargas para Desarrolladores, con las versiones completas de InterSystems IRIS Community Edition e InterSystems IRIS for Health Community Edition. Están disponibles de forma gratuita para su uso en el desarrollo de aplicaciones. Cualquiera puede usar este área, tan solo debe registrarse, no es necesario ser cliente.
Se pueden descargar directamente desde la InterSystems Developer Community eligiendo Download InterSystems IRIS.
Esas instancias incluyen una licencia gratuita para utilizar durante 13 meses. Están limitadas a 10GB de datos de usuario, funcionan en equipos de hasta 8 núcleos, soportan 5 conexiones concurrentes y están soportadas para el desarrollo de aplicaciones. Plataformas disponibles: RedHat, Ubuntu, SUSE, Windows y macOS.
InterSystems IRIS e InterSystems IRIS for Health también están disponibles en formato contenedor desde el Docker Hub.
Para aprender más sobre nuestros productos, puedes visitar nuestra página Getting Started o las páginas de IRIS Data Platform y de InterSystems IRIS for Health en nuestra web. Para profundizar en el desarrollo de software, puedes visitar nuestra página para desarrolladores: Developer resource page.
Si ya tienes una cuenta de acceso con InterSystems (para acceder a la Comunidad de Desarrolladores o al Centro de Soporte Internacional WRC, por ejemplo), puedes usar esas credenciales para acceder al nuevo Área de Descargas para Desarrolladores.
Anuncio
Esther Sanchez · 24 oct, 2019
¡Hola desarrolladores!
Ya podéis ver el vídeo completo del webinar que realizaron la semana pasada @David.Reche y @Alberto.Fuentes:
Desarrollar y gestionar APIs con InterSystems IRIS Data Platform
En el webinar, desarrollan una API REST a partir de especificaciones OpenAPI (Swagger) y explican de forma práctica cómo exponer en formato JSON los objetos que tenemos almacenados en nuestra base de datos.
También muestran cómo gestionar APIs tratando aspectos como la gestión de tokens para consumidores de la API, monitorización de la actividad, cómo establecer controles para restringir el uso de la API por tráfico o cómo introducir nuevas versiones.
Todo está explicado de la forma más práctica posible, publicando los ejemplos en GitHub y utilizando imágenes Docker y Visual Studio Code
También podéis encontrar el vídeo en el canal de YouTube de la Comunidad de Desarrolladores en español >>
¡Esperamos que os resulte interesante!
Pssst... ¿De qué os gustaría que trataran los próximos webinars que realizaremos? ¡Nos encantaría ver vuestras propuestas en los comentarios!
Anuncio
David Reche · 7 nov, 2019
La versión 2019.3 de InterSystems IRIS, IRIS for Health e IRIS Studio ya está disponible.
Está disponible a través del Centro de Soporte Internacional, con número de compilación 2019.3.0.311.0.
InterSystems IRIS Data Platform 2019.3 incluye muchas funcionalidades nuevas:
Support for InterSystems API Manager (IAM)
Polyglot Extension (PeX) available for Java
Java and .NET Gateway Reentrancy
Node-level Architecture for Sharding and SQL Support
SQL and Performance Enhancements
Infrastructure and Cloud Deployment Improvements
Port Authority for Monitoring Port Usage in Interoperability Productions
X12 Element Validation in Interoperability Productions
Todas estas nuevas funcionalidades se detallan en la documentación y las notas de la versión de InterSystems IRIS 2019.3.
InterSystems IRIS for Health 2019.3 incluye todas las mejoras de InterSystems IRIS. Además, esta versión incluye búsquedas FHIR con parámetros encadenados (incluyendo encadenado inverso) y actualizaciones menores a FHIR y otros protocolos sanitarios.
FHIR STU3 PATCH Support
New IHE Profiles XCA-I and IUA
Estas nuevas funcionalidades se detallan en la documentación y las notas de la versión de IRIS for Health 2019.3.
InterSystems IRIS Studio 2019.3 es una imagen independiente para desarrollo, soportada sobre Microsoft Windows. Es compatible con la versión 2019.3 y anteriores de InterSystems IRIS e IRIS for Health, así como con Caché y Ensemble.
Consulta la documentación de IRIS Studio para más información.
2019.3 es una versión CD (Continuous Delivery, entrega continua), por lo que InterSystems IRIS e IRIS for Health 2019.3 solo están disponible en OCI (Open Container Initiative), es decir, en formato contenedor Docker. Las plataformas soportadas para producción y desarrollo se detallan en el documento de plataformas soportadas.
Anuncio
David Reche · 29 oct, 2019
¡Hola a tod@s!
Ya están disponibles las versiones de prueba de InterSystems IRIS, IRIS for Health e IRIS Studio 2019.4.
La imagen del contenedor está disponible a través de la página de descargas para prueba del Centro de Soporte Internacional (WRC).
El número de compilación de estas versiones es 2019.4.0.379.0.
InterSystems IRIS Data Platform 2019.4 incluye muchas funcionalidades nuevas:
Polyglot Extension (PeX) available for .Net
ICM support for Tencent Cloud
List Class available in the Native API for Java and .Net
New CSF (Configuration State File) facility
System security, performance, and efficiency enhancements
Container and Cloud Deployment improvements
InterSystems IRIS for Health 2019.4 incluye todas las mejoras de InterSystems IRIS. Además, esta versión incluye búsquedas FHIR con parámetros encadenados (incluyendo encadenado inverso) y actualizaciones menores a FHIR y otros protocolos sanitarios.
Estas nuevas funcionalidades se detallan en:
la documentación y las notas de la versión de InterSystems IRIS 2019.4
la documentación y las notas de la versión de IRIS for Health 2019.4
InterSystems IRIS Studio 2019.4 es una imagen independiente para desarrollo, soportada sobre Microsoft Windows. Es compatible con la versión 2019.4 y anteriores de InterSystems IRIS e IRIS for Health, así como con Caché y Ensemble.
Al ser una versión CD, solo está disponible en OCI (Open Container Initiative), es decir, en formato contenedor Docker. Las plataformas soportadas para producción y desarrollo se detallan en el Documento de plataformas soportadas.
Artículo
Alberto Fuentes · 10 ene, 2020
A continuación veremos cómo mostrar una lista de métricas de ejemplo disponibles a través del servicio `/api/monitor`.
En el [artículo anterior](https://es.community.intersystems.com/post/monitorización-de-intersyste...), echamos un vistazo al servicio que expone las métricas de IRIS en formato Prometheus. Veamos cómo configurar y ejecutar [IRIS preview release 2019.4](https://community.intersystems.com/post/intersystems-iris-and-iris-healt...) en un contenedor y listar las métricas disponibles.
Asumimos que tienes Docker instalado. Si no es así, descárgalo e instálalo para tu sistema operativo :)
Si ya te resulta familiar trabajar con IRIS y contenedores Docker, puedes saltar directamente al **Paso 2. Mostrar métricas**.
### Paso 1. Descargar and ejecutar IRIS en un contenedor
Sigue las instrucciones de [Preview Distributions](https://wrc.intersystems.com/wrc/coDistPreview.csp "Preview Distributions") para descargar la **Clave de Licencia Preview** y una **imagen Docker IRIS**. Por ejemplo, yo he escogido **InterSystems IRIS for Health 2019.4**.
Sigue las instrucciones de [First Look InterSystems Products in Docker Containers](https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=AF... "Run IRIS in a container instructions").
Este es el proceso que hemos seguido para cargar la imagen Docker. El comando `docker load` tardará algunos instantes en completarse.
```
$ pwd
/Users/myhome/Downloads/iris_2019.4
$ ls
InterSystems IRIS for Health (Container)_2019.4.0_Docker(Ubuntu)_12-31-2019.ISCkey irishealth-2019.4.0.379.0-docker.tar
$ docker load -i irishealth-2019.4.0.379.0-docker.tar
762d8e1a6054: Loading layer [==================================================>] 91.39MB/91.39MB
e45cfbc98a50: Loading layer [==================================================>] 15.87kB/15.87kB
d60e01b37e74: Loading layer [==================================================>] 12.29kB/12.29kB
b57c79f4a9f3: Loading layer [==================================================>] 3.072kB/3.072kB
b11f1f11664d: Loading layer [==================================================>] 73.73MB/73.73MB
22202f62822e: Loading layer [==================================================>] 2.656GB/2.656GB
50457c8fa41f: Loading layer [==================================================>] 14.5MB/14.5MB
bc4f7221d76a: Loading layer [==================================================>] 2.048kB/2.048kB
4db3eda3ff8f: Loading layer [==================================================>] 1.491MB/1.491MB
Loaded image: intersystems/irishealth:2019.4.0.379.0
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
intersystems/irishealth 2019.4.0.379.0 975a976ad1f4 3 weeks ago 2.83GB
```
Por simplicidad, copia la licencia al directorio que utilizaremos como almacenamiento persistente y renómbrala a `iris.key`;
```
$ mkdir -p /Users/myhome/iris/20194
$ cp 'InterSystems IRIS for Health (Container)_2019.4.0_Docker(Ubuntu)_12-31-2019.ISCkey' /Users/myhome/iris/20194/iris.key
$ cd /Users/myhome/iris/20194
$ ls
iris.key
```
Ejecuta IRIS utilizando el directorio que acabamos de crear para almacenamiento persistente;
```
$ docker run --name iris --init --detach --publish 52773:52773 --volume `pwd`:/external intersystems/irishealth:2019.4.0.379.0 --key /external/iris.key
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
009e52c121f0 intersystems/irishealth:2019.4.0.379.0 "/iris-main --key /e…" About a minute ago Up About a minute (healthy) 0.0.0.0:52773->52773/tcp iris
```
Genial! Ya puedes conectarte al [Portal de Gestión](http://localhost:52773/csp/sys/%25CSP.Portal.Home.zen "Home SMP") del contenedor que tenemos en ejecución. Entraremos con login/password _SuperUser/SYS_; a continuación, el sistema te pedirá que cambies la contraseña por defecto.
Dirígete a la configuración de las Aplicaciones Web. `System > Security Management > Web Applications`
Verás una aplicación web llamada `/api/monitor`, éste es el servicio que expone las métricas de IRIS.
> **No tienes que hacer nada adicional para que el servicio retorne las métrica, simplemente funciona! :)**
### Paso 2. Mostrar métricas
En artículos posteriores, emplearemos este endpoint desde Prometheus o SAM para recoger las métricas a intervalos específicos. Pero por ahora, vamos a mostrar la lista completa de métricas disponibles para la instancia. Una forma simple de hacerlo en Linux y OSX es lanzando un HTTP GET a través del comando `curl`;
```
$ curl localhost:52773/api/monitor/metrics
:
:
iris_cpu_usage 0
iris_csp_activity{id="127.0.0.1:52773"} 56
iris_csp_actual_connections{id="127.0.0.1:52773"} 8
iris_csp_gateway_latency{id="127.0.0.1:52773"} .588
iris_csp_in_use_connections{id="127.0.0.1:52773"} 1
iris_csp_private_connections{id="127.0.0.1:52773"} 0
iris_csp_sessions 1
iris_cache_efficiency 35.565
:
:
Y la lista continúa...
```
Otra forma muy útil de hacerlo es utilizar la aplicación [Postman](https://www.getpostman.com "POSTMAN"). Si tienes instalado Postman, puedes enviar un HTTP GET y examinar las métricas devueltas.
## Resumen
Esto es todo por ahora. En el próximo artículo, comenzaremos a recuperar los datos desde _Prometheus_ y veremos un ejemplo de un cuadro de mando de _Grafana_.
### Lista completa de métricas para el contenedor de prueba
Un sistema de producción tendrá muchas más métricas disponibles. Como podéis ver por algunas de las etiquetas, por ejemplo `{id="IRISLOCALDATA"}` hay métricas que son definidas por base de datos o por CPU por el tipo de proceso`{id="CSPDMN"}`.
```
iris_cpu_pct{id="CSPDMN"} 0
iris_cpu_pct{id="CSPSRV"} 0
iris_cpu_pct{id="ECPWorker"} 0
iris_cpu_pct{id="GARCOL"} 0
iris_cpu_pct{id="JRNDMN"} 0
iris_cpu_pct{id="LICENSESRV"} 0
iris_cpu_pct{id="WDSLAVE"} 0
iris_cpu_pct{id="WRTDMN"} 0
iris_cpu_usage 0
iris_csp_activity{id="127.0.0.1:52773"} 57
iris_csp_actual_connections{id="127.0.0.1:52773"} 8
iris_csp_gateway_latency{id="127.0.0.1:52773"} .574
iris_csp_in_use_connections{id="127.0.0.1:52773"} 1
iris_csp_private_connections{id="127.0.0.1:52773"} 0
iris_csp_sessions 1
iris_cache_efficiency 35.850
iris_db_expansion_size_mb{id="ENSLIB"} 0
iris_db_expansion_size_mb{id="HSCUSTOM"} 0
iris_db_expansion_size_mb{id="HSLIB"} 0
iris_db_expansion_size_mb{id="HSSYS"} 0
iris_db_expansion_size_mb{id="IRISAUDIT"} 0
iris_db_expansion_size_mb{id="IRISLOCALDATA"} 0
iris_db_expansion_size_mb{id="IRISSYS"} 0
iris_db_expansion_size_mb{id="IRISTEMP"} 0
iris_db_free_space{id="ENSLIB"} .055
iris_db_free_space{id="HSCUSTOM"} 2.3
iris_db_free_space{id="HSLIB"} 113
iris_db_free_space{id="HSSYS"} 9.2
iris_db_free_space{id="IRISAUDIT"} .094
iris_db_free_space{id="IRISLOCALDATA"} .34
iris_db_free_space{id="IRISSYS"} 6.2
iris_db_free_space{id="IRISTEMP"} 20
iris_db_latency{id="ENSLIB"} 0.030
iris_db_latency{id="HSCUSTOM"} 0.146
iris_db_latency{id="HSLIB"} 0.027
iris_db_latency{id="HSSYS"} 0.018
iris_db_latency{id="IRISAUDIT"} 0.017
iris_db_latency{id="IRISSYS"} 0.020
iris_db_latency{id="IRISTEMP"} 0.021
iris_db_max_size_mb{id="ENSLIB"} 0
iris_db_max_size_mb{id="HSCUSTOM"} 0
iris_db_max_size_mb{id="HSLIB"} 0
iris_db_max_size_mb{id="HSSYS"} 0
iris_db_max_size_mb{id="IRISAUDIT"} 0
iris_db_max_size_mb{id="IRISLOCALDATA"} 0
iris_db_max_size_mb{id="IRISSYS"} 0
iris_db_max_size_mb{id="IRISTEMP"} 0
iris_db_size_mb{id="HSLIB",dir="/usr/irissys/mgr/hslib/"} 1321
iris_db_size_mb{id="HSSYS",dir="/usr/irissys/mgr/hssys/"} 21
iris_db_size_mb{id="ENSLIB",dir="/usr/irissys/mgr/enslib/"} 209
iris_db_size_mb{id="IRISSYS",dir="/usr/irissys/mgr/"} 113
iris_db_size_mb{id="HSCUSTOM",dir="/usr/irissys/mgr/HSCUSTOM/"} 11
iris_db_size_mb{id="IRISTEMP",dir="/usr/irissys/mgr/iristemp/"} 21
iris_db_size_mb{id="IRISAUDIT",dir="/usr/irissys/mgr/irisaudit/"} 1
iris_db_size_mb{id="IRISLOCALDATA",dir="/usr/irissys/mgr/irislocaldata/"} 1
iris_directory_space{id="HSLIB",dir="/usr/irissys/mgr/hslib/"} 53818
iris_directory_space{id="HSSYS",dir="/usr/irissys/mgr/hssys/"} 53818
iris_directory_space{id="ENSLIB",dir="/usr/irissys/mgr/enslib/"} 53818
iris_directory_space{id="IRISSYS",dir="/usr/irissys/mgr/"} 53818
iris_directory_space{id="HSCUSTOM",dir="/usr/irissys/mgr/HSCUSTOM/"} 53818
iris_directory_space{id="IRISTEMP",dir="/usr/irissys/mgr/iristemp/"} 53818
iris_directory_space{id="IRISAUDIT",dir="/usr/irissys/mgr/irisaudit/"} 53818
iris_disk_percent_full{id="HSLIB",dir="/usr/irissys/mgr/hslib/"} 10.03
iris_disk_percent_full{id="HSSYS",dir="/usr/irissys/mgr/hssys/"} 10.03
iris_disk_percent_full{id="ENSLIB",dir="/usr/irissys/mgr/enslib/"} 10.03
iris_disk_percent_full{id="IRISSYS",dir="/usr/irissys/mgr/"} 10.03
iris_disk_percent_full{id="HSCUSTOM",dir="/usr/irissys/mgr/HSCUSTOM/"} 10.03
iris_disk_percent_full{id="IRISTEMP",dir="/usr/irissys/mgr/iristemp/"} 10.03
iris_disk_percent_full{id="IRISAUDIT",dir="/usr/irissys/mgr/irisaudit/"} 10.03
iris_ecp_conn 0
iris_ecp_conn_max 2
iris_ecp_connections 0
iris_ecp_latency 0
iris_ecps_conn 0
iris_ecps_conn_max 1
iris_glo_a_seize_per_sec 0
iris_glo_n_seize_per_sec 0
iris_glo_ref_per_sec 7
iris_glo_ref_rem_per_sec 0
iris_glo_seize_per_sec 0
iris_glo_update_per_sec 2
iris_glo_update_rem_per_sec 0
iris_journal_size 2496
iris_journal_space 50751.18
iris_jrn_block_per_sec 0
iris_jrn_entry_per_sec 0
iris_jrn_free_space{id="WIJ",dir="default"} 50751.18
iris_jrn_free_space{id="primary",dir="/usr/irissys/mgr/journal/"} 50751.18
iris_jrn_free_space{id="secondary",dir="/usr/irissys/mgr/journal/"} 50751.18
iris_jrn_size{id="WIJ"} 100
iris_jrn_size{id="primary"} 2
iris_jrn_size{id="secondary"} 0
iris_license_available 31
iris_license_consumed 1
iris_license_percent_used 3
iris_log_reads_per_sec 5
iris_obj_a_seize_per_sec 0
iris_obj_del_per_sec 0
iris_obj_hit_per_sec 2
iris_obj_load_per_sec 0
iris_obj_miss_per_sec 0
iris_obj_new_per_sec 0
iris_obj_seize_per_sec 0
iris_page_space_per_cent_used 0
iris_phys_mem_per_cent_used 95
iris_phys_reads_per_sec 0
iris_phys_writes_per_sec 0
iris_process_count 29
iris_rtn_a_seize_per_sec 0
iris_rtn_call_local_per_sec 10
iris_rtn_call_miss_per_sec 0
iris_rtn_call_remote_per_sec 0
iris_rtn_load_per_sec 0
iris_rtn_load_rem_per_sec 0
iris_rtn_seize_per_sec 0
iris_sam_get_db_sensors_seconds .000838
iris_sam_get_jrn_sensors_seconds .001024
iris_system_alerts 0
iris_system_alerts_new 0
iris_system_state 0
iris_trans_open_count 0
iris_trans_open_secs 0
iris_trans_open_secs_max 0
iris_wd_buffer_redirty 0
iris_wd_buffer_write 0
iris_wd_cycle_time 0
iris_wd_proc_in_global 0
iris_wd_size_write 0
iris_wd_sleep 10002
iris_wd_temp_queue 42
iris_wd_temp_write 0
iris_wdwij_time 0
iris_wd_write_time 0
iris_wij_writes_per_sec 0
```
Anuncio
David Reche · 12 dic, 2019
La versión 2019.4 de InterSystems IRIS, IRIS for Health e IRIS Studio ya ha sido lanzada.
Está disponible a través del Centro de Soporte Internacional, con número de compilación 2019.4.0.383.0.
InterSystems IRIS Data Platform 2019.4 incluye muchas funcionalidades nuevas:
New Automatic Configuration Customization
System security, performance, and efficiency enhancements including node tables
ICM support for Tencent Cloud
List Class available in the Native API for Java and .Net
Container and Cloud Deployment improvements
SQL enhancements
InterSystems IRIS for Health 2019.4 incluye todas las mejoras de InterSystems IRIS. Además, esta versión incluye búsquedas FHIR con parámetros encadenados (incluyendo encadenado inverso) y actualizaciones menores a FHIR y otros protocolos sanitarios.
Estas nuevas funcionalidades se detallan en:
la documentación y notas de la versión de InterSystems IRIS 2019.4
la documentación y notas de la versión de IRIS for Health 2019.4
InterSystems IRIS Studio 2019.4 es una imagen independiente para desarrollo, soportada sobre Microsoft Windows. Es compatible con la versión 2019.4 y anteriores de InterSystems IRIS e IRIS for Health, así como con Caché y Ensemble.
2019.4 es una versión CD (Continuous Delivery, entrega continua), por lo que InterSystems IRIS e IRIS for Health 2019.4 solo están disponible en OCI (Open Container Initiative), es decir, en formato contenedor Docker. Las plataformas soportadas para producción y desarrollo se detallan en el documento de plataformas soportadas.
Anuncio
David Reche · 29 ene, 2020
¡Hola a tod@s!
Ya están disponibles las versiones de prueba de InterSystems IRIS e IRIS for Health 2020.1
Los kits para la instalación y las imágenes del contenedor están disponibles en la página de descargas para prueba del Centro de Soporte Internacional (WRC).
El número de compilación de estas versiones es 2020.1.0.199.0 (Nota: número actualizado de 197 a 199 el 12/2/20).
InterSystems IRIS Data Platform 2020.1 incluye muchas funcionalidades nuevas:
Kernel Performance enhancements, including reduced contention for blocks and cache lines
Universal Query Cache - every query (including embedded & class ones) now gets saved as a cached query
Universal Shard Queue Manager - for scale-out of query load in sharded configurations
Selective Cube Build - to quickly incorporate new dimensions or measures
Security improvements, including hashed password configuration
Improved TSQL support, including JDBC support
Dynamic Gateway performance enhancements
Spark connector update
MQTT support in ObjectScript
(NOTA: esta versión de prueba no incluye las actualizaciones de TLS 1.3 y OpenLDAP, que están planificadas para Disponibilidad General)
InterSystems IRIS for Health 2020.1 incluye todas las mejoras de InterSystems IRIS. Además, esta versión incluye:
In-place conversion to IRIS for Health
HL7 Productivity Toolkit including Migration Tooling and Cloverleaf conversion
X12 enhancements
FHIR R4 base standard support
Como es una versión EM (Extended Maintenance), podéis comprobar las diferencias entre la versión 2020.1 y la 2019.1. Éstas se detallan en:
las notas de la versión de InterSystems IRIS 2020.1
las notas de la versión de IRIS for Health 2020.1
El borrador de la documentación está disponible aquí:
Documentación de InterSystems IRIS 2020.1
Documentación de IRIS for Health 2020.1
Las plataformas en las cuales InterSystems IRIS and IRIS for Health 2020.1 están soportadas para producción y desarrollo se detallan en el Documento de plataformas soportadas.
Anuncio
David Reche · 1 abr, 2020
La versión 2020.1 de InterSystems IRIS, IRIS for Health e IRIS Studio ya ha sido lanzada.
Los kits para la instalación y los contenedores están disponibles en la página de distribución de software del Centro de Soporte Internacional (WRC), incluyendo las ediciones "community" de InterSystems IRIS e IRIS for Health.
El número de compilación de estas versiones es 2020.1.0.215.0.
InterSystems IRIS Data Platform 2020.1 incluye muchas funcionalidades nuevas:
Mejora en rendimiento del Kernel, incluyendo contención reducida para bloques y lineas cacheadas
Universal Query Cache - cada consulta (incluyendo embebidas y de clases) ahora se guardan como cached query
Universal Shard Queue Manager - para hacer scale-out de la carga de consultas en configuraciones de shard
Construcción de cubos selectiva - para incorporar rápidamente nuevas dimensiones o medidas
Mejoras en Seguridad, incluyendo configuraciones para hashed password
Soporte a TSQL mejorado, incluyendo el soporte a JDBC
Mejoras de rendimiento en el Dynamic Gateway
Actualización del conector Spark
Soporte de MQTT en ObjectScript
InterSystems IRIS for Health 2020.1 incluye todas las mejoras de InterSystems IRIS. Además, esta versión incluye:
Conversión In-place a IRIS for Health
HL7 Productivity Toolkit incluyendo Migration Tooling y conversión desde Cloverleaf
Mejoras en X12
Soporte base al estándar FHIR R4
Como es una versión EM (Extended Maintenance), podéis comprobar las diferencias entre la versión 2020.1 y 2019.1. Éstas se detallan en:
las notas de la versión de InterSystems IRIS 2020.1
las notas de la verisón de IRIS for Health 2020.1
La documentación está disponible aquí:
Documentación de InterSystems IRIS 2020.1
Documentación de IRIS for Health 2020.1
InterSystems IRIS Studio 2020.1 es una imagen independiente para desarrollo, soportada sobre Microsoft Windows. Es compatible con la versión 2020.1 y anteriores de InterSystems IRIS e IRIS for Health, así como con Caché y Ensemble.
Las plataformas soportadas para producción y desarrollo se detallan en el documento de plataformas soportadas.
Anuncio
David Reche · 16 abr, 2020
Ya están disponibles las versiones de prueba 2020.2 de InterSystems IRIS, IRIS for Health e IRIS Studio.
El número de compilación de estas versiones es 2020.2.0.196.0.
Las imágenes del contenedor, los componentes y las licencias de evaluación están disponibles en la página de descargas para pruebas del Centro de Soporte Internacional (WRC).
Los contenedores de la edición Community también pueden obtenerse desde el Docker Store usando los siguientes comandos:
docker pull store/intersystems/iris-community:2020.2.0.196.0
docker pull store/intersystems/irishealth-community:2020.2.0.196.0
InterSystems IRIS Data Platform 2020.2 añade soporte para TLS 1.3, lo que ofrece una seguridad mejorada y un mejor rendimiento. También incluye varias mejoras de eficiencia y otras pequeñas mejoras.
InterSystems IRIS for Health 2020.2 incluye todas las mejoras de InterSystems IRIS. Además, esta versión incluye transformaciones de datos bi-direccionales entre FHIR R4 y SDA, soporte para el perfil IHE RMU y otras pequeñas mejoras.
Todas estas mejoras se detallan en la:
Documentación y notas de la versión de InterSystems IRIS 2020.2
Documentación y notas de la versión de IRIS for Health 2020.2
InterSystems IRIS Studio 2020.2 es una imagen independiente para desarrollo, soportada sobre Microsoft Windows. Es compatible con la versión 2020.2 y anteriores de InterSystems IRIS e IRIS for Health, así como con Caché and Ensemble.
Al ser una versión CD (Continuous delivery, entrega continua), solo está disponible en OCI (Open Container Initiative), es decir, en formato contenedor Docker. Las imágenes para contenedor están disponibles para motores del run-time compatibles con OCI para Linux x86-64 y Linux ARM64, como se detalla en el documento de plataformas soportadas.
Anuncio
Esther Sanchez · 8 mayo, 2020
¡Hola a tod@s!
Os invitamos a un nuevo webinar en español: "Implementar integraciones con .NET o Java sobre InterSystems IRIS", el 20 de mayo, a las 16:00 CEST.
Si eres desarrollador de integraciones con conocimiento en .NET o Java, este webinar te muestra como aumentar aún más la potencia de la plataforma de interoperabilidad InterSystems IRIS, sin necesidad de desarrollar directamente en el framework.
Y si ya conoces IRIS, o hasta desarrollas con fluidez nuevos componentes de forma nativa, aprenderás cómo incorporar fácilmente librerías externas Java o .NET para enriquecer rápidamente tus integraciones.
¡Te esperamos! Regístrate aquí >> ¡Recordad! Mañana miércoles 20, webinar gratuito sobre Implementación de integraciones con .NET o Java sobre InterSystems IRIS, a las 16:00 CEST 👍 El webinar empieza en 5 minutos. ¡No os lo perdáis!
Podeis verlo en esta página: https://www.youtube.com/watch?v=RocDlHVbS0Y&feature=youtu.be