Artículo
· 15 mayo, 2020 Lectura de 9 min
Gestión de índices

¡Hola desarrollador!

Si has leído la parte 1 de este artículo, ya tienes una buena idea del tipo de índices que necesitas para tus clases y cómo definirlos. Lo siguiente es saber cómo gestionarlos.

Plan de consultas

(RECUERDA: Al igual que cualquier modificación en una clase, añadir índices en un sistema en producción conlleva riesgos: si los usuarios están actualizando o accediendo a datos mientras se rellena un índice, podrían obtener resultados vacíos o incorrectos a sus consultas, o incluso dañar los índices que se están formando. Ten en cuenta que hay pasos adicionales para definir y usar índices en un sistema en producción. Estos pasos se analizarán en esta sección, y se detallan en nuestra documentación).

0 1
0 243

¡Hola desarroladores!

¿Os parece que las consultas sobre el rango de fechas son demasiado lentas? ¿Os parece que el rendimiento de SQL es bajo? ¡Tengo un curioso truco que podría ayudaros a solucionar estos problemas! (¡Los desarrolladores de SQL odian que sepáis estas cosas!)*

Si tenéis una clase que guarda los registros de hora cuando se añaden datos, entonces esos datos se ordenarán con vuestros valores IDKEY, es decir, TimeStamp1 < TimeStamp2 si y solo si la condición ID1 < ID2 se cumple para todos los valores ID y TimeStamp en la tabla - entonces podéis utilizar esta información para aumentar el rendimiento de las consultas en relación con los rangos de TimeStamp. Echad un vistazo a la siguiente tabla:

1 1
0 1.2K

¡Hola Comunidad!

En este artículo voy a explicar cómo acceder a la información y a las tablas del dashboard (cuadro de mando) del sistema del Portal de Administración mediante el uso de Python Embebido.

0 1
0 190
Artículo
· 24 ene, 2024 Lectura de 2 min
Cómo obtener JSON de SQL

¿Sabíais que se pueden obtener datos JSON directamente de las tablas SQL?

Dejadme que os presente dos útiles funciones de SQL, que se utilizan para recuperar datos JSON de consultas SQL - JSON_ARRAY y JSON_OBJECT.

Podéis usar esas funciones en la sentencia SELECT con otros tipos de elementos de selección, y se pueden especificar en otras ubicaciones en las que se puede utilizar una función SQL, como en una condición WHERE.

0 1
1 594
Artículo
· 28 jul, 2022 Lectura de 3 min
Consejos y trucos del nuevo comando LOAD DATA

Estos días he estado trabajando con la excelente y nueva funcionalidad: LOAD DATA. Con este artículo me gustaría compartir mis primeras experiencias con todos. Los siguientes puntos no contienen ningún orden ni ningún otro análsis. Son solo cosas que observé al utilizar el comando LOAD DATA. Y se debe tener en cuenta que estos puntos se basan en la versión 2021.2.0.617 de IRIS, que es una versión de prueba.

0 1
0 222

¡Hola Comunidad!

Tenemos un nuevo vídeo en el canal de YouTube de la Comunidad de Desarrolladores en inglés, grabado por @Stefan Wittmann:

🗣 Datos dinámicos con JSON

https://www.youtube.com/embed/b2GYVDP6VvM
[Este es un enlace integrado, pero no puede ver el contenido integrado directamente en el sitio porque rechazó las cookies que se necesitan para acceder a él. Para ver el contenido integrado, debe aceptar todas las cookies desde la Configuración de cookies]

0 1
1 139

Python se ha convertido en el lenguaje de programación más utilizado del mundo (fuente: https://www.tiobe.com/tiobe-index/) y SQL sigue siendo el líder como lenguaje para las bases de datos. ¿No sería genial que Python y SQL trabajaran juntos para ofrecer nuevas funcionalidades que SQL por sí mismo no puede? Después de todo, Python tiene más de 380.000 librerías publicadas (fuente: https://pypi.org/) con funciones muy interesantes para ampliar las consultas SQL dentro de Python.

En este artículo detallo cómo crear nuevos Procedimientos Almacenados de SQL en la base de datos de InterSystems IRIS usando Embedded Python.

2 1
1 681
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 122

Una de nuestras apps utiliza una consulta de clase para un informe ZEN y funciona perfectamente en ese informe, produciendo los resultados esperados. Hemos migrado a InterSystems Reports y nos hemos dado cuenta de que, para un informe que utiliza la misma consulta de clase, aparecen en la parte de abajo más de 100 filas extra con los mismos valores en las columnas.

Descartamos InterSystems Reports como fuente del problema reproduciendo el problema de "filas extra" con una hoja de cálculo de Excel que llama a la misma consulta de clase utilizando un procedimiento almacenado.

¿Cuál era el problema? Cuando llamábamos al procedimiento almacenado desde el antiguo ZEN Report o desde la función SQL Query en el Portal de Administración, no veíamos estas filas adicionales.

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 101

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 58

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 28
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 142

¡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 130
Artículo
· 5 jun, 2019 Lectura de 7 min
El arte de mapear Globals para Clases (1 de 3)

¿Alguno de ustedes desea traer de vuelta una antigua aplicación MUMPS? Siga estos pasos para mapear sus globales ya establecidos para clases y mostrar todos esos hermosos datos en Objects y SQL

Al seguir los sencillos pasos en este artículo y los dos siguientes, podrá mapear todas las variables globales, excepto las más difíciles, para clases de Caché. Para los que estén locos pondré un archivo zip con diferentes mapeos que he coleccionado a lo largo de los años. Esto NO es para datos nuevos; si no cuenta con datos globales ya establecidos, por favor, utilice el almacenamiento predeterminado.

0 0
0 263
Artículo
· 14 ene, 2020 Lectura de 5 min
Escalabilidad horizontal con InterSystems IRIS

Nuestra plataforma de datos InterSystems IRIS es una plataforma perfecta para todo lo que necesite realizar con sus datos, ya sean transacciones, análisis o ambos. Incluye muchas de las funciones de Caché y Ensemble que nuestros clientes ya conocen, y en este artículo descubriremos un poco más acerca de una de sus nuevas funcionalidades: SQL Sharding.

0 0
0 194
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 133
Artículo
· 3 mayo, 2022 Lectura de 14 min
Depuración tradicional en ObjectScript

Encontrar errores en tu código o examinar un comportamiento inesperado es el principal objetivo de la depuración.

Trataré de actualizar las herramientas tradicionales aparte de las ayudas que tienen Studio, VScode, Serenji... Las herramientas básicas que han estado ahí antes de que tu EDI preferido lo utilizara en segundo plano.

1 0
2 159

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 89

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 90
Artículo
· 29 mayo, 2024 Lectura de 7 min
Optimización de consultas SQL en IRIS

¡Hola a todos los estimados miembros de la comunidad de desarrolladores de InterSystems en español!

Aunque suelo consultar la comunidad de desarrolladores y alguna vez he dejado alguna pregunta por aquí, este será mi primer artículo y qué mejor ocasión para hacerlo que participando en el 3er concurso de artículos técnicos.

3 0
0 143