Oi Comunidade!
Temos o prazer de compartilhar um novo vídeo do nosso canal do YouTube InterSystems Developers:
⏯ Tabelas Estrangeiras na versão 2025.2 @ Ready 2025

SQL é uma linguagem padrão para armazenar, manipular e recuperar dados em bancos de dados relacionais.
Oi Comunidade!
Temos o prazer de compartilhar um novo vídeo do nosso canal do YouTube InterSystems Developers:
⏯ Tabelas Estrangeiras na versão 2025.2 @ Ready 2025

Ao usar SQL padrão ou a camada de objetos no InterSystems IRIS, a consistência dos metadados é geralmente mantida por meio de validação integrada e imposição de tipo. No entanto, sistemas legados que ignoram essas camadas—acessando globals diretamente—podem introduzir inconsistências sutis e graves.
Compreender como os drivers se comportam nesses casos extremos é crucial para diagnosticar problemas de dados legados e garantir a confiabilidade da aplicação.
Quando precisamos integrar o Caché/IRIS com outros bancos de dados relacionais, uma pergunta comum surge: “Como configuro a conexão JDBC?”. A documentação oficial nem sempre fornece um guia passo a passo direto, o que pode ser frustrante, especialmente para iniciantes.
Neste artigo, vou guiá-lo por todo o processo de configuração de uma conexão JDBC com MySQL, desde o download do conector até o espelhamento de tabelas no Caché/IRIS.
Nota: Conexões JDBC no Caché/IRIS têm algumas limitações, especialmente em relação ao caching e ao uso de ResultSet
Oi pessoal! Esse artigo é para quem está começando com InterSystems IRIS. Espero que ajude!
O InterSystems IRIS é uma plataforma de dados unificada: uma base de dados de alta performance com ferramentas de interoperabilidade e análise integradas em um só produto. Você tem SQL e NoSQL na mesma máquina, além de jeitos nativos de rodar Python com seus dados. Em resumo: menos peças móveis, mais capacidade de processamento.
Uma coisa que aprendi ao longo dos anos é que, não importa o quão aprimorada seja a lógica do seu aplicativo, o desempenho do banco de dados acabará por determinar o sucesso ou fracasso da experiência do usuário. Trabalhando com o InterSystems IRIS, recentemente vivenciei isso em primeira mão. Um de nossos clientes estava construindo um painel de relatórios que funcionava perfeitamente durante os testes, mas assim que o conjunto de dados de produção cresceu para milhões, os tempos de resposta ficaram extremamente lentos.
À primeira vista, parecia um problema de hardware.
O artigo do August Article Bounty sobre Global Masters, e um dos tópicos propostos me pareceu bastante interessante para uso futuro em minhas aulas. Então, é isso que eu gostaria de dizer aos meus alunos sobre tabelas no IRIS e como elas se correlacionam com o modelo de objeto.
Primeiro, o InterSystems IRIS possui um modelo de dados unificado. Isso significa que, ao trabalhar com dados, você não está preso a um único paradigma. Os mesmos dados podem ser acessados e manipulados como uma tabela SQL tradicional, como um objeto nativo, ou até mesmo como um array multidimensional (um global). Isso significa que, ao criar uma tabela SQL, o IRIS cria automaticamente uma classe de objeto correspondente. Ao definir uma classe de objeto, o IRIS a torna automaticamente disponível como uma tabela SQL. Os dados em si são armazenados apenas uma vez no eficiente motor de armazenamento multidimensional do IRIS. O motor SQL e o motor de objeto são simplesmente diferentes "lentes" para visualizar e trabalhar com os mesmos dados.
Primeiro, vamos ver a correlação entre o modelo relacional e o modelo de objeto:
| Relacional | Objeto |
| Tabela | Classe |
| Coluna | Propriedade |
| Linha | Objeto |
| Chave primária | Identificador de objeto |
Nem sempre é uma correlação de 1:1, já que você pode ter várias tabelas representando uma classe, por exemplo. Mas é uma regra geral.
InterSystems FAQ rubric
Por padrão, a ordem das colunas em uma tabela é determinada automaticamente pelo sistema.
Para alterar a ordem, defina explicitamente a ordem de cada propriedade utilizando a palavra-chave SqlColumnNumber ao definir a classe.
Exemplo:
Property Name As %String [SqlColumnNumber = 2];
Consulte a documentação abaixo.
Se você deseja alterar o nome da tabela SQL, especifiqueSqlTableName. Se você deseja alterar o nome da coluna (nome do campo), especifiqueSqlFieldName.
Ambos se aplicam apenas a classes persistentes.
Ao começar a usar o InterSystems IRIS ou Cache, os desenvolvedores frequentemente se deparam com três conceitos principais: Objetos Dinâmicos, Globals e Tabela Relacional. Cada um tem seu papel na construção de soluções escaláveis e fáceis de manter. Neste artigo, vamos percorrer exemplos de código práticos, destacar as melhores práticas e mostrar como esses conceitos se conectam.
1. Trabalhando com Objetos Dinâmicos
Objetos dinâmicos (%DynamicObject e %DynamicArray) permitem que os desenvolvedores manipulem estruturas semelhantes a JSON diretamente no ObjectScript.
Olá novamente,
A InterSystems Certification ainda está procurando pessoas para o teste beta do exame de Certificação Profissional InterSystems IRIS SQL. Esta é uma ótima maneira de obter a certificação gratuitamente! Prorrogamos o prazo do teste beta para 31 de agosto de 2025.
Observe que apenas candidatos com a certificação InterSystems IRIS SQL Specialist pré-existente são elegíveis para fazer o beta. Para obter detalhes, consulte o anúncio original.
Obrigado!
Olá Comunidade IRIS ,
InterSystems Certification está desenvolvendo um exame de certificação para profissionais do InterSystems IRIS SQL. Se você se enquadra na descrição de candidato abaixo, gostaríamos que você fizesse um teste beta do exame! O teste estará disponível para teste beta a partir de 19 de maio de 2025.
Talvez isso já seja bem conhecido, mas quis compartilhar para ajudar.
Considere que você tem as seguintes definições de classes persistentes:
Uma classe Invoice (Fatura) com uma propriedade de referência para Provider (Prestador de serviço):
Class Sample.Invoice Extends (%Persistent, %Populate)
{
Parameter DSTIME = "AUTO";
Property InvoiceNumber As %Integer(MINVAL = 100000) [ Required ];
Property ServiceDate As %Date(MINVAL = "+$h-730") [ Required ];
Index InvoiceNumber On InvoiceNumber;
Property Provider As Sample.Se você está migrando do Oracle para o InterSystems IRIS — como muitos dos meus clientes — pode se deparar com padrões específicos de SQL do Oracle que precisam ser adaptados.
Veja esse examplo:
SELECT (TO_DATE('2023-05-12','YYYY-MM-DD') - LEVEL + 1) AS gap_date
FROM dual
CONNECT BY LEVEL <= (TO_DATE('2023-05-12','YYYY-MM-DD') - TO_DATE('2023-05-02','YYYY-MM-DD') + 1);
No Oracle:
LEVEL é uma pseudo-coluna usada em consultas hierárquicas (com CONNECT BY). Ela começa em 1 e incrementa de 1 em 1.
CONNECT BY LEVEL <= (...)Prezado senhores,
Estou tentando consultar os dados das tabelas de um banco de dados caché. Ele possui dados nas globais. Também possui tabelas SQL sem registros, mas com a estrutura das classes do banco de dados. Quando vou consultar os dados através do driver ODBC não retorna nenhum dado. Mesmo pelo painel administrativo as consultas SQL não retornam dados. Sabem me dizer o que pode estar acontecendo?
At.te
Graciano dos Santos Duarte
Olá,
Neste artigo vamos ver o uso do python como linguagem de programação no InterSystems Iris. Para tal vamos usar como referência a versão Community 2025.1 que está disponível para ser baixada em https://download.intersystems.com mediante o login no ambiente. Para maiores informações sobre o download e instalação do Iris veja o link da comunidade https://community.intersystems.com/post/how-download-and-install-intersystems-iris
Uma vez instalado o íris agora precisamos ter o python disponível no nosso ambiente. Temos vários tutoriais explicando a instalação e configuração do python no Iris.
Pessoal,
Poderia me informar se na plataforma InterSystems IRIS, existe uma ferramenta de trace de execução de comandos SQL, procedures entre outros, semelhante ao SQL Profiler?
Grato,
Ao trabalhar com InterSystems IRIS, desenvolvedores e arquitetos de banco de dados frequentemente enfrentam uma decisão crítica: usar Dynamic SQL ou Embedded SQL para consultar e atualizar dados. Ambos os métodos têm seus pontos fortes e casos de uso únicos, mas entender suas implicações de desempenho é essencial para fazer a escolha certa. O tempo de resposta, uma métrica chave na avaliação do desempenho de aplicações, pode variar significativamente dependendo da abordagem SQL utilizada. Dynamic SQL oferece flexibilidade, pois as consultas podem ser construídas e executadas em tempo de execução, tornando-o ideal para cenários com necessidades de consulta imprevisíveis ou altamente variáveis. Por outro lado, Embedded SQL enfatiza a estabilidade e a eficiência ao integrar código SQL diretamente na lógica da aplicação, oferecendo tempos de resposta otimizados para padrões de consulta predefinidos.
Neste artigo, explorarei os tempos de resposta ao usar esses dois tipos de SQL e como eles dependem de diferentes estruturas de classe e do uso de parâmetros. Para fazer isso, usarei as seguintes classes do diagrama:
.png)
Migrar de Oracle, MSSQL ou outros sistemas de banco de dados puramente relacionais para um InterSystems IRIS multimodel é uma decisão estratégica que requer planejamento e execução cuidadosos. Embora essa transição ofereça benefícios significativos, incluindo desempenho aprimorado, escalabilidade e suporte para arquiteturas modernas, ela também apresenta desafios. Neste artigo, destacarei algumas das considerações relacionadas à codificação para garantir uma migração bem-sucedida. Deixarei tudo o que está conectado a uma migração real de estruturas e dados fora do escopo deste artigo.
Primeiramente, ao considerar migrar para um sistema de banco de dados diferente, você precisa entender sua lógica de negócios, seja ela do lado da aplicação (servidor de aplicação) ou do servidor de banco de dados. Basicamente, onde você tem suas instruções SQL que potencialmente precisará reescrever?
As versões de manutenção 2024.1.4 e 2023.1.6 da plataforma de dados InterSystems IRIS® ,InterSystems IRIS® for HealthTM, e HealthShare® Health Connect agora estão disponíveis para o público em geral (GA). Essas versões incluem as correções para o seguinte alerta emitido recentemente - Alerta: Queries SQL retornando resultados errados | InterSystems. Compartilhe seu feedback por meio da Comunidade de Desenvolvedores e assim construímos um produto melhor juntos.
InterSystems Anuncia Disponibilidade Geral do InterSystems IRIS, InterSystems IRIS for Health e HealthShare Health Connect 2025.1
A versão 2025.1 da plataforma de dados InterSystems IRIS®, InterSystems IRIS® for HealthTM e HealthShare® Health Connect agora está disponível para o público em geral (GA). Esta é uma versão de Manutenção Estendida (EM).
Usando o Python no InterSystems IRIS
Vamos neste breve artigo ver como podemos utilizar o python como linguagem de programação dentro o InterSystems IRIS. Para o nosso exemplo vamos criar um método que exporta os dados de uma tabela do IRIS para um arquivo no formato XLS (MS-Excel). Para isso vamos utilizar a biblioteca pandas do python.
Primeiro, vamos ver a nossa tabela.:
Class Demo.
Olá,
Estamos lançando um Programa de Acesso Antecipado para um futuro recurso de Particionamento de Tabela que ajudará os clientes do IRIS a gerenciar tabelas muito grandes e distribuir dados de linha e índices associados entre bancos de dados e camadas de armazenamento.O particionamento de tabelas atinge profundamente o cerne do gerenciamento de dados relacionais do IRIS, por isso queremos ter certeza de que faremos tudo certo trabalhando com alguns clientes engajados que podem fornecer feedback sobre os resultados iniciais e fazer ajustes conforme necessário.
19 de Fevereiro de 2025 – Alerta: Consultas SQL Retornando Resultados Errados
A InterSystems corrigiu dois problemas que podem fazer com que um pequeno número de consultas SQL retornem resultados incorretos. Além disso, a InterSystems corrigiu uma inconsistência no tratamento de tipo de dados de data/hora que pode levar a resultados diferentes e inesperados — mas corretos — para aplicativos existentes que dependem do comportamento inconsistente anterior.
.png)
Ao contrário do filme, citado através da imagem (para quem não conhece, Matrix, 1999), a escolha entre Dynamic SQL e Embededd SQL, não é uma escolha entre a verdade e a fantasia, mas, mesmo assim é uma decisão a ser tomada. Abaixo, tentarei facilitar a escolha de vocês.
Caso sua necessidade seja interações entre o cliente e a aplicação (consequentemente o banco de dados), o Dynamic SQL pode ser mais apropriado, pois “molda-se” muito facilmente com estas alterações de consultas.
Então, você verificou seu servidor e viu que o IRISTEMP está crescendo demais. Não precisa entrar em pânico. Vamos investigar o problema antes que seu armazenamento acabe.
Antes de assumir que o IRISTEMP é o problema, vamos verificar seu tamanho real.
Execute o seguinte comando no terminal IRIS:
%SYS>do ^%FREECNTQuando solicitado, digite:
Database directory to show free space for (*=All)?Utilizando o Gateway SQL com Python, Vector Search e Interoperabilidade no InterSystems Iris
Parte 3 – REST e Interoperabilidade
Agora que finalizamos a configuração do Gateway SQL e conseguimos acessar os dados do banco externo via python, e montamos nossa base vetorizada, podemos realizar algumas consultas. Para isso nessa parte do artigo vamos utilizar uma aplicação que desenvolvida com CSP, HTML e Javascript que acessará uma integração no Iris, que então realiza a pesquisa por similaridade dos dados, faz o envio para a LLM e por fim devolve o SQL gerado.
Utilizando o Gateway SQL com Python, Vector Search e Interoperabilidade no InterSystems Iris
Parte 2 – Python e Vector Search
Uma vez que temos acesso aos dados da nossa tabela externa podemos utilizar tudo que o Iris tem de excelente com estes dados. Vamos, por exemplo, ler os dados da nossa tabela externa e gerar uma regressão polinomial com eles.
Para mais informações sobre o uso do python com o Iris veja a documentação disponível em https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?
Utilizando o Gateway SQL com Python, Vector Search e Interoperabilidade no InterSystems Iris
Parte 1 – Gateway SQL
Olá,
Neste artigo vamos ver o uso do Gateway SQL no Iris. O Gateway SQL permite que o Iris tenha acesso a tabelas de outros bancos (externos) via ODBC ou JDBC. Podemos acessar Tabelas ou Visões de diversos bancos, como Oracle, PostgreSQL, SQL Server, MySQL e outros.
Do ponto de vista de uso é como se a tabela estivesse local na nossa instância Iris, porém o armazenamento é realizado em um local externo.
Você precisa instalar o aplicativo primeiro. Se não estiver instalado, por favor, consulte o artigo anterior.
Após executar com sucesso o aplicativo de busca de vetores de imagem de íris, alguns dados precisam ser armazenados para suportar a recuperação de imagens, pois não são inicializados na biblioteca.
Primeiramente, arraste e solte a imagem ou clique no ícone de upload, selecione a imagem e clique no botão de upload para enviar e vetorizá-la. Este processo pode ser um pouco lento.
.png)
Variáveis de host são um recurso de programação bastante comum em muitas implementações de SQL.
Uma pergunta recente no DC me alertou para o fato de que, no IRIS, Caché, Ensemble, ... variáveis de host existem apenas dentro do SQL incorporado:
> Você pode fornecer variáveis de host apenas para consultas SQL incorporadas. <
Exemplos relacionados estão incluídos na documentação disponível.
Esta é uma descrição de uma solução alternativa caso você não use/não possa usar SQL incorporado.
Enquanto trabalhava para obter suporte JSON para algumas bibliotecas Python, descobri alguns recursos fornecidos pelo IRIS.