InterSystems IRIS: o que é, quando usar e um hands-on de 15 minutos
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. O “Embedded Python” permite que você escreva métodos Python server-side que rodam dentro do IRIS (e não por um gateway externo). Você também pode chamar o IRIS do Python usando o módulo
iris. - Escalabilidade vertical e horizontal. Inicie em apenas uma instância, e então adicione fragmentos (shards) para dividir o armazenamento e cache horizontalmente em vários nós, para acelerar queries e ingestão.
- Feito para aplicações em tempo real. Mira em alta performance para altos volumes de cargas de trabalho, mantendo transações e análises juntas.
Quando o IRIS brilha (e quando não)
Use quando você precisa de cargas de trabalho em estilo HTAP (operacional e analítico em um só lugar), consistência estrita e ferramentas de integração incorporadas. Se você simplesmente precisa de um cache ou um sandbox de análise avulso, uma base de dados maias leve pode ser mais simples.
Mão na massa (≈15 minutos)
1) Suba o IRIS localmente (Docker)
# pull e rode Community Edition
docker run --name iris \
-d -p 52773:52773 -p 1972:1972 \
intersystems/iris-community
- Portal de Administração Web: http://localhost:52773/csp/sys/UtilHome.csp
- As credenciais padrão do container são definidas na primeira execução, siga os prompts da tela.
(Community Edition é gratuita para desenvolvimento e teste e está disponível no Docker Hub, com a documentação oficial do container de "primeiro contato".)
2) Crie uma tabela e consulte(SQL)
No Portal de Administração (System Explorer → SQL), execute:
CREATETABLE demo.orders(
idINT PRIMARY KEY,
customer VARCHAR(80),
total DECIMAL(10,2),
created_at TIMESTAMP
);
INSERTINTO demo.orders VALUES
(1,'Kai',125.50,NOW()),
(2,'Amaka',78.90,NOW());
SELECT customer, total
FROM demo.orders
WHERE total > 100;
(O IRIS SQL lida com conversões de tipos e formatos lógico/display por baixo dos panos.)
3) Execute o Python dentro do IRIS(Embedded Python)
Crie um método de classe que retorna uma métrica rápida:
Class Demo.Utils
{
ClassMethod BigSpender(threshold As%Numeric) As%Integer [ Language = python ]
{
import iris
# Simple count using embedded SQL
sql = "SELECT COUNT(*) FROM demo.orders WHERE total > ?"
rs = iris.sql.exec(sql, threshold)
return list(rs)[0][0]
}
}
Chame-o do terminal:
do##class(Demo.Utils).BigSpender(100)
Isso é um Python server-side compilado e executado na máquina IRIS (sem ponte externa), e você pode chamar do ObjectScript ou SQL conforme necessidade.
4) Notas sobre escalabilidade (para quando você crescer)
Se as consultas ou ingestão começarem a atingir os limites, adicione shards. O IRIS particiona dados e cache através de nós, fornecendo escalabilidade horizontal sem reescrever - e você pode misturar escalabilidade vertical e horizontal conforme necessidade.
Dicas direcionadas a produção
- Mantenha unificado. Resista separar OLTP e análises cedo; o IRIS foi feito para mantê-las juntas até que um gargalo real ocorra.
- Use Python com moderação, mas estrategicamente. Coloque lógica de negócio ou analítica que se beneficie das libs do Python no Embeddede Python; deixe o ETL pesado para trabalhos agendados.
- Planeje shards antes de necessitar deles. Escolha chaves de shard que você não irá se arrepender (IDs imutáveis, time buckets) e teste em um sandbox de 3 nós.