Cuando trabajáis con InterSystems IRIS, los desarrolladores y arquitectos de bases de datos a menudo se enfrentan a una decisión crítica: si usar SQL Dinámico o SQL Embebido para consultar y actualizar datos. Ambos métodos tienen sus propias fortalezas y casos de uso, pero comprender sus implicaciones en el rendimiento es esencial para tomar la decisión correcta. El tiempo de respuesta, una métrica clave en la evaluación del rendimiento de las aplicaciones, puede variar significativamente dependiendo del enfoque de SQL que utilicéis. El SQL Dinámico ofrece flexibilidad, ya que las consultas pueden construirse y ejecutarse en tiempo de ejecución, lo que lo hace ideal para escenarios con necesidades de consulta impredecibles o altamente variables. Por el contrario, el SQL Embebido enfatiza la estabilidad y eficiencia al integrar el código SQL directamente en la lógica de la aplicación, ofreciendo tiempos de respuesta optimizados para patrones de consulta predefinidos.

En este artículo, exploraré los tiempos de respuesta al usar estos dos tipos de SQL y cómo dependen de las diferentes estructuras de clases y del uso de parámetros. Para ello, voy a utilizar las siguientes clases del diagrama:

0 0
0 8

Las versiones de mantenimiento 2024.1.4 y 2023.1.6 de la plataforma de datos InterSystems IRIS®, InterSystems IRIS® for Health™ y HealthShare® Health Connect ya están disponibles de forma general (GA).

0 0
0 8
Artículo
· 22 abr, 2025 Lectura de 4 min
Consideraciones al migrar de Oracle, MSSQL, etc. a IRIS

Migrar desde Oracle, MSSQL u otros sistemas de bases de datos puramente relacionales a un sistema multimodelo como InterSystems IRIS es una decisión estratégica que requiere una planificación y ejecución cuidadosas. Aunque esta transición ofrece beneficios significativos, como un mejor rendimiento, escalabilidad y soporte para arquitecturas modernas, también conlleva desafíos. En este artículo destacaré algunas de las consideraciones relacionadas con la codificación para asegurar una migración exitosa. Dejaré fuera del alcance de este artículo todo lo relacionado con la migración real de estructuras y datos.

Primero, cuando estáis considerando migrar a un sistema de base de datos diferente, necesitáis comprender vuestra lógica de negocio, ya sea del lado de la aplicación (servidor de aplicaciones) o del servidor de bases de datos. Básicamente, ¿dónde tenéis vuestras sentencias SQL que potencialmente tendréis que reescribir?

0 0
0 7

Lo que encuentro realmente útil de IRIS al enseñar mi asignatura de bases de datos post-relacionales es el hecho de que es una base de datos multimodelo. Lo que significa que podéis abordar la arquitectura y la estructura una sola vez y, después, mostrar el uso de diferentes modelos (como el objeto, documento, jerárquico) utilizando el mismo lenguaje y enfoque. Y no es un gran salto pasar de un lenguaje de programación orientado a objetos (como C#, Java, etc.) a una base de datos orientada a objetos.

Sin embargo, junto con las ventajas (que son muchas), vienen algunos inconvenientes cuando pasamos del modelo orientado a objetos al relacional. Cuando digo que podéis acceder a los mismos datos utilizando diferentes modelos, también necesito explicar cómo es posible trabajar con listas y arrays del modelo objeto en una tabla relacional. Con los arrays es muy sencillo: por defecto se representan como tablas separadas y eso es todo. Con las listas es más complicado, porque por defecto son cadenas de texto. Pero uno sigue queriendo hacer algo con ellas sin dañar la estructura ni volver esta lista ilegible en el modelo objeto.

Así que en este artículo os mostraré un par de predicados y una función que son útiles al trabajar con listas, y no solo como campos.

1 0
0 13

Después de tantos años de espera, por fin tenemos un controlador oficial disponible en Pypi

Además, encontré el driver JDBC finalmente disponible en Maven desde hace ya 3 meses, y el driver .Net en Nuget desde hace más de un mes.

Como autor de multitud de implementaciones de librerías de Python con soporte de IRIS, quería probarlo. La implementación de DB-API significa que debe ser reemplazable e implementar las funciones definidas en el estándar. La única diferencia entre las diferentes bases de datos debería ser únicamente el SQL.

Y la belleza de usar librerías existentes que ya implementaron la conectividad con otras bases de datos usando el estándar DB-API, es que estas librerías deberían ser totalmente compatibles con el controlador.

Decidí probar el driver oficial de InterSystems implementando su soporte en la librería SQLAlchemy-iris.

1 0
0 18

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 15

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 29
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.

0 0
0 32
Artículo
· 3 feb, 2025 Lectura de 3 min
¿Faltan SQL variables de host ?

Variables de host son una característica de programación bastante común en muchas implementaciones de SQL.
Una pregunta reciente en DC me hizo darme cuenta de que en IRIS, Caché, Ensemble,...
las variables del host simplemente existen dentro del embedded SQL.

> You can supply host variables for Embedded SQL queries only. <
Se incluyen ejemplos relacionados en la documentación disponible.

A continuación se incluye una descripción de una solución alternativa si no utiliza o no puede utilizar embedded SQL.

1 1
0 30

No estoy seguro de que haya muchos que se conecten a MS SQL para ejecutar consultas, procedimientos almacenados, etc., pero nuestro sistema de salud tiene muchas bases de datos diferentes basadas en MS SQL que usamos en el entorno de interoperabilidad por diversas razones.

Con el impulso de movernos de on-premises a la nube, nos encontramos con algunas dificultades con nuestras conexiones SQL Gateway y cómo configurarlas para usar Microsoft Entra para la autenticación de Active Directory.

0 0
0 38
Artículo
· 17 ene, 2025 Lectura de 1 min
Conectando IRIS a SQL Server mediante una conexión ODBC

En este tutorial, voy a explicar cómo podéis conectar la plataforma de datos IRIS a una base de datos SQL Server utilizando ODBC.

Prerequisitos:

0 0
0 38
Artículo
· 9 ene, 2025 Lectura de 2 min
Carga de archivos Parquet en IRIS

Hola colegas,

Hace unos días me surgio el requerimiento de cargar un archivo parquet, tal y como viene a una tabla en IRIS, así que desarrolló este classmethod que gatilla la carga solo indicando la ruta y nombre del archivo y el nombre de la tabla destino (en el mismo espacio de nombres). Para esto, escribí un pequeño código en Python que requiere las librerías: Pandas, pyarrow y fastparquet, las cuales deben instalar en el directorio de instalación de IRIS según su instalación, en mi caso el comando es:

0 1
0 45
Artículo
· 7 ene, 2025 Lectura de 4 min
Obtened vuestro código a través de ODBC/JDBC.

Recientemente me encontré con un problema muy antiguo relacionado con el mantenimiento de código:

Tenéis acceso a vuestro servidor IRIS solo a través de ODBC/JDBC:

  • Sin acceso a VSCode
  • Sin acceso a Studio
  • Sin acceso a (Web-)Terminal

¡Pero necesitáis revisar Clases, Rutinas o Globals!

De cualquier forma, SQL es vuestro aliado.

1 0
0 38

El auge de los proyectos de Big Data, las analíticas en tiempo real con herramientas self-service, los servicios de consultas en línea y las redes sociales, entre otros, han habilitado escenarios para consultas masivas y de alto rendimiento. En respuesta a este desafío, se creó la tecnología MPP (procesamiento masivamente paralelo) y rápidamente se consolidó. Entre las opciones de MPP de código abierto, Presto (https://prestodb.io/) es la más conocida.

0 0
0 44

La auditoría es una capacidad fundamental para garantizar la seguridad de vuestro servidor, y desde hace un tiempo hemos incluido la posibilidad de auditar las sentencias SQL ejecutadas en el servidor.

Con la versión 2024.3 ya disponible, ahora ofrecemos opciones más detalladas para definir los eventos que se auditarán.

0 0
0 32

Preguntas frecuentes de InterSystems

Por defecto, el orden de las columnas en una tabla lo determina automáticamente el sistema. Para cambiar el orden, estableced explícitamente el orden de cada propiedad utilizando la palabra clave SqlColumnNumber al definir la clase.

Ejemplo:

Property Name As %String [SqlColumnNumber = 2];

Por favor, consultad la documentación a continuación.

0 0
0 36

He estado trabajando en este proceso con algunos compañeros de equipo y pensé que podría ser útil para otros, especialmente si trabajáis con HL7 y Ensemble/HealthConnect/HealthShare y rara vez os aventuráis más allá de la sección de Interoperabilidad.

1 0
0 27

Las funciones de agregación definidas por el usuario han sido compatibles con IRIS desde la versión 2021.1.0. Hace años deseaba tener esta funcionalidad antes de encontrar una forma alternativa y secreta de sobrescribir MAX y MIN en un tipo de dato personalizado, pero no tuve la oportunidad de probarlo realmente hasta hoy.

0 0
0 41
Artículo
· 16 oct, 2024 Lectura de 2 min
Funciones del "Lado Izquierdo" en ObjectScript

En ObjectScript, tenéis una amplia colección de funciones que devuelven algún valor, típicamente:

set variable = $somefunction(param1,param2, ...)

No hay nada especial en eso.
Pero hay un conjunto de funciones que clasifico como del LADO IZQUIERDO.
La especialidad de ellas es que también podéis usarlas a la izquierda del operador igual como un objetivo en el comando SET:

set $somefunction(param1,param2, ...) = value

1 1
0 32

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 44

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 57

Hola Comunidad,

El equipo de certificación de InterSystems Learning Services se complace en anunciar el lanzamiento de nuestro nuevo examen InterSystems IRIS SQL Specialist. Ahora está disponible para su compra y programación en el catálogo de exámenes de InterSystems. Los candidatos potenciales pueden revisar los temas del examen y las preguntas de práctica para orientarse sobre los enfoques y el contenido de las preguntas del examen. Los candidatos que aprueben con éxito el examen recibirán una insignia de certificación digital que puede compartirse en redes sociales como LinkedIn.

0 0
0 33