0 Seguidores · 168 Publicaciones

SQL is un lenguaje estándar para el almacenamiento, manipulación y recuperación de datos en bases de datos relacionales.

Artículo Alberto Fuentes · mar 1, 2024 4m read

Hay una nueva funcionalidad muy interesante en la recientemente anunciada versión de prueba 2024.1 de InterSystems IRIS - JSON_TABLE. JSON_TABLE forma parte de una familia de funciones introducidas en la versión 2016 del estándar SQL (ISO Standard, publicado a principios de 2017). Permite que valores JSON se mapeen a columnas y se consulten usando SQL. JSON_TABLE puede usarse en la cláusula FROM de algunas sentencias SQL.

La sintaxis de JSON_TABLE es bastante extensa, permitiendo condiciones excepcionales cuando los valores JSON proporcionados no cumplen las expectativas, estructuras anidadas, etc.

La sintaxis básica es bastante sencilla. El primer argumento pasado a JSON_TABLE es el valor JSON que se va a consultar. Puede ser un literal, una referencia a una columna o una llamada a una función. El segundo argumento es una expresión JPL (JSON Path Language), que permite filtrar el valor proporcionado. Después va la cláusula COLUMNS - justo en medio de la llamada a la función. La cláusula COLUMNS se parece mucho a las definiciones de columnas en una sentencia CREATE TABLE pero con un añadido muy necesario - el PATH. PATH es una expresión JPL que se aplica al valor JSON para producir el valor de la columna.

0
0 152
Artículo Alberto Fuentes · ene 31, 2024 13m read

Tenemos un conjunto de datos bastante apetecible con recetas escritas por múltiples usuarios de Reddit, sin embargo, la mayor parte de la información está en texto libre en forma de título y descripción de un mensaje. Vamos a averiguar cómo podemos, de forma muy sencilla, cargar los datos, extraer algunas características y analizarlos empleando funcionalidades de LLM (Large Language Model) de OpenAI desde Python Embebido y el framework Langchain.

0
0 177
Artículo Alberto Fuentes · ene 24, 2024 2m read

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

La función JSON_ARRAY toma una lista de expresiones separadas por comas y devuelve una matriz JSON conteniendo esos valores.

1
1 738
Artículo Kurro Lopez · ene 17, 2024 3m read

Hola comunidad,

Cuando utilizamos un Business Servicio de tipo SQL, puede suceder que necesitemos replicar ciertas filas de la tabla original.

Tomemos como ejemplo el Business Service  "from customer SQL" usando la clase genérica EnsLib.SQL.Service.GenericService

Surgen diferentes casos, dependiendo de la configuración utilizada en este Business Service.

Primer caso:

Si el Business Service solo usa un KeyFieldName

En este caso, para reprocesar los IDs 123,456 y 789, bastará con eliminarlos de la variable global ^Ens.AppData del Business Service correspondiente en la referencia "adaptor.sqlrow":

0
0 104
InterSystems Official Jose-Tomas Salvador · ene 15, 2024

InterSystems se complace en anunciar la disponibilidadgeneral de InterSystems IRIS Cloud SQL e InterSystems IRIS Cloud IntegratedML, dos servicios fundamentales para el desarrollo de soluciones nativas en la nube, con la fiabilidad y el rendimiento probado y de primer nivel de la tecnología de InterSystems IRIS. 

0
0 57
Artículo Daniel Aguilar · dic 11, 2023 1m read

Preguntas frecuentes de InterSystems

La cache de las consultas SQL puede ser purgada mediante programación usando el método Purge* de la clase %SYSTEM.SQL.

*Para ver el detalle de cada uno de los métodos, por favor consulta los siguientes enlaces:

%SYSTEM.SQL class【IRIS】

%SYSTEM.SQL class

① Comando para borrar todas las consultas SQL cacheadas en el sistema

Do $SYSTEM.SQL.PurgeAllNamespaces()


② Comando para borrar las consultas SQL cacheadas en el namespace actual

0
0 94
Artículo Robert Cemper · nov 28, 2023 1m read

Esta app evita añadir %JSONAdaptor a cada clase. En su lugar usa las funciones SQL JSON_OBJECT() para crear mis objetos JSON. Con este enfoque, se puede añadir JSON a cualquier clase - incluso a las implementadas - sin ninguna necesidad de cambiar o recompilar.

La idea inicial surge a raíz de implementar la exportación de relaciones M:N como objetos o matrices JSON.

La típica estructura de la exportación es  

{ M-element : {M-object},
   related-N-elements:
   [
     {N-element}, 
    {N-element},
    {N-element}
   ]
}

0
0 153
Artículo Alberto Fuentes · jul 19, 2023 3m read

Este artículo es un sencillo ejemplo para probar SqlDatabaseChain pidiéndole a OpenAI cierta información y que escriba consultas SQL sobre una base de datos IRIS.

Quizá despierte el interés de alguno de vosotros.

Muchas gracias a sqlalchemy-iris (autor @Dmitry Maslennikov). Ese proyecto ha sido indispensable para esta prueba. 

El script de este artículo usa la API de OpenAI así que tenedlo en cuenta para no compartir la información de vuestras tablas externamente en el caso de que no queráis hacerlo. Podría llegar a implementarse un modelo local en caso que lo necesitaseis.

1
0 472
Artículo Alberto Fuentes · oct 5, 2023 9m read

En el vasto y variado mercado de las bases de datos SQL, InterSystems IRIS destaca como una plataforma que va mucho más allá de SQL, ofreciendo una experiencia multimodelo perfecta, y siendo compatible con un amplio conjunto de paradigmas de desarrollo. Especialmente el avanzado motor objeto-relacional ha ayudado a organizaciones a utilizar el enfoque de desarrollo más adecuado para cada una de sus cargas de trabajo intensivas en datos; por ejemplo, ingerir datos a través de Objetos y consultarlos simultáneamente mediante SQL. Las Clases Persistentes corresponden a tablas SQL, sus propiedades a columnas de la tabla y se accede fácilmente a la lógica de negocio utilizando Funciones Definidas por el Usuario o Procedimientos Almacenados. En este artículo, nos centraremos un poco en la magia que se encuentra justo debajo de la superficie y discutiremos cómo puede afectar vuestras prácticas de desarrollo e implementación. Esta es un área del producto que tenemos planificado evolucionar y mejorar, así que no dudéis en compartir vuestras opiniones y experiencias en los comentarios al artículo.

0
0 156
Artículo Ricardo Paiva · sep 21, 2023 1m read

Preguntas frecuentes de InterSystems

Se pueden recuperar estos datos utilizando el esquema INFORMATION_SCHEMA.

INFORMATION_SCHEMA es un esquema de sistema y no se muestra por defecto en el menú SQL del Portal de Gestión.

El método para mostrarlo es el siguiente:

  1. Abrir el Portal de Gestión → Explorador → SQL.
  2. Marcar "Sistema" a la izquierda del desplegable de esquemas.
  3. Seleccionar INFORMATION_SCHEMA en el desplegable. 

El SQL para obtener el ID, el nombre del campo (COLUMN_NAME), el tipo de datos (DATA_TYPE) y la descripción (DESCRIPCIÓN) de la tabla especificada (Sample.Human) es el siguiente.

0
0 235
Anuncio Esther Sanchez · sep 18, 2023

Si estáis pensando en empezar con SQL en InterSystems IRIS o queréis hacer vuestras consultas más eficientes, podéis completar uno de estos breves ejercicios de formación online! (en inglés)

SQL Exercise 

Ambos ejercicios ponen a vuestra disposición una instancia de IRIS en la nube (o learning lab) por lo que no necesitaréis realizar ninguna instalación previa en vuestros equipos

0
0 182
Artículo Ricardo Paiva · sep 5, 2023 1m read

Preguntas frecuentes de InterSystems

De cara a la reconstrucción de los índices de una clase persistente/tabla, hay que utilizar el método %BuildIndices(), proporcionado por dicha clase. Para ello hay que especificar los valores de inicio y fin de los ID para los cuales se quieren reconstruir índices en los argumentos del método. 

Por ejemplo, para reconstruir el índice NameIDX y el índice ZipCode en la clase Sample.Person sólo para ID=10 a 20, ejecutad el siguiente código (el rango de ID se especifica en los argumentos quinto y sexto).

0
0 94
Artículo Ricardo Paiva · ago 16, 2023 3m read

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.

0
0 106
Artículo Dmitry Maslennikov · feb 17, 2023 4m read

Os presento mi nuevo proyecto: irissqlcli, REPL (Read-Eval-Print Loop) para InterSystems IRIS SQL.

  • Resaltado de sintaxis
  • Sugerencias (tablas, funciones)
  • +20 formatos de salida
  • Soporte a stdin
  • Salida a ficheros 

Instalación con pip

pipinstallirissqlcli

O se puede ejecutar con docker

dockerrun-itcaretdev/irissqlcliirissqlcliiris://_SYSTEM:SYS@host.docker.internal:1972/USER
1
0 121
InterSystems Official Jose-Tomas Salvador · jul 4, 2023

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

0
0 73
Artículo Alberto Fuentes · mayo 5, 2023 3m read

¡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
0
0 131
Artículo Alberto Fuentes · abr 27, 2023 8m read

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 101
Artículo Ricardo Paiva · abr 20, 2023 2m read

Apache Superset es una moderna plataforma para la visualización y exploración de datos. Superset puede reemplazar o aumentar las herramientas patentadas de business intelligence para muchos equipos. Y se puede integrar con una gran variedad de fuentes de datos.

¡Y ahora es posible utilizarla con InterSystems IRIS!

Hay disponible una demo online que usa IRIS Cloud SQL como fuente de datos.

0
0 538
Artículo Heloisa Paiva · abr 18, 2023 2m read

Introducción

En algunos de mis artículos he hablado de tipos entre IRIS y Python, y está claro que no es tan fácil acceder a objetos de un lado a otro. 

Afortunadamente, el trabajo ya se ha hecho, con la creación de SQLAlchemy-iris, que hace mucho más fácil para Python acceder a los objetos de IRIS, y voy a mostraros cómo funciona.

¡Gracias, @Dmitry Maslennikov!
 

Instalación

Para instalarlo, simplemente abre tu terminal con acceso de administrador y escribe

pip install sqlalchemy-iris

y eso también instalará los pre-requisitos para ti, si fuera necesario.
 

Uso

0
0 1356
Comentarios Alberto Fuentes · abr 12, 2023

¡Hola Comunidad!

Como sabéis, InterSystems IRIS, además de globals, objetos, documentos y modelos de datos XML, también es compatible con tratamiento relacional de datos utilizando SQL como lenguaje.

Y como otros sistemas de gestión de bases de datos relacionales (DBMS), InterSystems IRIS tiene su propio dialecto.

Empezamos esta publicación como una Guía Rápida de SQL y os invitamos a compartir vuestros trucos favoritos.

¡Vamos allá!

0
1 183
Artículo Heloisa Paiva · abr 11, 2023 3m read

Introducción

Este artículo tiene la intención de ser un sencillo tutorial de cómo crear conexiones ODBC y trabajar con ellas, ya que me pareció que empezar con ellas es un poco confuso. Yo tuve la ayuda de unas personas increíbles, y creo que todos merecemos ese apoyo.

Voy dividir cada pequeña parte en sesiones, así que puedes ir directamente a la que necesites, aunque recomiendo leerlo todo.

Voy a usar los datos de ejemplo creados en un artículo previo, Tutorial rápido para crear bases de datos de ejemplo: Samples.PersistentData, con las propiedades Name y Age.
 

Creando la conexión

0
0 463
Artículo Heloisa Paiva · abr 11, 2023 3m read

Introducción

Este es un sencillo tutorial sobre la manera más rápida que conozco para crear una base de datos de ejemplo para cualquier propósito, como hacer pruebas, hacer ejemplos para tutoriales, etc.
 

Creando un namespace

  1. Abre el terminal
  2. Escribe "D $SYSTEM.SQL.Shell()"
  3. Escribe "CREATE DATABASE " y el nombre que quieres para tu namespace.

Ahora tienes un nuevo namespace de una manera más rápida que creándolo desde el Portal de Gestión - que por supuesto ofrece más opciones de configuración.

0
0 273
Artículo Ricardo Paiva · mar 30, 2023 1m read

Quick Tips: Total Productive Maintenance

Los parámetros nombrados se pueden conseguir con SQLAlchemy :  

from sqlalchemy import create_engine, text,types,engine

_engine = create_engine('iris+emb:///')

with _engine.connect() as conn:
    rs = conn.execute(text("select :some_private_name"), {"some_private_name": 1})
    print(rs.all())

o con api nativa

from sqlalchemy import create_engine, text,types,engine

# set URL for SQLAlchemy
url = engine.url.URL.create('iris', username='SuperUser', password='SYS', host='localhost', port=33782, database='FHIRSERVER')

_engine = create_engine(url)

with _engine.connect() as conn:
    rs = conn.execute(text("select :some_private_name"), {"some_private_name": 1})
    print(rs.all())
0
0 112
Anuncio Esther Sanchez · mar 30, 2023

¡Hola desarrolladores!

Nos gustaría invitaros a un nuevo concurso de programación, dedicado a crear soluciones de Inteligencia Artificial (IA)/Machine Learning (ML) que utilicen Cloud SQL para trabajar con los datos: 

🏆 Concurso de Programación: InterSystems IRIS Cloud SQL con IntegratedML🏆

Duración: del 3 al 23 de abril, 2023

Total en premios: $13,500

 

0
0 118
Artículo Jose-Tomas Salvador · oct 6, 2022 6m read

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.

1
1 739
Artículo Daniel Aguilar · mar 18, 2023 4m read

Una de las razones por las que me encantan Cache e IRIS es que no solo puedes hacer cualquier cosa que puedas imaginar, sino que también puedes hacerlas de un montón de maneras diferentes!!

Imagina que tienes una integración con IRIS (o Cache) funcionando conectada por ODBC. Probablemente solo uses consultas SQL, pero puedes usar también procedimientos almacenados y dentro de su código puedes hacer cualquier cosa que puedas imaginar.

Voy a darte algunos ejemplos, pero el límite está en tu imaginación!

0
0 222
Artículo Ramón Rodríguez · feb 26, 2023 6m read

Buenas desarrollador!

En este artículo te voy a contar mi experiencia y conocimientos en el poco tiempo que llevo utilizando los distintos productos de InterSystems.

A parte de contar mis vivencias también veremos como hacer una pequeña API Rest con la que poder hacer un CRUD con la base de datos SQL de InterSystems.

Mi historia:

2
0 195
Artículo Pierre-Yves Duquesnoy · feb 16, 2023 6m read

Como recordaréis, en el Global Summit de 2022 y en el webinar de lanzamiento de la versión 2022.2, presentamos una nueva e interesante funcionalidad para incluir en las soluciones analíticas de InterSystems IRIS. Columnar Storage introduce una forma alternativa de almacenar los datos de las tablas SQL, que ofrece un aumento significativo en la velocidad de las consultas analíticas. Lanzada por primera vez como funcionalidad experimental en 2022.2, la última versión de prueba en 2022.3 incluye numerosas actualizaciones que pensamos merecen una publicación aquí.

0
0 139
Artículo Ricardo Paiva · jul 28, 2022 3m read

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. Por ello, es posible que mis observaciones no apliquen a las nuevas versiones de IRIS. Pero quizás sean útiles para otros.

1) La ruta del archivo está en el lado del servidor

1
0 249