1 Seguidor · 122 Postagens

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

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 Heloisa Paiva · Dez. 11, 2024 4m read

De acordo com o relatório OWASP Top Ten de 2021, um documento de referência na área de segurança de aplicações web, as injeções SQL ocupam a terceira posição entre os riscos mais críticos. Este relatório, disponível em OWASP Top 10: Injection, destaca a gravidade dessa ameaça e a necessidade de implementar medidas de proteção eficazes.

Uma injeção SQL ocorre quando um atacante malicioso consegue inserir código SQL não autorizado em uma consulta enviada a um banco de dados. Esse código, disfarçado nas entradas do usuário, pode então ser executado pelo banco de dados, causando ações indesejáveis como o roubo de dados confidenciais, a modificação ou a exclusão de informações sensíveis, ou ainda a interrupção do funcionamento da aplicação.

0
0 52
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 Heloisa Paiva · Out. 24, 2024 7m read

fastapi_logo

Descrição

Este é um modelo para um aplicativo FastAPI que pode ser implantado no IRIS como um aplicativo Web nativo.

Instalação

  1. Clone o repositório
  2. Crie um ambiente virtual
  3. Instale os requisitos
  4. Execute o arquivo docker-compose
git clone
cd iris-fastapi-template
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
docker-compose up

Uso

A URL base é http://localhost:53795/fastapi/.

Endpoints

  • /iris - Retorna um objeto JSON com as 10 principais classes presentes no namespace IRISAPP.
  • /interop - Um endpoint de ping para testar a estrutura de interoperabilidade do IRIS.
0
0 55
Artigo Heloisa Paiva · Out. 22, 2024 9m read

django_logo

Descrição

Este é um modelo para um aplicativo Django que pode ser implantado no IRIS como um aplicativo Web nativo.

Instalação

  1. Clone o repositório
  2. Crie um ambiente virtual
  3. Instale os requisitos
  4. Rode o arquivo docker-compose
git clone
cd iris-django-template
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
docker-compose up

Uso

A URL base é http://localhost:53795/django/.

Endpoints

  • /iris - Retorna um objeto JSON com as 10 principais classes presentes no namespace IRISAPP.
  • /interop - Um endpoint de ping para testar a estrutura de interoperabilidade do IRIS.
0
0 42
Artigo Heloisa Paiva · Out. 20, 2024 6m read

Flask_logo

Descrição

Este é um modelo para um aplicativo Flask que pode ser implantado no IRIS como um aplicativo Web nativo.

Instalação

  1. Clone o repositório
  2. Crie um ambiente virtual
  3. Instale os requisitos
  4. Rode o arquivo docker-compose
git clone
cd iris-flask-template
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
docker-compose up

Uso

A URL de base http://localhost:53795/flask/.

Endpoints

  • /iris - Retorna um objeto JSON com as 10 principais classes presentes no namespace IRISAPP.
0
0 59
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 Heloisa Paiva · Out. 14, 2024 2m read

Em ObjectScript, você tem uma ampla coleção de funções que retornam algum valor tipicamente:

set variable = $somefunction(param1,param2, ...)

Não há nada de especial nisso.
Mas há um conjunto de funções que classifico como Funções de Lado Esquerdo
A especialidade delas é que você também pode usá-las à esquerda do operador igual como um alvo no comando SET:

set $somefunction(param1,param2, ...) = value

O motivo para levantar esse assunto é que com o IRIS

0
0 43
Pergunta Jenifer Arendt · Set. 4, 2024

Ao compilar minha classe Utils.Persistence.Menu no Studio ele apresenta a seguinte mensagem

ERROR #5356: Compiled storage class '%Storage.SQL doesnot exist

ERROR #5030: An error occurred while compiling class 'Utils.Persistence.Menu'

essa classe foi alterada no IRIS 2024 e após essa alteração começou a apresentar esse erro no CACHE 2018

no IRIS ela compila sem erros.

Alguém sabe como resolver?

2
0 59
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 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 · Ago. 29, 2024 1m read

Se você encontrou o problema de que nem todas as linhas do seu resultado estão retornando no seu snapshot, você está no lugar certo.

Ao usar snapshots, existe uma informação não trivial de que eles têm um máximo de linhas que vem por padrão como 250.

Para mudar isso é muito simples. Ao invés de enviar o snapshot como referência direto no seu método de execução de query ou procedure, vamos inicializá-lo antes e definir um valor na propriedade MaxRowsToGet.

Set resultSet = ##class(%ListOfObjects).%New()
Set snapshot = ##class(EnsLib.SQL.Snapshot).%New()
Set snapshot.
0
0 38
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 78
Artigo Heloisa Paiva · Jun. 8, 2024 1m read

Rubrica InterSystems FAQ

Para desabilitar esse timeout, defina o timeout da query como desabilitado nas configurações de DSN (Data Source Name - Nome da fonte de dados):

Painel de controle Windows > Ferramentas de Administração > Fontes de Dados (ODBC) > Configuração de DSN do sistema

Se você marcar "Desabiltar o timeout de query", o timeout será desabilitado.

Se quiser mudar isso no lado da aplicação, você pode definir no nível da ODBC API.

Defina o atributo SQL_ATTR_QUERY_TIMEOUT quando chamar a função ODBC SQLSetStmtAttr antes de conectar à fonte de dados.

0
0 92
Anúncio Heloisa Paiva · Maio 28, 2024

Olá Comunidade,

Esse é um passo a passo detalhado e claro sobre a plataforma IRIS AI Studio. Eu penso alto enquanto tento diferentes exemplos, alguns dos quais falham em devolver os resultados esperados - o que eu acho que é uma necessidade para que um plataforma desse tipo explore diferentes modelos, configurações e limitações. Esse vídeo será útil se está interessado em como construir o "Chat with PDF" (conversa com PDF) ou sistema de recomendações de dados usando a IRIS DB (DataBase - base de dados) e modelos LLM (Large Language Model -  grande modelo de lingugagem).

 

0
0 100
Artigo Heloisa Paiva · Maio 27, 2024 4m read

No artigo anterior, vimos detalhes a respeito dos conectores, que permitem que o usuário carregue o arquivo, o converta para incorporações e armazene na IRIS DB. Nesse artigo, vamos explorar opções diferentes de recuperações que o Studio IRIS AI oferece: Semantic Search (pesquisa semântica), Chat (conversa), Recommender (recomendação) e Similarity (similaridade).

Novas atualizações  ⛴️ 

  • Adicionada instalação pelo Docker. Rode `./build.sh` após clonagem para ter a aplicação e a instância IRIS rodando na sua máquina local.
  • Conecte via InterSystems Extension no vsCode - Graças ao @Evgeny.
0
0 112
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 151
Pergunta Igor Lampa · Maio 9, 2024

O nosso sistema funciona normalmente com a versão Iris 2023.2, porém foi necessário mudarmos de serviço de servidor cloud e ao migrar o banco para esse novo servidor e subir nossa aplicação começamos a receber alguns erros, que seguem abaixo:

Caused by: java.sql.SQLException: [SQLCODE: <-400>:<Ocorreu um erro fatal>]
11:12:26,663 INFO  [stdout] (http-/0.0.0.0:8443-17) [Location: <Prepare>]
11:12:26,664 INFO  [stdout] (http-/0.0.0.0:8443-17) [%msg: <Process 161341 failed to compile Cached Query Class %sqlcq.TGDB.
8
0 127
Anúncio Danusa Calixto · Abr. 17, 2024

Temos o prazer de anunciar o lançamento de uma nova versão da extensão SQLTools VS Code.

SQLTools conecta usuários do VS Code aos bancos de dados mais usados usando drivers, incluindo InterSystems IRIS. Com mais de 3,5 milhões de downloads, ajuda os usuários a trabalhar com seus dados com muito mais facilidade.

A versão 0.28.2 já está disponível e inclui:
- Novas opções de formato de exportação CSV.
- Melhor escolha rápida de conexão e item da barra de status.
- As strings de erro de consulta agora são agrupadas.
- Configurações do documento que exigem reinicialização após alteração.

0
0 109
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 Danusa Calixto · jan 4, 2024 2m read

Você sabia que pode obter dados JSON diretamente das suas tabelas SQL?

Vou apresentar duas funções SQL úteis que são usadas para recuperar dados JSON de consultas SQL - JSON_ARRAY e JSON_OBJECT
Você pode usar essas funções na instrução SELECT com outros tipos de itens select, e elas podem ser especificadas em outros locais onde uma função SQL pode ser usada, como em uma cláusula WHERE 

A função JSON_ARRAY aceita uma lista separada por vírgula de expressões e retorna um array JSON com esses valores.

SELECT TOP 3 Name,
JSON_ARRAY(%ID,%TABLENAME,UCASE(Name),Age,Home_State) "JSON data" 
FROM Sample.
0
0 153
Artigo Danusa Calixto · Dez. 26, 2023 7m read

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 90
Artigo Danusa Calixto · Dez. 5, 2023 5m read

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 113
Anúncio Danusa Calixto · Nov. 29, 2023

Olá Desenvolvedores, 

Nossa próxima Mesa Redonda de Desenvolvedores online irá acontecer no dia 30 de Novembro de 2023 às 10 am ET | 4pm CET. 📍 

Conversas sobre tecnologia:

1. Foreign Tables - by @Benjamin De Boe Manager, Analytics Product Management, InterSystems
2. Construindo "data products" com dbt e InterSystems IRIS - by @Thomas Dyar Product Manager, Machine Learning, InterSystems

Teremos tempo para perguntas e discussão aberta: 

>> RSVP através Global Masters challenge <<

 

0
0 65
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 Danusa Calixto · Nov. 28, 2023 8m read

Olá, Comunidade,
Neste artigo, vou apresentar meu aplicativo iris-mlm-explainer

Esse aplicativo da Web se conecta ao InterSystems Cloud SQL para criar, treinar, validar e prever modelos de ML, fazer previsões e mostrar um painel com todos os modelos treinados e uma explicação sobre o funcionamento de um modelo de machine learning ajustado. O painel fornece plotagens interativas de desempenho do modelo, importância do recurso, contribuições do recurso para previsões individuais, plotagens de dependência parcial, valores SHAP (interação), visualização de árvores de decisões individuais etc.

0
0 90
Artigo Danusa Calixto · Nov. 27, 2023 3m read

Com o lançamento do InterSystems IRIS Cloud SQL, estamos recebendo perguntas frequentes sobre como estabelecer conexões seguras por JDBC e outras tecnologias de driver. Temos um ótimo resumo e uma documentação detalhada sobre as tecnologias de driver, mas essa documentação não chega a descrever ferramentas de cliente individuais, como DBeaver, nossa favorita. Neste artigo, vamos descrever as etapas para criar uma conexão segura no DBeaver para sua implantação do Cloud SQL.

0
0 406