#Importação e Exportação de Dados

0 Seguidores · 13 Postagens

Este tópico reúne postagens que descrevem abordagens, ferramentas e soluções para importar e exportar dados para o InterSystems IRIS e outros produtos da Plataforma de Dados InterSystems: CSV, JSON, SQL, arquivos simples, arquivos binários, globais, fluxos, etc.

Artigo Larissa Prussak · Jul. 3, 2025 2m read

Fazendo Profiling de Documentos CCD com o CCD Data Profiler da LEAD North

Já abriu um CCD e foi recebido por uma parede de XML confuso? Você não está sozinho. Apesar de ser um formato essencial para a troca de dados clínicos, os CCDs são notoriamente densos, verbosos e pouco amigáveis à leitura humana. Para desenvolvedores e analistas que tentam validar sua estrutura ou extrair informações significativas, navegar por esses documentos pode parecer mais arqueologia do que engenharia.

Apresentando o CCD Data Profiler

0
0 22
Artigo Danusa Calixto · jan 26, 2024 3m read

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:

  1. Definir o esquema da tabela em que você quer carregar os dados.
  2. Descobrir a sintaxe do comando LOAD DATA.

Desenvolvi uma interface do usuário que lida com o passo CREATE TABLE de maneira invisível e gera a sintaxe para LOAD DATA, tudo isso em um assistente útil!

Pelo menos no meu caso — embora trabalhe com bancos de dados há décadas —, só importo dados algumas vezes por ano. Portanto, minhas habilidades de CREATE TABLE ficam enferrujadas, e é muito bom ter uma ferramenta cuidando disso para mim. E essa ferramenta não só lida com a sintaxe. Ela também inspeciona o arquivo CSV de entrada usando um utilitário da biblioteca SQL Utilities de @Benjamin De Boe para descobrir os tipos e o comprimento dos dados. Em seguida, ela faz mais algumas perguntas para definir a sintaxe do comando LOAD DATA necessário. O app pode executá-la ou você pode só copiar e ajustar a sintaxe por conta própria. 

Aqui está um passo a passo.

Etapa 1: instale o app e analise o arquivo CSV

Depois de seguir as instruções para instalar a solução, você terá um app Angular publicado como um aplicativo CSP e um aplicativo com back-end ObjectScript que servirá como a API para a interface com o banco de dados.

Observe meu conjunto de dados de amostra (usando a extensão CSV Rainbow no VS Code). Ele tem uma combinação de colunas numéricas, de texto e vazias.

Etapa 2: acesse o app

Você provavelmente encontrará o app em http://localhost:52773/csp/dataloadapp/index.html se usar a porta IRIS padrão e o nome do web application.

Etapa 3: especifique o local do arquivo CSV

Etapa 4: especifique o formato do arquivo CSV

LOAD DATA precisa saber algumas coisas, como o caractere do delimitador da coluna e onde começar no arquivo. 

Etapa 5: defina um nome de tabela de destino, com o nome do esquema também

Etapa 6: ajuste os nomes dos campos e tipos de dados

A maioria estará preenchida e provavelmente correta, mas você pode ajustar alguns nomes ou comprimentos de campos.

E é isso! Pressione "Load CSV" e o app do cliente fará uma chamada ao servidor para executar um comando CREATE TABLE SQL. Depois, execute LOAD DATA com a mesma sintaxe mostrada na caixa preta à direita. Entrando no Portal de Gerenciamento (ou qualquer outro cliente SQL), você pode ver como agora tenho o arquivo CSV carregado no IRIS.

Preciso me desculpar desde já, porque ainda não foi feita muita verificação de erros, mas é código aberto, então se você achar essa ferramenta útil, me ajude a fazer melhorias no GitHub.

0
0 132
Artigo Danusa Calixto · Ago. 21, 2023 5m read

WIN SQL é o editor usado pela maioria dos usuários. No entanto, não é possível fazer o download de grandes quantidades de dados usando o winsql . Então, escrevi um tutorial sobre como fazer a conexão com um novo editor baseado em Java chamado Squirrel SQL, que permite fazer o download ou exportar dados facilmente em excel ou qualquer outro formato. Também incluí um programa de conexão JDBC do Java para se conectar com um banco de dados do IRIS, particularmente um servidor de espelhamento/tolerante a falhas.

Editor SQL baseado em Java para exportar uma grande quantidade de dados e programa JDBC Java para a conexão com o IRIS

Editor SQL baseado em Java para exportar uma grande quantidade de dados

O WinSql é o editor normalmente usado para extrair dados do banco de dados do IRIS. Porém, infelizmente, não há a opção de exportar uma grande quantidade de dados sem o winsql licenciado.

A solução é usar um editor baseado em Java, chamado Squirrel SQL. Nesse editor, você pode exportar uma grande quantidade de dados depois de fazer o fetch do sql no banco de dados do IRIS. É um cliente SQL de código aberto criado no Java, que usa o JDBC para a conexão com o banco de dados do IRIS.

Recursos do Squirrel SQL

  • Compatibilidade com o Java 19
  • Edição com vários acentos circunflexos/cursores
  • Preferências globais e pesquisa de propriedades da nova sessão
  • Várias melhorias nas sessões salvas (recurso para salvar e restaurar todos os editores SQL de uma sessão)
  • Menus configuráveis de botão direito do mouse
  • Diálogo adicionar/editar reformulado do Driver JDBC
  • Etapas para instalar o Squirrel SQL

    O Squirrel SQL pode ser baixado no site Squirrel https://squirrel-sql.sourceforge.io/

    Etapas para se conectar a um banco de dados do IRIS

  • Adicionando um driver ao Squirrel Sql
  • Clique no ícone "+" para criar um novo driver, conforme mostrado abaixo
  • Na caixa de diálogo "Add Driver" (Adicionar driver), selecione "Extra Class Path" (Caminho de classe extra) e clique em "Add" para adicionar uma nova entrada para "Intersystems-jdbc-3.2.0.jar" (arquivo jar do driver jdbc), conforme mostrado abaixo. Se você instalou o IRIS no drive C da sua máquina local, esse será o caminho normal baseado na versão do IRIS
  •  C:\InterSystems\IRISHealth2\dev\java\lib\JDK18\intersystems-jdbc-3.2.0.jar.

  • Conforme mostrado na captura de tela abaixo,
  • Insira um nome para o driver, como "Intersystems IRIS" (escolha qualquer nome relevante)
  • Insira o URL de exemplo, como jdbc:IRIS://<host>:<port>/<database>
  • O URL do site é opcional.
  • Clique no botão "List Drivers" (Listar drivers) à direita e selecione "com.intersystems.jdbc.IRISDriver", conforme mostrado abaixo.
  • Clique em "OK" para salvar a entrada do driver. Agora, você verá o driver na barra de menu à esquerda, em "Drivers".
    1. Adicionando um alias (conexão) baseado no driver
  • Selecione a guia "Aliases" no lado esquerdo do squirrel sql e clique em "+" para adicionar um novo alias, conforme mostrado abaixo.
  • Na janela "Add Alias" (Adicionar alias), insira um nome relevante para o alias.
  • Selecione o driver do IRIS que recém criamos no menu suspenso. Depois de selecionar o driver, o formato do URL será preenchido conforme a configuração do driver recém-criado. Edite o URL ao adicionar o hostname ou endereço IP correto, o número da porta e o namespace do banco de dados.
  • Por exemplo : jdbc:IRIS://00.00.00.00.00:12345/TEST-TRAK

  • Insira o nome de usuário e a senha para o banco de dados do IRIS que tem privilégios SQL
  • Clique no botão "Test" (Testar) e verifique se a conexão foi bem-sucedida.
  • Clique em "OK" para salvar o novo alias
    1. Conexão ao banco de dados do IRIS
  • Clique duas vezes no alias recém-criado para se conectar ao banco de dados e abrir o editor squirrel, e você pode testar as consultas sql.
  • Conexão do JDBC ao banco de dados do IRIS para escrever programas

    import java.sql.*;
    import com.intersystems.jdbc.*;
    import java.util.logging.*;
    import java.io.IOException;
    import java.util.*;
    
    publicclassExtract{
        publicstatic Connection TrakCache()throws Exception
        {
                 IRISDataSource ds = new IRISDataSource();
                 Connection conn = null;
    
                 ds.setURL("jdbc:IRIS://1.12.333.444:12345/NAMESPACE-TRAK");
                 ds.setUser("username");
                 ds.setPassword("Password");
    
                  try
                  {
                            conn = ds.getConnection();
                  }
                  catch (Exception e) {
                    System.out.println("catch" +conn);
                    //You can write another connection here if automatically fail over to another server.
                  }
                  return conn;
        }
    }

     

     

    0
    0 112
    Artigo Yuri Marx · Mar. 3, 2022 5m read

    Às vezes é necessário transferir ou migrar dados e esquemas de dados do Postgres para o IRIS. Atualmente, existem algumas opções para fazer isso, mas as duas opções mais populares são usando DBeaver (https://openexchange.intersystems.com/package/DBeaver) ou SQLGateway. A primeira será demonstrada neste artigo e a segunda é apresentada em um excelente artigo de Robert Cemper, DB Migration using SQLgateway (https://community.intersystems.com/post/db-migration-using-sqlgateway), veja neste artigo como realizar essa migração usando o DBeaver:

    Amostra de dados para demonstrar a migração

    0
    0 3165
    Artigo Yuri Marx · jan 13, 2022 5m read

     

    Oi comunidade,

    Em um trabalho intenso de curadoria e qualidade de dados, a aplicação "health dataset" entrega os conjuntos de dados acima.

    Esses conjuntos de dados podem ser utilizados no seu modelo ou aplicação de Machine Learning, AutoML e de aplicações analíticas. Veja mais detalhes aqui:

    Instalação

    1. Clone/git pull no repositório em qualquer diretório local

    $ git clone https://github.com/yurimarx/automl-heart.git

    2. Abra o terminal no diretório da aplicação e execute:

    $ docker-compose build

    3. Execute o IRIS container:

    $ docker-compose up -d

    4. Faça um select no HeartDisease dataset:

    0
    0 286
    Artigo Henrique Dias · jan 13, 2022 5m read

    Fala pessoal, tudo bem?

    Espero que todos estejam bem, saudáveis e que tenham um excelente 2022!

    Ao longo dos anos, eu trabalhei nos mais diferentes projetos e acabei me deparando com dataset super interessantes.

    Mas, na maioria das vezes, os datasets utilizados para o trabalhar eram datasets dos clientes. Quando eu comecei a participar das competições nos últimos anos, eu comecei a vasculhar na web por datasets que eu possa chamar de meu 😄

    Eu acabei coletando alguns dados, mas eu estava pensando, "Esses datasets são o suficiente para ajudar as outras pessoas?"

    Então, trocando ideias com o @José Pereira para essa competição, nós decidimos por uma abordagem utilizando uma perspectiva diferente.

    Nós pensamos em oferecer uma variedade de datasets de qualquer espécie de 2 fonte de dados famosas. Dessa forma, nós podemos empoderar vocês para encontrarem e instalarem o dataset desejado de uma forma rápido, fácil e indolor.

    Socrata

    Socrata Open Data API permite que você de forma programática possa acessar uma variedade de dados abertos de governos, organizações sem fins lucrativos e ONGs de todo o mundo.

    Para esse release inicial, nós estamos usando as APIs Socrata para pesquisar e fazer download de um dataset específico.

    Pode utilizar a ferramenta para API da sua preferência Postman, Hoppscotch

    GET> https://api.us.socrata.com/api/catalog/v1?only=dataset&q=healthcare
    

    This endpoint will return all healthcare related datasets, like the image below: Socrata Return Dataset

    Agora, basta pegar o ID. Neste caso o ID é: "n9tp-i3k3"

    Vamos para o terminal

    IRISAPP>set api = ##class(dc.dataset.importer.service.socrata.SocrataApi).%New()
    
    IRISAPP>do api.InstallDataset({"datasetId": "n9tp-i3k3", "verbose":true})
    
    Compilation started on 01/07/2022 01:01:28 with qualifiers 'cuk'
    Compiling class dc.dataset.imported.DsCommunityHealthcareCenters
    Compiling table dc_dataset_imported.DsCommunityHealthcareCenters
    Compiling routine dc.dataset.imported.DsCommunityHealthcareCenters.1
    Compilation finished successfully in 0.108s.
    
    Class name: dc.dataset.imported.DsCommunityHealthcareCenters
    Header: Name VARCHAR(250),Description VARCHAR(250),Location VARCHAR(250),Phone_Number VARCHAR(250),geom VARCHAR(250)
    Records imported: 26
    

    Depois do comando acima, você pode conferir o seu dataset prontinho para uso!

    Socrata Return Dataset

    Kaggle

    Kaggle, uma subsidiária do Google LLC, é uma comunidade online de cientistas de dados e profissionais de aprendizado de máquina. O Kaggle permite que os usuários encontrem e publiquem conjuntos de dados, explorem e construam modelos em um ambiente de ciência de dados baseado na Web, trabalhem com outros cientistas de dados e engenheiros de aprendizado de máquina e participem de competições para resolver desafios de ciência de dados.

    Em junho de 2017, Kaggle anunciou que ultrapassou 1 milhão de usuários registrados, ou Kagglers, e em 2021 tem mais de 8 milhões de usuários registrados. A comunidade abrange 194 países. É uma comunidade diversificada, desde aqueles que estão começando até muitos dos pesquisadores mais conhecidos do mundo.

    Comunidade pequenininha hein!? 😂

    Para usar os conjuntos de dados do Kaggle, você precisa se registrar no site. Depois disso, você precisa criar um token para usar a API do Kaggle.

    Kaggle Token Creation

    Agora, da mesma forma que fizemos com o Socrata, você pode utilizar a API para fazer a pesquisa e download do dataset.

    GET> https://www.kaggle.com/api/v1/datasets/list?search=appointments
    

    Kaggle Return Dataset

    No Kaggle, ao invés de id utilizaremos o ref. Nesse exemplo o valor de ref é: "joniarroba/noshowappointments"

    Os parâmetros abaixo "your-username", e "your-password" são parâmetros que o Kaggle fornece quando você cria o token para API.

    IRISAPP>Set crendtials = ##class(dc.dataset.importer.service.CredentialsService).%New()
    
    IRISAPP>Do crendtials.SaveCredentials("kaggle", "<your-username>", "<your-password>")
    
    IRISAPP>Set api = ##class(dc.dataset.importer.service.kaggle.KaggleApi).%New()
    
    IRISAPP>Do api.InstallDataset({"datasetId":"joniarroba/noshowappointments", "credentials":"kaggle", "verbose":true})
    
    Class name: dc.dataset.imported.DsNoshowappointments
    Header: PatientId INTEGER,AppointmentID INTEGER,Gender VARCHAR(250),ScheduledDay DATE,AppointmentDay DATE,Age INTEGER,Neighbourhood VARCHAR(250),Scholarship INTEGER,Hipertension INTEGER,Diabetes INTEGER,Alcoholism INTEGER,Handcap INTEGER,SMS_received INTEGER,No-show VARCHAR(250)
    Records imported: 259
    

    Pronto! Mais um dataset prontinho para uso

    Kaggle Select

    Graphic User Interface

    Para facilitar as coisas, estamos oferecendo uma interface gráfica para instalar o dataset. Mas isso é algo que quero falar em nosso próximo artigo. Enquanto isso, você pode conferir uma prévia abaixo enquanto estamos dando aquele talento, antes do lançamento oficial:

    Socrata Dataset list

    Socrata Return Dataset

    Video Demo

    Se você está se perguntando como é fazer o download de um dataset grande, da uma olhada nesse video mostrando como é.... Agora... se +400.000 registros não forem o suficiente, que tal 1 MILHÃO DE REGISTROS?! Assista!

    <iframe width="560" height="315" src="https://www.youtube.com/embed/0T8wXRsaJso" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

    Votação

    Se você curtiu o app, por favor vote em iris-kaggle-socrata-generator!

    https://openexchange.intersystems.com/contest/current

    0
    0 298
    Anúncio Rochael Ribeiro · Dez. 29, 2021

    Olá Desenvolvedores!

    Aqui estão os bônus tecnológicos para o Concurso InterSystems de Datasets 2021 que lhes darão pontos extras na votação:

    • Repositório de Demonstração de Uso de Datasets - 4
    • Uso da nova funcionalidade LOAD DATA - 3
    • Questionário  - 2
    • Dataset Real único - 4
    • Uso de contêiner Docker - 2 
    • Implantação com Pacote ZPM - 3
    • Demonstração Online - 2
    • Validação da Qualidade de Código - 1
    • Primeiro Artigo na Comunidade de Desenvolvedores - 2
    • Segundo Artigo na Comunidade de Desenvolvedores - 1
    • Vídeo no YouTube - 3

    Vejam os detalhes abaixo.<--break-><--break->

    0
    0 62
    Anúncio Angelo Bruno Braga · Dez. 22, 2021

    Olá Comunidade,

    É um prazer convidá-los para nosso próximo Webinar de Lançamento do Concurso de Datasets InterSystems! O tópico deste webinar é dedicado ao Concurso de DataSets InterSystems.

    Neste webinar faremos um passeio rápido pela nova funcionalidade LOAD DATA além de abordarmos como empacotar dados em globais ou em arquivos utilizando o ZPM e executar um script de geração de dados como parte de um método na instalação ZPM. 

    Como sempre nossos especialistas irão responder questões sobre como desenvolver, construir e implantar conjuntos de dados utilizando a plataforma de dados InterSystems IRIS.

    Data & Horário: Terça-feira, 28 de Dezembro – 11:00 horário de Brasília

    Palestrantes:  
    🗣 @Benjamin De Boe, Gerente de Produtos, InterSystems  
    🗣 @Evgeny Shvarov, Gestor do Ecossistema de Desenvolvedores InterSystems


    0
    0 70
    Anúncio Angelo Bruno Braga · Dez. 22, 2021

    Queremos conjuntos de dados!

    Com o lançamento da Prévia do InterSystems IRIS 2021.2 e a nova funcionalidade LOAD DATA, gostaríamos de colocá-los a prova com o novo Concurso InterSystems de DATASETS !  

    🏆 Concurso InterSystems de Datasets 🏆

    Duração: de 27 de Dezembro a 16 de Janeiro de 2022

    Nosso prêmio aumentou para US$ 9,450!


    0
    0 86
    Anúncio Angelo Bruno Braga · Out. 4, 2021

    Olá Comunidade,

    Participem do Webinar de Lançamento do Concurso de Interoperabilidade InterSystems dedicado ao Concurso de Interoperabilidade.

    Neste webinar, você irá receber uma visão geral das capacidades de interoperabilidade da plataforma de dados InterSystems IRIS e iremos mostrar como utilizar o PEX. Além disto iremos debater e responder perguntas de como criar soluções de interoperabilidade utilizando o InterSystems IRIS e o  IRIS for Health.

    Data & Horário: Segunda-feira, 4 de Outubro — 13:00 horário de Brasília

    Palestrantes:  
    🗣 @Stefan Wittmann, Gerente de Produto InterSystems
    🗣 @Bob Kuszewski, Gerente de Produto InterSystems
    🗣 @Evgeny Shvarov, Gerente de Ecossistema de Desenvolvedores InterSystems


    0
    0 66
    Anúncio Ben Spead · Jul. 7, 2021

    Olá Desenvolvedores!

    Vocês já tiveram que converter mensagens HL7v2 para FHIR (Fast Healthcare Interoperability Resources) e acharam o processo de transformação complicado e confuso? A InterSystems está criando uma nova oferta de SaaS baseada em nuvem chamada de Serviços de Transformação de Mensagens do HealthShare que faz com que este processo se torne simples. Estamos muito empolgados de anunciar um Programa de Acesso Antecipado para esta nossa nova oferta e adoraríamos que vocês o utilizassem e então nos dessem seu feedback a respeito do mesmo! Para isso basta que vocês possuam uma conta grátis AWS, com um bucket S3 para colocar suas mensagens HL7v2 e outro bucket S3 para colocar a saída em FHIR. 

    0
    0 128