Artículo Luis Angel Pérez Ramos · feb 20, 2023 4m read

Estimados miembros de la Comunidad.

Una problemática muy común en muchos usuario es el uso de una base de datos externa como entrada de datos a una producción de IRIS. Como ya sabréis tenemos dos métodos de conexión directas a bases de datos externas desde IRIS, la primera es mediante ODBC y la segunda es recurriendo a una conexión vía JDBC.

En nuestro ejemplo procederemos a realizar una conexión mediante JDBC y para ello montaremos un pequeño proyecto en Docker para que podáis jugar con ello cuanto queráis.

Tenéis el código disponible en esta url: https://github.

0
0 360
Artículo Luis Angel Pérez Ramos · ene 24, 2023 3m read

¡Hola desarrolladores!

Python tiene un ecosistema muy extenso y potente que contiene miles de librerías y paquetes disponibles, especialmente en Data Science.

Por ello, quería hacer un primer intento de usar la funcionalidad Python Embebido para, de forma sencilla, importar una librería de Python llamada datetime, generar datos con un componente timestamp y persistirlo en InterSystems IRIS for Health. También funcionará en InterSystems IRIS.

0
0 348
Artículo Luis Angel Pérez Ramos · ene 16, 2023 4m read

Motivación

Empecé en este proyecto pensando en cómo permitir que el código Python trabaje de forma natural con el almacenamiento escalable y el eficiente mecanismo de recuperación de datos ofrecido por los globals de IRIS, a través de Python Embebido.

Mi idea inicial era crear algo como un diccionario de implementación de Python usando globals, pero pronto me di cuenta de que antes debía ocuparme de la abstracción de objetos.

0
0 165
Artículo Luis Angel Pérez Ramos · ene 2, 2023 5m read

¡Hola desarrolladores!

Comparto con vosotros una plantilla de Python Embebido básica, que recomiendo como punto de partida para cualquier proyecto general con InterSystems IRIS que use Python Embebido.

Funcionalidades:

  • Python Embebido configurado;
  • 3 ejemplos con difentes formas de desarrollar con Python Embebido;
  • VSCode configurado;
  • Docker disponible;
  • Demo online disponible;
  • Desarrollo ZPM First disponible.

Vamos a comentar estas funcionalidades.

0
0 164
Artículo Luis Angel Pérez Ramos · dic 20, 2022 3m read

Llamamos Procesamiento Híbrido Transaccional y Analítico (HTAP por sus siglas en inglés) a la capacidad de recuperar numerosos registros por segundo, mientras que a la vez se permiten consultas simultáneas en tiempo real. También se llama Analítica Transaccional ó Transanalítica y es un elemento muy útil en escenarios en los que disponemos de un flujo constante de datos en tiempo real, como podría ser el caso de datos provenientes de sensores IIOT o información de las fluctuaciones en el mercado bursátil y nos permite satisfacer la necesidad de consultar estos conjuntos de datos en tiempo real o casi en tiempo real.

Os comparto un ejemplo que podréis ejecutar en el que se recibe un conjunto de datos en streaming, con entradas de datos constantes y consultas continuas a la vez. El ejemplo está desarrollado en varias plataformas y podréis comparar cómo reaccionó cada una de ellas, con la velocidad de entrada y salida de datos en cada plataforma y su rendimiento. Las plataformas con las que he probado en esta demo son: InterSystems IRIS, MariaDB y MySQL.

0
0 164
Artículo Luis Angel Pérez Ramos · dic 14, 2022 2m read

En este artículo, mostraré cómo subir y descargar archivos vía http desde los productos de InterSystems.

A menudo desde la comunidad surgen preguntas sobre como trabajar con archivos a través de http y normalmente os emplazamos a revisar el proyecto FileServer, que muestra la subida/descarga de archivos. Pero me gustaría hablar un poco más de cómo podemos enviar y recibir archivos desde los productos de InterSystems.

1
0 1049
Artículo Luis Angel Pérez Ramos · dic 14, 2022 2m read

Me gustaría compartir con la comunidad un log de datos de un servidor web de un cliente nuestro desde hace muchos años, una compañia operadora.

Su servidor web funciona sobre Apache y contiene datos útiles para analizar la carga y la actividad de los motores de búsqueda.

Tras instalar el proyecto, podrás ver los datos generados durante unos cuantos meses y que muestran la carga y la actividad típica de clientes, bots... también podrás ver cómo dicha carga depende del día de la semana, si son vacaciones o no, así como del momento del día.

El diseño del cubo se encuentra incluido en el

0
0 105
Artículo Luis Angel Pérez Ramos · nov 23, 2022 13m read

Antecedentes

Versión Fecha Cambios
V1 08/02/2022 Lanzamiento Inicial
V1.1 06/04/2022 Generación de certificados con un archivo sh en vez de un pki-script
Uso de variables de entorno en los archivos de configuración

¡Hola Comunidad!

¿Ya habéis configurado un entorno en mirror? ¿Tenéis una red privada, una dirección IP virtual y una configuración SSL? Después de hacer esto un par de veces, me di cuenta de que es muy largo, y hay muchos pasos que hay que realizar manualmente para generar certificados y configurar cada instancia de IRIS.

0
2 265
Artículo Luis Angel Pérez Ramos · nov 22, 2022 5m read

Últimamente me han preguntado en varias ocasiones cómo hacer que el Framework Laravel funcione con InterSystems IRIS Data Platform. Ha pasado un tiempo desde la publicación de este anuncio sobre Laravel e InterSystems Caché. En este artículo mostraremos unas breves instrucciones sobre cómo configurar un proyecto Laravel para usarlo con InterSystems IRIS a través de ODBC.

¿Qué es Laravel?

Laravel es un framework PHP basado en arquitectura MVC. Usar Laravel simplifica y acelera el desarrollo del backend, a la vez que permite crear aplicaciones web modernas y seguras.

0
1 160
Artículo Luis Angel Pérez Ramos · oct 28, 2022 8m read

Acceso a Producción Programática

Para editar producciones programáticamente (interfaces) puedes usar una combinación de APIs de Interoperabilidad y consultas SQL.

Namespace actual

Es importante conocer el namespace y la producción en la que estás trabajando.

// Object script 
// El namespace activo se guarda en esta variable
$$$NAMESPACE 
// Imprimir el namespace
Write $$$NAMESPACE
# Python
import iris
# Este método retorna el namespace activo
iris.utils._OriginalNamespace()
# Imprimir el namespace
print(iris.utils.
0
1 184
Anuncio Luis Angel Pérez Ramos · oct 21, 2022

Quiero anunciar el lanzamiento de algo muy interesante - y revolucionario, de hecho. Puede sonar exagerado, pero no creo que hayáis visto nada como esto, ¡ni si quiera imaginar que sería posible!

Hemos sacado un nuevo módulo JavaScript/Node.js llamado glsdb del que podéis leer todo aquí:

https://github.com/robtweed/glsdb

No obstante, para el propósito de este anuncio, me voy a centrar en una parte de glsdb: sus APIs que abstraen las Clases de IRIS (o Cache) como Objetos JavaScript equivalentes.

Con esto quiero decir que los Objetos de JavaScript serán en realidad ¡Objetos IRIS persistidos en la base de datos! 

0
0 107
Artículo Luis Angel Pérez Ramos · oct 17, 2022 2m read

Acabo de redactar un ejemplo rápido para ayudar a un colega a cargar datos en IRIS desde R usando RJDBC y pensé que sería útil compartirlo aquí para futuras consultas.

Fue bastante sencillo, aparte de que a IRIS no le gusta el uso de puntos "." en los nombres de las columnas; la solución alternativa es simplemente renombrar las columnas. Alguien con más conocimientos que yo en R seguramente pueda ofrecer un enfoque más amplio smiley

# Es necesario un valor válido para el JAVA_HOME antes de cargar la librería (RJDBC)
Sys.setenv(JAVA_HOME="C:\\Java\\jdk-8.0.322.6-hotspot\\jre")
library(RJDBC)
library(dplyr)

# Conexión a IRIS – se requiere la ruta a la librería JAR de InterSystems JDBC JAR de tu instalación
drv <- JDBC("com.intersystems.jdbc.IRISDriver", "C:\\InterSystems\\IRIS\\dev\\java\\lib\\1.8\\intersystems-jdbc-3.3.0.jar","\"")
conn <- dbConnect(drv, "jdbc:IRIS://localhost:1972/USER", "IRIS Username", "IRIS Password")
dbListTables(conn)

# Para mayor confusión, cargar el dataset de IRIS:)
data(iris)

# A IRIS no le gustan los puntos "." en el nombre de las columnas, así que los renombramos. (Probablemente se pueda codificar de una forma más genérica, pero no soy muy bueno con R.)
iris <- iris %>% rename(sepal_length = Sepal.Length, sepal_width = Sepal.Width, petal_length = Petal.Length, petal_width = Petal.Width)

# dbWriteTable/dbGetQuery/dbReadTable funcionan
dbWriteTable(conn, "iris", iris, overwrite = TRUE)
dbGetQuery(conn, "select count(*) from iris")
d <- dbReadTable(conn, "iris")
0
0 136
Artículo Luis Angel Pérez Ramos · sep 29, 2022 2m read

Como sabéis, el namespace EnsDemo de Ensemble ya no está disponible en IRIS.

Esto es algo positivo, ya que IRIS está orientada a la nube y por lo tanto debe ser lo más ligera y rápida posible. La nueva forma de compartir ejemplos de código o módulos es a través de git, integración continua y OpenExchange.

Pero no os preocupéis, somos conscientes de que, en algunos casos, querréis volver a recuperar ejemplos y código presente en EnsDemo, ya sea como fuente de inspiración o para ayudaros a revisar buenas prácticas.

0
0 166