1 Seguidor · 121 Postagens

SQL é uma linguagem padrão para armazenar, manipular e recuperar dados em bancos de dados relacionais.

Artigo Andre Larsen Barbosa · Abr. 26, 2021 2m read

Nos bons velhos tempos (tm), determinar o tamanho dos dados, fluxos e índices para uma classe / tabela era fácil - você apenas executava %GSIZE e verificava as globais D, S e I respectivamente.

No entanto, hoje em dia a fragmentação, os nomes globais otimizados e os índices em globais separados produzem a saída% GSIZE parecida com esta:  

            Global Size Display of /irissys/data/IRIS/mgr/irisshard/
                              1:35 PM  Dec 02 2020

          IRIS.Msg       1     IRIS.MsgNames       1     IRIS.SM.Shard       1
       IS.DGoWeK.1   24359       IS.DGoWeK.
0
0 302
Artigo Jhonata Rebouças · Maio 1, 2021 4m read

O mesmo serviço com a possibilidade de receber várias consultas SQL diferentes e sempre entregar o resultado independente de quantas colunas distintas tenham essas diferentes consultas. Aqui demonstro como pode ser possível montar esse tipo de serviço utilizando o Service Bus da Intersystems.

Possível cenário (Desconsiderar o uso de um BI):

Vamos pensar em um painel real time onde iremos fornecer as informações de consumo de um material por região para o setor de compras e teremos as informações do nome do produto, fabricante e quantidade por exemplo.

0
1 286
Artigo Julio Esquerdo · Out. 15, 2024 7m read

Projeto 4 – SQL Inbound Adapter

Vamos montar nossa próxima integração utilizando o adaptador SQL Inbound Adapter. Este adaptador permite acessar uma tabela externa ao IRIS e consumir seus registros.

No nosso exemplo iremos ler uma tabela via SQL externa ao IRIS através de uma conexão ODBC e armazenar as informações desejadas em uma global.

O primeiro passo é criar as mensagens da integração. Vamos criar o Request e o Response que iremos utilizar para trafegar as mensagens pelo barramento:

Class ws.global.msg.incluir.Request Extends Ens.

0
0 101
Artigo Andre Larsen Barbosa · Fev. 11, 2025 3m read

 

 

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.

2
0 66
Artigo Julio Esquerdo · Nov. 8, 2024 4m read

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.

1
0 115
Artigo Heloisa Paiva · Ago. 21, 2025 4m read

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.

1
1 71
Artigo Heloisa Paiva · Mar. 9, 2023 3m read

Introdução

Em alguns dos últimos artigos, eu falei sobre tipos entre IRIS e Python, e ficou claro que não é tão fácil acessar objetos de um lado pelo outro.

Por sorte, o trabalho já foi feito para criar o SQLAlchemy-iris (clique no link para ver na Open Exchange), o que faz tudo muito mais fácil para o Python acessar os objetos do IRIS, e eu vou mostrar como começar.

Obrigada @Dmitry Maslennikov !

 

Instalando

Para instalar, simplesmente abra seu terminal com acesso do administrador e digite

pip install sqlalchemy-iris

 

Isso também vai instalar os pré-requisitos, se necessário.

2
0 1248
Artigo Nicole Raimundo · Maio 16, 2024 9m read

DNA Similarity and Classification é uma API REST utilizando a tecnologia InterSystems Vector Search para investigar semelhanças genéticas e classificar eficientemente sequências de DNA. Este é um aplicativo que utiliza técnicas de inteligência artificial, como aprendizado de máquina, aprimorado por recursos de pesquisa vetorial, para classificar famílias genéticas e identificar DNAs semelhantes conhecidos a partir de um DNA de entrada desconhecido.

1
1 150
Artigo Yuri Marx · Nov. 22, 2024 6m read

O FHIR (Fast Healthcare Interoperability Resources) é o padrão mais utilizado pelo mercado para interoperar e armazenar dados em saúde. Trata-se de um padrão que mapeia dezenas de recursos de dados (Pacientes, Observações, Medicações, Diagnósticos, Alergias, Vacinas, Faturamento, Provedores de Saúde, Atendimentos, dentre outros) e seus relacionamentos (Medicações do Paciente, por exemplo). O acesso a todas estas estruturas de dados se dá pelo uso de APIs REST em formato JSON ou XML. A princípio, a maioria dos fornecedores de soluções FHIR, não disponibiliza acesso aos dados no formato SQL.

4
1 89
Artigo Marcio Sorvi · Dez. 19, 2024 1m read

Eu criei uma classe que gera código para query customizada a partir de uma global qualquer em um determinado namespace,  fazendo com que a global responda ao padrão SQL imediatamente.

Veja abaixo tela com exemplo de uma Global.

 

Na tela seguinte, como exemplo, executo método passando parâmetros (global e namespace):

Por último, acesso o portal de Administração e executo a query já com a Global respondendo em SQL

​​​​​​​

 

Os campos que são exibidos no SQL são correspondentes aos Pieces e níveis da global.

0
0 66
Artigo David Loveluck · Dez. 9, 2020 26m read

Desde o Caché 2017, o mecanismo SQL inclui um novo conjunto de estatísticas. Ele registra o número de vezes que uma consulta é executada e o tempo que leva para executá-la.

Esta é uma mina de ouro para qualquer pessoa que está monitorando e tentando otimizar o desempenho de uma aplicação que inclui muitas instruções SQL, mas que não é tão fácil de acessar os dados como algumas pessoas desejam.

0
1 235
Artigo Gabriel Schiehl · Jul. 7, 2021 1m read

 

Recentemente, eu queria obter uma lista de todas as consultas em cache e seus textos. Veja como fazer isso.
Primeiro, crie um procedimento SQL retornando texto de consulta de cache a partir de um nome de rotina de consulta em cache:

Class test.CQ
{

/// SELECT test.CQ_GetText()
ClassMethod GetText(routine As %String) As %String [ CodeMode = expression, SqlProc ]
{
##class(%SQLCatalog).GetCachedQueryInfo(routine)
}

}
E depois disso, você pode executar esta consulta:
SELECT Routine, test.CQ_GetText(Routine)
FROM %SQL_Manager.CachedQueryTree()
E obtenha uma lista de consultas em cache:

0
0 235
Artigo Heloisa Paiva · Mar. 10, 2023 3m read

Introdução

Esse artigo tem a intenção de ser um simples tutorial sobre como criar conexões ODBC e trabalhar com elas, já que eu achei o assunto um pouco confuso quando estava começando, mas tive pessoas incríveis que pegaram minha mão e me guiaram para conseguir, e eu acredito que todos merecem esse tipo de ajuda também.

Vou dividir cada pequena parte em seções, então sinta-se à vontade para pular para a que sentir necessidade, apesar de eu recomendar ler o texto na íntegra.

0
0 479
Artigo Cristiano Silva · Maio 5, 2023 2m read

Apache Superset é uma plataforma moderna de exploração e visualização de dados. O Superset pode substituir ou trazer ganhos para as ferramentas proprietárias de business intelligence para muitas equipes. O Superset integra-se bem com uma variedade de fontes de dados.

E agora é possível usar também com o InterSystems IRIS.

Uma demo online está disponível e usa IRIS Cloud SQL como sua fonte de dados.

0
0 471
Artigo Julio Esquerdo · Nov. 21, 2025 1m read

InterSystems IRIS - Shells

Olá,

Quando abrimos um terminal no IRIS estamos entrando no ambiente ObjectScript. Nele podemos executar comandos do IRIS, tais como:

Ou seja, o comando ObjectScript é executado no shell corrente. Mas é sempre bom lembrar que o IRIS tem outros shells:

  • SQL
  • Python
  • TSQL
  • MDX

Uma questão bem interessante são os atalhos. Podemos acessar estes shells pelas suas chamadas ou através de atalhos, conforme a tabela abaixo:




Shell

Chamada

Atalho

SQL

Do $SYSTEM.SQL.Shell()

:sql

Python

Do $SYSTEM.Python.Shell

:py

TSQL

Do $SYSTEM.

1
1 56
Artigo Heloisa Paiva · Jun. 12, 2024 4m read

Olá a todos! 

Trabalho há muitos anos com Excel e, ultimamente, foquei no tratamento de bases de dados.

Realmente minha experiencia com Excel foi para trabalhos financeiros, não tanto analíticos de dados em si, mas em um projeto recente pude trabalhar muito com SQL e me interessei um pouco pelo tema (não sou nenhuma uma especialista, já aviso!)

Me perguntei como poderia unir vários excels em um para, por exemplo, entregá-lo à Análise de dados utilizando a tecnologia InterSystems. Juntei toda a informação em um pequeno artigo. Espero que seja útil e, é claro, estou aberta a correções.

0
0 76
Artigo Danusa Calixto · Set. 4, 2023 8m read

Neste tutorial, quero falar sobre consultas de classe. Para ser mais precisa, sobre as consultas baseadas em código escrito pelo usuário:

Muitas pessoas ignoram esse tipo de consulta só porque não estão confortáveis em escrever uma grande quantidade de código ObjectScript para os métodos ou não veem como podem usá-lo nos apps relacionais. No entanto, para ser sincera, para mim — é uma das criações mais legais para o modelo relacional no IRIS! Ele deixa você expor as informações que quiser (não se limita a tabelas do seu banco de dados) como um conjunto de resultados para um cliente.

0
0 100
Artigo Heloisa Paiva · Mar. 2, 2023 3m read

 Introdução

Esse é um tutorial simples da forma mais rápida que eu achei para criar uma base de dados de exemplo para quaisquer razões, como realizar testes, fazer exemplos para tutoriais, etc.

 

Criando um namespace

  1. Abra o terminal
  2. Escreva o comando "D $SYSTEM.SQL.Shell()"
  3. Escreva"CREATE DATABASE " e o nome desejado para o namespace.

Agora você tem um namespace novo de uma forma muito mais rápida que criando pelo Portal de Administração - que é claro que oferece muito mais opções de configuração.

Para selecioná-lo, saia do Shell SQL escrevendo "q" e então digitando 'zn "nomeDoNamespace".

0
0 165
Artigo ROBSON SERPA DA ROSA · Jun. 28, 2021 5m read

Uma VIEW em SQL é basicamente uma instrução SQL preparada.
Deve ser executado e montado como qualquer outra consulta SQL.
VIEW MATERIALIZADA significa que o conteúdo é coletado antes das mãos e pode ser recuperado com bastante rapidez.
Eu vi o conceito primeiro com meu concorrente favorito chamado O * e eles fizeram muito barulho sobre isso.

  { favorite: because I could win every benchmark against them devil }

0
0 127
Artigo Danusa Calixto · jan 10, 2024 12m read

Temos um delicioso conjunto de dados com receitas escritas por vários usuários do Reddit, porém, a maioria das informações é texto livre, como o título ou a descrição de um post. Vamos descobrir como carregar o conjunto de dados facilmente, extrair algumas características e analisá-las usando recursos do modelo de linguagem grande da OpenAI no Embedded Python e no framework Langchain.

Carregando o conjunto de dados

Primeiro de tudo, precisamos carregar o conjunto de dados ou podemos só nos conectar a ele?

0
0 115
Artigo Julio Esquerdo · Fev. 11, 2025 4m read

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.

0
0 79
Artigo Heloisa Paiva · Set. 8, 2024 1m read

Rubrica InterSystems FAQ

Isso pode ser conseguido usando o procedimento CSV() da classe %SQL.Util.Procedures .
Abaixo está o exemplo de uso do código. (Assumindo que o arquivo test.csv está em c:\temp.)

 Set rowtype="Name VARCHAR(50),UID VARCHAR(50), PHONE VARCHAR(50)"
 Set filename="c:\temp\test.csv"
 Set result=##class(%SQL.Statement).%ExecDirect(,"call %SQL_Util.CSV(,?,?)",.rowtype,.filename)
 Set rset =result.%NextResult()
 
 // To display all results, use do rset.%Display()
 While rset.%Next() {
     Write "Name:",rset.%GetData(1)," UID:",rset.%GetData(2)," PHONE:",rset.%GetData(3),!
0
0 70
Artigo Heloisa Paiva · Set. 30, 2025 3m read

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.

Por que engenheiros escolhem IRIS

  • Multi-modelo, uma máquina. Funciona com tabelas relacionais ,objetos, globais, sem precisar alterar o contexto.
  • Python onde os dados vivem.
0
0 59
Artigo Rochael Ribeiro · Fev. 21, 2022 2m read

Olá Desenvolvedores!

Como você provavelmente percebeu, no IRIS 2021 os nomes das globais são randômicos.

E, se você criar classes do IRIS classes com DDL e quiser se certificar qual global foi criada, você provavelmente gostaria de escolher seu nome.

E, de fato, você consegue fazê-lo. 

Utilize WITH %CLASSPARAMETER DEFAULTGLOBAL='^GLobalName' na instrução CREATE Table para fazê-lo. Documentação. Veja o exemplo abaixo:

0
0 83
Artigo Danusa Calixto · Nov. 28, 2023 8m read

Visão geral

A documentação online contém o tópico Defining and Using Class Queries (Definir e usar consultas de classe) para referência-

A personalização direta de procedimentos armazenados com ObjectScript tem sido útil para acessar o armazenamento NoSQL e as mensagens externas pela integração, para apresentar a saída em um formato tabular.

Por exemplo: um aplicativo que já usa 90% da interação SQL de um front-end também pode estender esse acesso aos outros 10% da funcionalidade de plataforma necessária, pelo mesmo acesso SQL.

0
0 167
Artigo Julio Esquerdo · Fev. 11, 2025 7m read

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?

0
0 52
Artigo Heloisa Paiva · Set. 22, 2024 1m read

Rubrica InterSystems FAQ

No SQL, dados NULL e a string vazia ('') são dados diferentes. O método para definir e checar cada uma é como se segue

(1) dado NULL

[SQL] 

insert into test(a) values(NULL)
select * from test where a IS NULL

[InterSystems ObjectScript]

set x=##class(User.test).%New()
set x.a=""

(2) String Vazia ('')

[SQL]

insert into test(a) values('')
select * from test where a = ''

[InterSystems ObjectScript]

set x=##class(User.test).%New()
set x.a=$C(0)

Para mais informações, por favor veja os seguintes documentos:

NULL e strings vazias [IRIS]
NULL e strings vazias

0
0 59
Artigo Danusa Calixto · Abr. 4, 2023 2m read

Olá desenvolvedores!

Como você sabe, o IRIS da InterSystems além de globais, objetos, documentos e modelos de dados XML também suporta relacional onde o SQL é esperado como uma linguagem para lidar com os dados.

E como em outros DBMS relacionais, o InterSystems IRIS possui seu próprio dialeto.

Começo esta postagem para dar suporte a uma folha de dicas SQL e convido você a compartilhar seus favoritos - atualizarei o conteúdo com os comentários recebidos.

Aqui vamos nós!

0
0 75
Artigo Rochael Ribeiro · Fev. 21, 2022 2m read

Olá desenvolvedores!

Algumas vezes precisamos inserir ou fazer referência aos dados de classes persistentes diretamente através das globais.

E talvez muitos de vocês estejam esperando que a estrutura de dados da global com os registros seja:

^Sample.Person(Id)=$listbuild("",col1,col,2,...,coln).

Este artigo é um aviso que nem sempre isso é verdade. Não espere que sempre seja assim!

0
0 90
Artigo Julio Esquerdo · Fev. 11, 2025 8m read

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.

0
0 66