#InterSystems IRIS

19 Followers · 5.6K Posts

InterSystems IRIS is a Complete Data Platform
InterSystems IRIS gives you everything you need to capture, share, understand, and act upon your organization’s most valuable asset – your data.
As a complete platform, InterSystems IRIS eliminates the need to integrate multiple development technologies. Applications require less code, fewer system resources, and less maintenance.

Article Niyaz Khafizov · Jul 6, 2018 3m read

Hi all. Yesterday I tried to connect Apache Spark, Apache Zeppelin, and InterSystems IRIS. During the process, I experienced troubles connecting it all together and I did not find a useful guide. So, I decided to write my own.

Introduction

What is Apache Spark and Apache Zeppelin and find out how it works together. Apache Spark is an open-source cluster-computing framework. It provides an interface for programming entire clusters with implicit data parallelism and fault tolerance. So, it is very useful when you need to work with Big Data.

1
1 1978
Question Mario Sanchez Macias · Mar 17, 2020
 

Hi, 

I know there are several alternatives, but I would like to find the easiest & simpler ones to store data coming in Json format from post requests and also allowing me to do SQL queries. 

I want to have a property called favouriteColors. I want to store a few colors, and I want to be able to do queries to get top favorite colors, etc.

4
0 639
Question Eduard Lebedyuk · Mar 17, 2020

I have a C string and I need to build a $lb from it.

This code works fine for strings shorter than 254 characters:

char *str = "some string";
int len = strlen(str);
int add = 2;
char *list = malloc(len + add + 1);
char lenChar = len + add;
sprintf(list, "%c\x01%s", lenChar, str);

Thought maybe someone can share the code for longer strings?

1
1 409
Article alex kosinets · Mar 17, 2020 2m read

The client part of the code for this game is on the MS Excel sheet and consists of:

  1. m-commands  for random arranging ships on the playing field  (21 cells)
  2. m-command to enable on-click m-trigger on all 100 cells of the playing field (1), red font
  3. m-trigger (1), red font

The server part of the code (vmx.ro) is installed onсе, it not change depending on the task, is the same for IRIS, CACHE, 16, 8-bit encoding, any applications, games, reports.  The server side creates and maintains ‘virtual excel’ in M.

0
0 608
Announcement Rubens Silva · Mar 16, 2020

Hello all!

As we ObjectScript developers have been experiencing, preparing an environment to run CI related tasks can be quite the chore. This is why I have been thinking about how we could improve this workflow and the result of that effort is IRIS-CI.

See how it works here.

Quickstart

1.Download the image from the Docker Hub registry:

docker pull rfns/iris-ci:0.5.3
  1. Run the container (with the default settings):
docker run --rm --name ci -t -v /path/to/your/app:/opt/ci/app rfns/iris-ci:0.5.3

Notice that volume mounting to /path/to/your/app? This is where the app should be.

0
1 452
Question Nauris Gruduls · Mar 12, 2020

In my Data Transformation, the Target class needs to create a new List of objects (ListOfObj), depending on some conditions of Source class (Source/Target are completely distinct/different classes).

I experimented with Lists of 'primitive' data types (ListOfDT), and I could add new %String items (as an example) to a List of %String property, with "append" action in DT.

Does anyone have an example, or guidance, how to create new Lists of Objects in data transformation?

For example, if I have a 'container' class like this, it works:

Class Json.SalesOrderContainer Extends (%RegisteredObject,%XML.
2
0 947
Article Alexey Maslov · Mar 16, 2020 5m read

Introduction

Despite the fact that InterSystems has long recommended using external backup tools, many users have opted to use the internal Online Backup facility, which is included in all distributions of InterSystems products (IRIS Data Platform, Caché, etc.). The reasons why are quite obvious:

0
2 547
Question Frank Langel · Mar 15, 2020

    Hi, 

   I  like to validate some use cases and have the following question. I am relatively new to IRIS. Perhaps someone can help:

   1. I have a global m[x,y,z,f] distributed across multiple sharded instances
   2. I know that i can set assign computed SQL expressions to class variables using Objectscript 
   3. Is there a possibility in Globals API to do the same ? Set f = x + y as a computed expression in the global  m[x,y,z,f]  ?

       a.  We would want to use the global API to change f programmatically using code

       b.

5
0 437
Question Frank Langel · Mar 14, 2020

Allow a question from a newbie 

1. Lets assume we have a global (matrix) [X,Y,Z] that is distributed across sharded nodes
2. Matrix size doesnt matter, but lets assume it holds 500 GB for the moment
3. I want to return all rows where f(x,y,z) is true. f() is an arbitrary function, i.e. f = x + 20(y*y) > z

Questions
Q1. Can such a computation (in ObjectScript) be moved and distributed from the client to the different sharded nodes for parallel processing
Q2. Where is that documented (incl. perhaps an example and performance measurements)
 

Thanks a lot
Frank

2
0 359
Question Michel Bruyère · Mar 13, 2020

In one of my class, I use Stream.Read() method of the %Stream.Object class.

  • Method OnRequest(request As Ens.StreamContainer, Output response As %Library.Persistent) As %Status
  • {
  •    SET sc=$$$OK
  •    SET strRequest=request.Stream.Read(,.sc)
  • ​​   $$$TRACE($L(​​strRequest))
  • ....  

The Trace value gives 32,000. But the Read() method of the %Stream.Object class specifies 32,656 by default.

  1. Method Read(ByRef len As %Integer = 32656, ByRef sc As %Status) As %CacheString
  2. {
  3.    Set len=0,i%AtEnd=1,sc=$$$OK
  4.    Quit ""
  5. }

Why ?

Best Regards.

2
0 988
Article Evgeny Shvarov · Mar 13, 2020 2m read

Hi developers!

Suppose you have a Github repository with ObjectScript classes but without a Docker environment.

Recently I published a repository with a set of files that form a universal Docker and VSCode environment to let you either import and run your repository in InterSystems IRIS Community Edition on Docker or turn your repository into Docker and VSCode environment for InterSystems IRIS Community Edition.

So in one sentence:

Unpack these files in your folder and you have the Docker and VSCode environment for your InterSystems IRIS ObjectScript application!

See the details below.

0
1 795
Discussion Eduard Lebedyuk · Mar 6, 2020

Temporary tables are tables available for a current process only (and destroyed when process ends).

What are you approaches to creating temporary tables?

Here's the two I know:
  1. Process-private Globals storage can be used as a data global in storage definition. That way, each process can have its own objects for the class with ppg storage.  Here's how. Here's how 2.
  2. InterSystems TSQL supports #tablename temporary tables. A #tablename temporary table is visible to the current procedure of the current process. It is also visible to any procedure called from the current procedure.
5
0 1261
Question Rubens Silva · Mar 9, 2020

Just like the title says, I'm attempting to find a way to create a web application that instead of serving CSP files, it uses a dispatch class.
I searched for clues in the documentation, but the CSPApplication tag seems to be exclusively for CSP file-based applications.
I'm trying to avoid implementing a workaround such as using the Invoke tag to call the Security.Applications to generate the web application but I might be forced to do so, even though it's unpleasant if I had to say...
So, is there an official way to execute this task?

22
0 802
Announcement Derek Robinson · Mar 12, 2020

In Episode 5 of Data Points, @Bob Binstock joins us to talk about mirroring databases for high availability in InterSystems products! Most of the discussion centers around this process in InterSystems IRIS, with a few notes about the differences when tackling it in HealthShare. Take a listen and let us know your thoughts!

0
0 342
Question Dmitry Maslennikov · Jan 12, 2020

In one of the projects, when we have ECP with 10 ECP application servers, from time to time we faced the issue when our journals fail to purge, due to open transactions. While we have about 100-150 GB journal files per day, it quite quickly became a big issue, and with mirroring a very big issue. Mostly we just rebooted our ECP Data server, so it searches rollbacks any transactions, but such process is too long, may steal a few hours. I did not find any way, how to get the list of the open transactions from one place from ECP Data Server. We just migrated our Data server to 2018.1.

4
0 1087
Question Adam Dewing · Mar 3, 2020

I'm working on developing Productions with java. The sample project has several intersystems jar files: -- intersystems-enslib-jms-3.1.0.jar -- intersystems-gateway-3.1.0.jar -- intersystems-jdbc-3.1.0.jar -- intersystems-spark-1.0.0.jar -- intersystems-uima-1.0.0.jar -- intersystems-utils-3.1.0.jar -- intersystems-xep-3.1.0.jar

I have the jar files, but where can I find them for download? Are they available on a maven repository somewhere?

Any help would be appreciated!

3
0 1351
Article Murray Oldfield · Jun 5, 2019 2m read

If a picture is worth a thousand words, what's a video worth? Certainly more than typing a post.

Please check out my "Coding talks" on InterSystems Developers YouTube:

1. Analysing InterSystems IRIS System Performance with Yape. Part 1: Installing Yape

 

Running Yape in a container.

2. Yape Container SQLite iostat InterSystems

Extracting and plotting pButtons data including timeframes and iostat.

3
2 1690
Question Đặng Phú Lộc · Dec 30, 2019

Can anyone clarify to me about the differences between these two classes?

People in this topic https://community.intersystems.com/post/using-class-queries-sqlstatement-versus-libraryresultset stated that %SQL.Statement (I am assuming they mean to talk about %SQL.StatementResult) is newer than %Library.ResultSet. But I don't really know what are the advantages of %SQL.Statement over %Library.ResultSet as the people in the topic somehow didn't mention them.

Currently I have a case and it seems like the %SQL.

6
0 1441
Article Mikhail Khomenko · Jan 13, 2020 16m read

Last time we launched an IRIS application in the Google Cloud using its GKE service.

And, although creating a cluster manually (or through gcloud) is easy, the modern Infrastructure-as-Code (IaC) approach advises that the description of the Kubernetes cluster should be stored in the repository as code as well. How to write this code is determined by the tool that’s used for IaC.

In the case of Google Cloud, there are several options, among them Deployment Manager and Terraform. Opinions are divided as to which is better: if you want to learn more, read this Reddit thread Opinions on Terraform vs. Deployment Manager? and the Medium article Comparing GCP Deployment Manager and Terraform

1
2 1566
Article sween · Nov 7, 2019 5m read

Loading your IRIS Data to your Google Cloud Big Query Data Warehouse and keeping it current can be a hassle with bulky Commercial Third Party Off The Shelf ETL platforms, but made dead simple using the iris2bq utility.

Let's say IRIS is contributing to workload for a Hospital system, routing DICOM images, ingesting HL7 messages,  posting FHIR resources, or pushing CCDA's to next provider in a transition of care.  Natively, IRIS persists these objects in various stages of the pipeline via the nature of the business processes and anything you included along the way.  Lets send that up to Google Big Query to augment and compliment the rest of our Data Warehouse data and ETL (Extract Transform Load) or ELT (Extract Load Transform) to our hearts desire.

A reference architecture diagram may be worth a thousand words, but 3 bullet points may work out a little bit better:

  • It exports the data from IRIS into DataFrames
  • It saves them into GCS as .avro to keep the schema along the data: this will avoid to specify/create the BigQuery table schema beforehands.
  • It starts BigQuery jobs to import those .avro into the respective BigQuery tables you specify.

 

3
0 1332
Article Mark Bolinsky · Mar 3, 2020 11m read

InterSystems and Intel recently conducted a series of benchmarks combining InterSystems IRIS with 2nd Generation Intel® Xeon® Scalable Processors, also known as “Cascade Lake”, and Intel® Optane™ DC Persistent Memory (DCPMM). The goals of these benchmarks are to demonstrate the performance and scalability capabilities of InterSystems IRIS with Intel’s latest server technologies in various workload settings and server configurations. Along with various benchmark results, three different use-cases of Intel DCPMM with InterSystems IRIS are provided in this report.

5
0 1154
Question Eduard Lebedyuk · Mar 4, 2020

I want to send requests from custom BP with timeout and be able to understand that timeout event happened.

I thought that I need to implement OnTimeout method in my process (in either caller or callee), however it seems like OnTimeout  is never called.

Let's say we have this parent process:

Class Timeout.Parent Extends Ens.BusinessProcess [ ClassType = persistent ]
{
Method OnRequest(pRequest As Ens.StringContainer, Output pResponse As Ens.StringContainer) As %Status {
    set sc = .SendRequestSync("Timeout.
2
0 853
Announcement Evgeny Shvarov · Mar 3, 2020

Hi Developers!

This is the digest of new solutions and applications submitted to InterSystems OpenExchange in February 2020!

New applications in February 2020

 

EXCEL SUDOKU by alex kosinets

Sudoku game implementation in Excel using InterSystems IRIS as a server

RESTForms2 by Henry Hamon Pereira

RESTForms2 is a framework to create the REST API for InterSystems IRIS persistent objects  automatically

FirstLook-Globals by Evgeny Shvarov

Firstlook example of InterSystems Globals

IRIS Interoperability Message Viewer by Henrique Gonçalves Dias

A new approach for the Interoperability Message Viewer

iKnow by Benjamin De Boe

The iKnow Natural Language Processing technology was originally developed in Belgium and then acquired by InterSystems in 2010. In February 2020, InterSystems published the technology to open source, expanding the possible use cases for it beyond embedded use from the InterSystems IRIS Data Platform. iKnow is open to community contributions to enhance the engine, language models and interfaces for use in-text exploration, information extraction, and machine learning use cases.

0
0 210