Artículo
· 13 mayo, 2021 Lectura de 13 min
Compilaciones en InterSystems IRIS

El orden es una necesidad para todos, pero no todos lo entienden de la misma manera (Fausto Cercignani)

Nota de traducción: este articulo se publicó originalmente basado en Caché. Para esta traducción se revisó todo el contenido usando InterSystems IRIS.

Descargo de responsabilidad: En este artículo se utilizan el ruso y el alfabeto cirílico como ejemplos, pero esto solamente es importante para las personas que utilizan InterSystems IRIS en lugares en los que no se habla inglés. Ten en cuenta que este artículo se refiere principalmente a las compilaciones de NLS, que son diferentes a las compilaciones de SQL. Las compilaciones en SQL (por ejemplo, SQLUPPER, SQLSTRING, EXACT que significa que no hay compilación, TRUNCATE, etc.) son funciones reales que se aplican de manera explícita a algunos valores, y cuyos resultados a veces se almacenan explícitamente en los subíndices de los *globals. De hecho, cuando se almacenan en subíndices, de forma natural estos valores seguirían la compilación de NLS (“Compilaciones de SQL y NLS”).*

0 0
0 155
Artículo
· 3 dic, 2021 Lectura de 2 min
Tablas y clases semi-persistentes

Si defines una tabla/clase persistente, el compilador de clases genera una definición de almacenamiento adecuada. Otra opción es definir un mapeo SQL para un almacenamiento global que ya existe. Esto ya se explicó estupendamente en otra serie de artículos: El arte del mapeo de globales para Clases 1 de 3

0 0
0 224

Con IRIS 2021.1, realizamos una importante revisión de nuestra API de utilidades SQL en %SYSTEM.SQL. Sí, eso fue hace algún tiempo, pero la semana pasada un cliente hizo unas preguntas sobre ello y entonces @Tom Woodfin me empezó a presionar un poco ;-) para que describiera con más detalle en la Comunidad de Desarrolladores las razones de estos cambios. ¡Así que allá vamos!

0 0
0 109

sql-embedding cover

InterSystems IRIS 2024 ha introducido recientemente los tipos de vectores. Esta adición os permite trabajar con búsquedas por vectores, habilitando búsquedas eficientes de similitud, agrupación y una amplia gama de otras aplicaciones. En este artículo, profundizaremos en las complejidades de los tipos de vectores, exploraremos sus aplicaciones y os proporcionaremos ejemplos prácticos para guiar vuestra implementación.

1 0
0 92

Introducción

InterSystems IRIS permite crear APIs REST utilizando clases ObjectScript y el framework %CSP.REST. Esta funcionalidad permite desarrollar servicios modernos para exponer datos a aplicaciones web, móviles o integraciones externas.

En este artículo aprenderás cómo crear una API REST básica en InterSystems IRIS, incluyendo:

0 0
0 80

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:

0 0
0 150
Artículo
· 22 jul, 2020 Lectura de 8 min
El arte de mapear Globals para Clases (5 de 3)

Ejemplos de Mapeos

Obviamente, si tienes un cuatro artículo en la trilogía, debes apostar por las ganancias económicas y escribir el quinto, ¡así que aquí está!

Nota: Hace muchos años, Dan Shusman me dijo que el mapeo de globals es una forma de arte. No existe una manera correcta o incorrecta de hacerlo. El modo en que interpretes los datos te llevará al tipo de mapeo que realizas. Como siempre, existe más de una forma de llegar a la respuesta final. Según vayas revisando mis ejemplos, verás que hay algunos en los que se mapean el mismo tipo de datos, pero de distintas maneras.

0 0
0 190
Artículo
· 27 mayo, 2021 Lectura de 8 min
IRIS en Astronomía

En este artículo voy a mostrar los resultados de una comparación entre IRIS y Postgress manejando datos Astronómicos.

Introducción

Desde siempre el cielo nocturno nos ha fascinado. Todos hemos soñado con las estrellas y la posibilidad de que haya vida en otros planetas.

1 0
1 237

¡Hola desarrolladores!

Hay una actualización reciente para las imágenes de la comunidad de desarrolladores de InterSystems IRIS e InterSystems IRIS For Health.

Esta versión incluye soporte para variables de entorno.

Actualmente se soportan 3 variables de entorno:

  • IRIS_USERNAME=usuario a crear
  • IRIS_PASSWORD=password del usuario
  • IRIS_NAMESPACE=crear namespace si no existe

Esto es lo que puedes hacer:

Arrancar iris con un usuario y password:

docker run --rm --name iris-sql -d -p 9091:1972 -p 9092:52773  -e IRIS_PASSWORD=demo -e IRIS_USERNAME=demo intersystemsdc/iris-community

2 0
0 157
Artículo
· 13 feb, 2025 Lectura de 3 min
Un vistazo a SQL Dinámico y SQL Embebido

A diferencia de la película mencionada en la imagen (para quienes no lo sepan, Matrix, 1999), la elección entre SQL Dinámico y SQL Embebido no es una elección entre la verdad y la fantasía, pero sigue siendo una decisión que debéis tomar. A continuación, intentaré hacer que vuestra elección sea más sencilla.

Si vuestra necesidad es la interacción entre el cliente y la aplicación (y, por lo tanto, la base de datos), SQL Dinámico puede ser más adecuado, ya que se "adapta" fácilmente a los cambios en las consultas. Sin embargo, este dinamismo tiene un costo: con cada nueva consulta, se remodela, lo que puede hacer que su ejecución sea más costosa. A continuación, se muestra un ejemplo sencillo de un fragmento de código en Python.

1 0
0 82

InterSystems IRIS Cloud SQL es un servicio en la nube completamente administrado, que acerca, a un amplio público de desarrolladores de aplicaciones y profesionales de datos, la potencia de las capacidades de InterSystems IRIS como base de datos relacional, utilizada por miles de empresas. InterSystems IRIS Cloud IntegratedML es una opción de database-as-a-service que ofrece un sencillo acceso a potentes funcionalidades de Machine Learning de forma nativa SQL, a través de un conjunto de sencillos comandos SQL que se pueden embeber fácilmente en el código de la aplicación para mejorarlos con modelos de Machine Learning que se ejecutan cerca de los datos.

Hoy anunciamos el Programa de Acceso a Desarrolladores para estas dos propuestas. Los desarrolladores de aplicaciones ahora pueden registrarse por sí mismos en el servicio, crear implementaciones y empezar a crear aplicaciones compuestas y servicios de datos inteligentes, con todas las tareas de aprovisionamiento, configuración y administración gestionadas por el servicio.

0 0
0 85

En este artículo, nos adentraremos en el funcionamiento de una aplicación publicada en OpenExchange llamada db-management-tool que sirve como herramienta de gestión de bases de datos, explorando la arquitectura y las tecnologías que la sustentan. Comprenderemos cómo funciona la aplicación para daros una visión de su diseño, cómo gestiona bases de datos, tablas y cómo la API interactúa con los datos.

1 0
0 65

19 de febrero de 2025 – Alerta: Consultas SQL que están devolviendo resultados incorrectos

InterSystems ha corregido dos problemas que pueden hacer que un pequeño número de consultas SQL devuelvan resultados incorrectos. Además, ha solucionado una inconsistencia en el manejo de los tipos de datos de fecha y hora, lo que podría provocar que algunas aplicaciones existentes que dependían del comportamiento anterior e inconsistente obtengan resultados diferentes e inesperados, aunque correctos.

0 0
0 67

La inyección SQL sigue siendo una de las vulnerabilidades más críticas en las aplicaciones basadas en bases de datos, ya que permite a los atacantes manipular consultas y, potencialmente, acceder o comprometer datos sensibles. En InterSystems IRIS, los desarrolladores tienen acceso tanto a SQL Dinámico como a SQL Embebido, cada uno con características distintas. Comprender cómo usarlos de forma segura es esencial para prevenir la inyección SQL.

0 0
0 34
Artículo
· 9 jun, 2021 Lectura de 3 min
Cómo mostrar globals por SQL SELECT
Este es un ejemplo de código que funciona en IRIS 2020.1 y en Caché 2018.1.3 
No se mantendrá sincronizado con las nuevas versiones      
¡NO está soportado por el servicio de soporte de InterSystems!   

Los globals en Caché, Ensemble e IRIS normalmente son invisibles a través de SQL.
En este ejemplo se muestra cómo verlos desde SQL.

0 0
0 164

¡Hola desarrolladores!

Como probablemente sabéis, en IRIS 2021 los nombres de los globals son aleatorios.

Y si creas clases de IRIS con DDL y quieres estar seguro de qué global se creó, seguramente te gustaría darle un nombre.

De hecho, se puede hacer.

Usa WITH %CLASSPARAMETER DEFAULTGLOBAL='^GLobalName' en la Tabla CREATE para que funcione. Documentación. Mirad este ejemplo:

0 0
0 152

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
0 130

El artículo de la August Article Bounty en Global Masters llamó mi atención, y uno de los temas propuestos me pareció bastante interesante para tratarlo. Así que esto es lo que me gustaría contarles a mis estudiantes sobre las tablas en IRIS y cómo se relacionan con el modelo de objetos.

Ante todo, InterSystems IRIS cuenta con un modelo de datos unificado. Esto significa que, cuando trabajáis con datos, no estáis atados a un único paradigma. Los mismos datos pueden ser accedidos y manipulados como una tabla SQL tradicional, como un objeto nativo o incluso como un array multidimensional (un global).

Esto quiere decir que, cuando creáis una tabla en SQL, IRIS genera automáticamente una clase de objeto correspondiente. Y, cuando definís una clase de objeto, IRIS la pone automáticamente a disposición como una tabla SQL. Los datos en sí mismos se almacenan una sola vez en el motor de almacenamiento multidimensional de IRIS, que es muy eficiente. El motor SQL y el motor de objetos son simplemente diferentes “lentes” para ver y trabajar con los mismos datos.

Primero, veamos la correlación entre el modelo relacional y el modelo de objetos:

Relacional Objeto
Tabla Clase
Columna Propiedad
Fila Objeto
Clave primaria Identificador de objeto

No siempre hay una correlación 1:1, ya que podéis tener varias tablas que representen una misma clase, por ejemplo. Pero es una regla general.

0 0
1 29
Artículo
· 10 jun, 2021 Lectura de 2 min
Cálculo del tamaño detallado de la clase/tabla

En los buenos tiempos, calcular el tamaño de los datos, flujos e índices para una clase/tabla era fácil - solo había que ejecutar %GSIZE y revisar los globals D, S, e I, respectivamente.

Sin embargo, hoy en día el sharding, los nombres de los globals optimizados y los índices en globals separados producen una salida %GSIZE parecida a esta:

0 0
0 157

InterSystems IRIS actualmente limita sus clases a 999 propiedades.

Pero, ¿qué hacer si necesita almacenar más datos por objeto?

Este artículo respondería a esta pregunta (con el apunte adicional de Community Python Gateway y cómo transferir conjuntos de datos amplios a Python).

En realidad, la respuesta es muy simple: InterSystems IRIS actualmente limita las clases a 999 propiedades, pero no a 999 primitivas. La propiedad en InterSystems IRIS puede ser un objeto con 999 propiedades y así sucesivamente; el límite se puede ignorar fácilmente.

1 0
0 121
Artículo
· 17 mayo, 2024 Lectura de 52 min
『 ?ó?? ??????????? Monitorizar ?????????? 】

🙂 Buenos días comunidad.

Me gustaría compartir con ustedes, en este artículo, una manera muy práctica, de obtener información relevante de todos los Namespaces de un Entorno. ¿Para qué?. Pues por ejemplo para uno de los casos de uso que más nos encontramos los desarrolladores con respecto a Healtshare: el desafío de necesitar crear 1 servicio, y la odisea de ir entorno a entorno, namespace a namespace, buscando si el puerto XYZAB está libre o no... 🙃

5 0
0 125

Hola, comunidad de IRIS,

InterSystems Certification está desarrollando un examen de certificación para profesionales desarrolladores de InterSystems IRIS, y si coincidís con la descripción del candidato al examen que se indica a continuación, nos gustaría que participéis en la prueba beta del examen.

0 0
0 44