Com frequência, me pedem para avaliar dados de desempenho relacionados a aplicativos IRIS de clientes para entender se os recursos do sistema são sub ou superprovisionados.

Este exemplo recente é interessante, porque envolve um aplicativo que fez uma migração "lift and shift" de um grande aplicativo de banco de dados IRIS para a nuvem. AWS, no caso.

Um aprendizado importante é que, depois de migrar para a nuvem, os recursos podem ser dimensionados corretamente ao longo do tempo conforme necessário. Não é preciso comprar e provisionar infraestrutura local para o crescimento que você espera alcançar daqui a vários anos no futuro.

É necessário monitoramento contínuo. A taxa de transações do seu aplicativo mudará à medida que seu negócio e o próprio aplicativo ou o uso dele mudar. Isso alterará os requisitos de recursos do sistema. Planejadores também devem considerar picos sazonais na atividade. Claro, uma vantagem da nuvem é que os recursos podem ser aumentados ou reduzidos conforme necessário.

Para mais informações contextuais, há vários posts detalhados sobre AWS e IRIS na comunidade. Um bom ponto de partida é pesquisar "referência da AWS". Também adicionei alguns links úteis no final deste post.

Os serviços da AWS são como blocos de Lego: tamanhos e formatos diferentes podem ser combinados. Ignorei networking, segurança e preparação de uma VPC para este post. Foquei em dois dos componentes de blocos de Lego;
- Requisitos de computação.
- Requisitos de armazenamento.

0 0
0 41

A maioria dos aplicativos transacionais tem um perfil de leitura/escrita (RW) de 70:30. No entanto, alguns casos especiais têm perfis de IO extremamente altos.

Realizei testes de IO de armazenamento na região da AWS ap-southeast-2 (Sydney) para simular os padrões de IO do banco de dados do IRIS e uma taxa de transferência semelhante a de um aplicativo com uma alta taxa de escrita.

1 0
0 41
Artigo
· jan 10 4min de leitura
E o DMN?

Alguns meses atrás, enfrentei um desafio importante: otimizar o tratamento da lógica de negócios em nosso aplicativo. Meu objetivo era extrair a lógica de negócios do código e passar para analistas. Lidar com várias regras pode resultar facilmente em um código desorganizado com uma infinidade de instruções "if", especialmente se o programador não entende a complexidade ciclomática. Esse código vira uma dor de cabeça para quem trabalha com ele — difícil de escrever, testar e desenvolver.

0 0
0 40

O Subsistema Windows para Linux (WSL) é um recurso do Windows que permite executar um ambiente do Linux na sua máquina do Windows, sem precisar de uma máquina virtual separada ou inicialização dupla.

O WSL foi projetado para oferecer uma experiência perfeita e produtiva a desenvolvedores que querem usar ambos o Windows e o Linux ao mesmo tempo**.

0 0
0 40

Olá, comunidade!

Acho que todo mundo deixa o código-fonte do projeto no repositório hoje em dia: Github, GitLab, bitbucket, etc. A mesma coisa para projetos do InterSystems IRIS , confira qualquer um no Open Exchange.

O que fazemos sempre que começamos ou continuamos a trabalhar com um determinado repositório usando a Plataformas de Dados InterSystems?

Precisamos de uma máquina do InterSystems IRIS local, bem como configurar o ambiente para o projeto e importar o código-fonte.

Portanto, todo desenvolvedor faz o seguinte:

  1. Verifica o código no repositório
  2. Instala/executa a instalação do IRIS local
  3. Cria um novo namespace/banco de dados para um projeto
  4. Importa o código nesse novo namespace
  5. Configura todo o ambiente rest
  6. Começa/continua a programar o projeto 

Se você "dockerizar" seu repositório, as linhas de etapas podem ser resumidas em 3 etapas:

  1. Verifica o código no repositório
  2. Executa o docker-compose build 
  3. Começa/continua a programar o projeto 

Aproveite - nada do trabalho manual das etapas 3, 4 e 5, que podem levar minutos e trazer dor de cabeça às vezes.

Você pode "dockerizar" (quase) qualquer repositório da InterSystems seguindo algumas etapas. Vamos lá!

0 0
0 40

Ao analisar dados, geralmente é preciso procurar indicadores específicos com mais atenção e destacar seções de informações de especial interesse para um usuário.

Por exemplo, examinar as dinâmicas dos dados para regiões ou datas específicas pode nos ajudar a descobrir tendências e padrões ocultos que permitem a tomada de decisões conscientes sobre nosso projeto no futuro.

0 0
0 40

Os contêineres nos arquivos ECS não são editáveis se o tamanho do arquivo for maior do que o espaço disponível de armazenamento temporário. Por exemplo, se eu tenho 4 GB livres, não posso editar um arquivo de 8 GB. No entanto, se eu iniciar um contêiner com 50 GB de armazenamento temporário (24 GB livre), posso editar normalmente meu arquivo de 8 GB.

0 0
0 39

Neste artigo, vamos explorar o uso de parâmetros, fórmulas e rótulos no Logi Report Designer (antigo Logi JReport Designer). Para que servem e como criá-los?

Usando a funcionalidade básica do InterSystems Reports Designer, os parâmetros, as fórmulas e os rótulos, você pode melhorar significativamente os detalhes e o conteúdo informativo do relatório gerado. Além disso, essas ferramentas permitem a automação de alguns dos processos, o que acelera e facilita bastante a criação de relatórios.

Vamos analisar cada ferramenta separadamente.

0 0
0 39
Artigo
· Ago. 8, 2023 11min de leitura
Referência para as Classes Web JSON

Prefácio

O InterSystems IRIS a partir da versão 2022.2 inclui uma funcionalidade reformulada para JSON web tokens (JWTs). Antes localizada no pacote da classe %OAuth2, a classe JWT, junto com as outras classes da Web JSON (JWCs), agora está em %Net.JSON. Essa migração ocorreu para modularizar as JWCs. Antes, eles estavam estreitamente ligados à implementação do framework OAuth 2.0. Agora, eles podem ser mantidos e usados separadamente.

2 0
0 39

Em versões recentes do IRIS, um novo e poderoso comando de carregamento de dados foi apresentado ao SQL: LOAD DATA. Esse recurso foi altamente otimizado para importar dados para o IRIS com extrema rapidez, inserindo centenas de gigabytes de dados em segundos, em vez de horas ou dias.

Essa é uma melhoria bastante empolgante. No entanto, ainda há um grande problema na experiência de carregamento de dados. Especificamente, o tempo e o trabalho necessários para:

0 0
0 38

Deixe-me apresentar meu novo projeto, que é o irissqlcli, um REPL (Read-Eval-Print Loop)  para o InterSystems IRIS SQL 

  • Destaque de sintaxe
  • Sugestões (tabelas, funções)
  • 20+ formatos de saída
  • Suporte ao stdin
  • Saída em arquivos 

Instale com o pip

pip install irissqlcli

Ou execute com o docker

docker run -it caretdev/irissqlcli irissqlcli iris://_SYSTEM:SYS@host.docker.internal:1972/USER

Conecte ao IRIS

$ irissqlcli iris://_SYSTEM@localhost:1972/USER -W
Password for _SYSTEM:
Server:  InterSystems IRIS Version 2022.3.0.606 xDBC Protocol Version 65
Version: 0.1.0
[SQL]_SYSTEM@localhost:USER> select $ZVERSION
+---------------------------------------------------------------------------------------------------------+
| Expression_1                                                                                            |
+---------------------------------------------------------------------------------------------------------+
| IRIS for UNIX (Ubuntu Server LTS for ARM64 Containers) 2022.3 (Build 606U) Mon Jan 30 2023 09:05:12 EST |
+---------------------------------------------------------------------------------------------------------+
1 row in set
Time: 0.063s
[SQL]_SYSTEM@localhost:USER> help
+----------+-------------------+------------------------------------------------------------+
| Command  | Shortcut          | Description                                                |
+----------+-------------------+------------------------------------------------------------+
| .exit    | \q                | Exit.                                                      |
| .mode    | \T                | Change the table format used to output results.            |
| .once    | \o [-o] filename  | Append next result to an output file (overwrite using -o). |
| .schemas | \ds               | List schemas.                                              |
| .tables  | \dt [schema]      | List tables.                                               |
| \e       | \e                | Edit command with editor (uses $EDITOR).                   |
| help     | \?                | Show this help.                                            |
| nopager  | \n                | Disable pager, print to stdout.                            |
| notee    | notee             | Stop writing results to an output file.                    |
| pager    | \P [command]      | Set PAGER. Print the query results via PAGER.              |
| prompt   | \R                | Change prompt format.                                      |
| quit     | \q                | Quit.                                                      |
| tee      | tee [-o] filename | Append all results to an output file (overwrite using -o). |
+----------+-------------------+------------------------------------------------------------+
Time: 0.012s
[SQL]_SYSTEM@localhost:USER>

0 0
0 38

[Contexto]

A família InterSystems IRIS tem um ótimo utilitário ^SystemPerformance (conhecido como ^pButtons no Caché e no Ensemble) que gera as informações de desempenho do banco de dados em um arquivo HTML legível. Ao executar ^SystemPerformance no IRIS para Windows, um arquivo HTML é criado onde nosso próprio log de desempenho mgstat e o log de desempenho do Windows são incluídos.

0 0
0 37

No momento, vários artistas digitais usam a tecnologia de IA generativa como apoio para acelerar a entrega das suas obras. Hoje em dia, é possível gerar uma imagem correspondente a partir de uma frase. Há várias soluções no mercado para isso, incluindo algumas disponíveis para uso por APIs. Veja algumas neste link: https://www.analyticsvidhya.com/blog/2023/08/ai-image-generators/.

1 0
0 36
Artigo
· Ago. 18, 2023 2min de leitura
InterSystems IRIS em contêineres

A InterSystems também lançou o IRIS como implantações em contêineres. Esta postagem demonstra como o InterSystems IRIS e os aplicativos que dependem do IRIS como um back-end podem ser empacotados em uma imagem e executados em outras máquinas em contêineres e como é simples fazer isso.

Um contêiner executa imagens que possuem todos os executáveis, código binário, bibliotecas e arquivos de configuração necessários. E as imagens podem ser movidas de uma máquina para outra, e um repositório de imagens como o Docker Hub pode simplificar esse processo.

0 0
0 36
Artigo
· Jul. 4, 2023 5min de leitura
Utilizando Python no Iris

Olá, Criei este artigo inicialmente para demonstrar a usabilidade do Python dentro do Iris e sua funcionalidade, no código abaixo trago um exemplo de algo muito próximo que utilizamos para a solução de um problema, nele recebemos uma Global contendo um XML com mais de 7.000.000 de caractéres, onde fazemos as tratativas de limpeza, organização, conversão para um arquivo JSON e retornamos ele como resposta uma Global.

Class AXS.BP.Exemplo Extends (Ens.BusinessProcess, %XML.Adaptor) [ ClassType = persistent

{

1 0
0 36

Rubrica de perguntas frequentes da InterSystems

As definições de classe criadas pelos usuários são armazenadas em classes de definição de classe. Elas podem ser usadas para obter uma lista de definições de classes a partir de um programa.

Observação: as classes de definição de classe se referem a todas as classes contidas no pacote %Dictionary.

0 0
0 35
Artigo
· Fev. 14 3min de leitura
Recursos relacionados ao código VS

Após dois Webinars locais, focamos no VS Code ["Intro" e "Beyond Basics"; em hebraico], preparei para os participantes alguns links relacionados de recursos relevantes que enviamos como acompanhamento. Compartilhando-os aqui também para o benefício da Comunidade.
É claro que todos vocês são bem-vindos para adicionar mais recursos úteis.

0 0
0 35
Artigo
· Dez. 6, 2023 2min de leitura
Truque de depuração com o SQL

Com certeza, você já se deparou com esta situação:

  • Há um bug em um Sistema que você não consegue reproduzir localmente
  • Você precisa executar algumas linhas na instância afetada
  • Você ganha acesso completo ao Portal de Gerenciamento de Sistemas
  • Mas não há terminal, console nem acesso com o Studio, Atelier ou VSCode
  • Como executar algumas linhas para teste ???
0 0
0 35
Artigo
· Dez. 26, 2023 7min de leitura
Suporte a vetores, ou quase

Atualmente, há bastante conversa sobre o LLM, a IA etc. Os bancos de dados vetoriais fazem um pouco parte disso, e já há várias realizações diferentes para o suporte no mundo fora do IRIS. 

Por que o vetor?

  • Pesquisa de similaridade: os vetores permitem uma pesquisa de similaridade eficiente, como encontrar os itens ou documentos mais parecidos em um banco de dados. Bancos de dados relacionais tradicionais são projetados para pesquisas de correspondência exata, que não são adequadas para tarefas como pesquisa de similaridade em imagens ou texto.
  • Flexibilidade: as representações vetoriais são versáteis e podem ser derivadas de vários tipos de dados, como texto (por embeddings, como Word2Vec e BERT), imagens (por modelos de aprendizado profundo) e muito mais.
  • Pesquisas entre modalidades: os vetores permitem a pesquisa em várias modalidades de dados diferentes. Por exemplo, a partir da representação vetorial de uma imagem, é possível pesquisar imagens semelhantes ou textos relacionados em um banco de dados multimodal.

E vários outros motivos.

Então, para este concurso de python, decidi tentar implementar esse suporte. Infelizmente, não conseguir terminar a tempo, e explicarei abaixo porquê.

0 0
0 34

Neste GitHub, você pode encontrar todas as informações sobre como usar um modelo de machine learning / IA do HuggingFace no Framework IRIS usando python.

1. iris-huggingface

Uso de modelos de machine learning no IRIS usando Python. Para modelos text-to-text, text-to-image e image-to-image.

2 0
0 33

O que é o diário (Journal) ?

O diário (Journal) é um recurso essencial do IRIS e uma parte do que torna o IRIS um banco de dados confiável. Embora o diário seja fundamental para o IRIS, há nuances, então escrevi este artigo para resumir (mais brevemente do que nossa documentação com todos os detalhes) o que você precisa saber. Percebo a ironia de dizer que uma leitura de 27 minutos é breve.

0 0
0 32

InterSystems FAQ

Você pode definir páginas de erro individuais para as seguintes mensagens de erro/respostas de sistema do Web Gateway:

  • erro de servidor
  • servidor ocupado
  • servidor indisponível
  • tempo limite do servidor
  • conexão fechada

As configurações são feitas na tela de Gerenciamento do Web Gateway ([Management Portal] > [System Administration] > [Configuration] > [Web Gateway Management] > [Configuration] > [Default Parameters]).

Na seção Página de Erro do menu de Parâmetros Padrão, defina o nome do arquivo da página html a ser exibida ou o caminho (URL) para a qual redirecionar quando ocorrer um erro.

0 0
0 32
Cenário

O IRIS tem adaptadores de entrada SQL para uso com SQL gateways, como EnsLib.SQL.InboundAdapter, para consultar repetidamente as conexões do SQL Gateway. Surgiu uma situação em que queríamos consultar alguns dados em um banco de dados interno, mas não encontramos um serviço pronto para uso com essa finalidade.

0 0
0 30

Transformações DTL e chamadas GetValueAt/SetValueAt em mensagens HL7 truncarão todos os campos com mais de 32 K. Para evitar isso, os métodos GetFieldStreamRaw e StoreFieldStreamRaw devem ser utilizados ao lidar com campos que possam ser maiores que 32K. OBX:5 é um exemplo frequente. Esses métodos têm algumas sutilezas e devem ser usados com cuidado.

0 0
0 30

Ao criar Business Hosts personalizados, muitas vezes é necessário adicionar propriedades à classe para configurações adicionais que serão usadas na inicialização ou operação do host. O próprio nome da propriedade nem sempre é muito descritivo, por isso é uma vantagem ter uma exibição de legenda personalizada com o campo.

No Ensemble, era bastante simples:

0 0
0 30