Exportar dados do InterSystems Caché e IRIS para PostgreSQL

Migrate · · 3 min de leitura

Vai sair de um sistema Caché legado, ou alimentar o PostgreSQL ou o SQL Server a partir do IRIS? O dbSlice conecta nos dois, lê as tabelas pelo SQL do InterSystems e as grava no destino, por um app Windows ou pela linha de comando. Rode uma vez para migrar, ou num agendamento para manter o banco novo em dia enquanto o sistema antigo ainda está em uso.

Por que é mais difícil do que parece

A maioria das ferramentas e guias de migração cobre o sentido contrário: carregar dados para o IRIS. Sair do Caché costuma significar drivers ODBC, scripts de exportação e muito ajuste manual de tipos. E tabelas legadas do Caché muitas vezes não têm chave primária nem índice utilizável, o que deixa muitas ferramentas lentas ou incapazes de lê-las em lotes.

Aba Synchronize do dbSlice

O que o dbSlice faz

  • Nada para instalar. O dbSlice conecta no InterSystems IRIS e no Caché legado sem configuração extra. Você não instala nem configura driver ODBC.
  • Entende namespaces. Escolha o servidor, o namespace e a tabela, como faria no Management Portal.
  • Tabelas legadas sem índice. Quando não há chave utilizável, o dbSlice ainda lê a tabela com eficiência, de uma vez.
  • Mapeamento de tipos para o destino. Se a tabela de destino ainda não existe, o dbSlice mostra o script CREATE TABLE traduzido para PostgreSQL ou SQL Server para o seu DBA revisar e rodar. Ele não cria objetos nos seus bancos por conta própria.
  • Qualquer banco de destino. PostgreSQL, SQL Server, Oracle, MySQL, MariaDB, Firebird ou SQLite, e destinos NoSQL (MongoDB, Cassandra, Elasticsearch, Couchbase, Redis).
  • Mascara no caminho. Esconda nomes, e-mails ou documentos durante a cópia, para uma cópia de teste ou de análise que não pode levar dados pessoais.

Passo a passo

  1. Conecte no Caché ou no IRIS: servidor, porta, namespace, usuário. Escolha InterSystems Caché para um servidor legado e InterSystems IRIS para o IRIS.
  2. Conecte no destino, por exemplo o PostgreSQL.
  3. Escolha a tabela de origem (ou escreva um SELECT) e a tabela de destino.
  4. Escolha a coluna-chave, se a tabela tiver uma. Se não tiver, o dbSlice lê a tabela de uma vez, como descrito acima.
  5. Escolha o modo: Initial load para a primeira cópia, depois Upsert ou Insert new nas execuções seguintes.
  6. Confira antes: o Record Diff compara as chaves dos dois lados.
  7. Rode, ou salve o job e agende pela CLI enquanto os dois sistemas rodam lado a lado.

Rode durante a transição

A troca de um Caché quase nunca acontece num fim de semana. Mantenha o sistema antigo como fonte da verdade e atualize o PostgreSQL toda noite com Upsert. Com uma coluna que só cresce (um timestamp ou um contador), cada execução lê só as linhas acima do último valor visto.

Exclusões no Caché não são detectadas pelas execuções incrementais; agende uma comparação completa periódica ou uma recarga completa para as tabelas em que linhas são removidas.

O que o dbSlice não faz

  • Ele move dados, não código. Classes, métodos, rotinas e triggers em ObjectScript não são convertidos. Planeje essa parte à parte.
  • Ele lê por SQL. Dados que existem só em globals, sem classe nem mapeamento SQL, não aparecem para o SQL e, portanto, nem para o dbSlice. Mapeie para uma classe antes.
  • Tabelas sem chave não retomam. Uma falha de rede no meio obriga a recomeçar aquela tabela. Tabelas com chave continuam de onde pararam.
  • Não é tempo real. As execuções são jobs em lote, sob demanda ou agendados.

O outro sentido, também

O dbSlice também grava no IRIS e no Caché, então a mesma tela carrega dados do PostgreSQL ou do SQL Server no IRIS, e pode gerar uma classe IRIS a partir do esquema de uma tabela.

Vai para o SQL Server? Veja Caché e IRIS para SQL Server.

O pgloader não tem InterSystems como origem; veja a página alternativa ao pgloader.

Comparando ferramentas? →

Ainda não usa o dbSlice?
Experimente a versão gratuita da Microsoft Store: ela conecta, navega pelos dados, compara estruturas e exporta para CSV.

Experimente grátis Veja as demonstrações

Em produção há mais de 6 anos · Garantia de 14 dias · Roda na sua máquina