Artigo
· Set. 30 3min de leitura

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óduloiris
  • 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:

CREATE TABLE demo.orders(
  id INT PRIMARY KEY,
  customer VARCHAR(80),
  total DECIMAL(10,2),
  created_at TIMESTAMP
);

INSERT INTO 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.
Discussão (0)1
Entre ou crie uma conta para continuar