Talvez você conheça o Couchbase como a plataforma NoSQL mais rápida e dimensionável disponível. No entanto, você sabia que o Couchbase também pode ser um banco de dados relacional? O Couchbase é uma plataforma de dados que pode operar com várias personalidades simultâneas na mesma plataforma. Ele pode ser estruturado ou não estruturado. E pode ser transacional ou analítico. Neste blog, vamos analisar a transferência de dados do Oracle para o Couchbase.

Banco de dados Oracle de origem

Para um banco de dados de origem, usaremos Bancada oscilante. É um gerador de carga de trabalho sintética para Oracle. Ele é autônomo e cria esquemas que lembram o que pode ser encontrado em um aplicativo de produção real. Para este blog, usaremos o esquema Simple Order Entry (SOE) criado pelo utilitário. Uma representação visual do esquema SOE pode ser vista abaixo. A geração do esquema com um parâmetro de escala de 1 resulta em um conjunto de dados com cerca de 15 milhões de registros.

Oracle to Couchbase - swingbench schema

Importação de dados

Para migrar os dados do Oracle para o Couchbase, usaremos o comando cbperf ferramenta de demonstração. Esse utilitário gera principalmente esquemas sintéticos aleatórios para o Couchbase, mas também pode importar dados para o Couchbase por meio de um plug-in de fontes de dados externas. O plug-in Oracle para cbperf replicará todas as tabelas disponíveis para o usuário conectado, copiará os dados da tabela associada e, para cada tabela, extrairá as colunas que são indexadas para recriar os índices no Couchbase. 

Supondo que o esquema SOE tenha sido configurado com o nome de usuário e a senha padrão, que são soe e soerespectivamente, essa sintaxe exportará os dados do banco de dados SID testdb no host hospedeiro e importá-lo para o bucket do Couchbase soe com escopo soe em que um nó do cluster é cbhost.

Os dados no Couchbase

Vamos esclarecer logo de início uma importante isenção de responsabilidade. Para um aplicativo de produção, você provavelmente não desejará apenas "levantar e mudar" os dados e os índices. Em vez disso, é necessário fazer uma análise para determinar a configuração ideal no Couchbase, juntamente com as alterações necessárias no aplicativo. O nível final de esforço variará de acordo com o aplicativo.

Dito isso, uma vez que o cbperf quando a importação estiver concluída, haverá cerca de 15 milhões de documentos no Couchbase. Os soe O escopo terá coleções que correspondem a cada tabela no Oracle.

Aqui estão as tabelas no Oracle:

Oracle tables for Couchbase import

Aqui estão as coleções no Couchbase:

Couchbase collections set up for Oracle schema import

Cada linha que estava no banco de dados Oracle agora é um documento no Couchbase. A chave do documento é construída a partir do nome da coleção mais dois pontos ":" mais o número sequencial do documento (basicamente o número da linha). As chaves JSON do documento são os nomes das colunas da tabela, e os valores são os valores da coluna para essa linha.

Query in Oracle

Oracle document in Couchbase query

Por fim, podemos ver todos os índices que foram gerados automaticamente com base nas colunas indexadas no banco de dados Oracle. Para permitir a maior flexibilidade de consulta, cada índice abrange uma coluna. 

Oracle indexes imported into Couchbase

Execução de uma consulta

Analisando o código-fonte do Swingbench, encontrei a seguinte consulta:

Ao executar essa consulta no banco de dados Oracle, obtenho os seguintes resultados:

Oracle query results

Ao executar a consulta no Couchbase, obtive os mesmos resultados. A única coisa que tive de alterar na consulta foi prefixar as coleções com soe.soe. para construir um espaço-chave do Couchbase.

Couchbase query results from Oracle import

table of query results in Couchbase

Fato curioso

Você pode estar familiarizado com o ORACLE_SID como o identificador de instância do banco de dados Oracle, mas você sabe o que ele faz nos bastidores? Ele representa o Identificador do site. Ele é hashed com ORACLE_HOME para obter uma chave SGA (System Global Area), que é a chave de memória compartilhada nos sistemas Unix/Linux. Quando você obtém uma chave ORA-01034: ORACLE não disponível é porque essa chave de memória compartilhada não está presente no sistema. Portanto, você não pode se comunicar com o banco de dados. Felizmente, trabalhar com o Couchbase é muito mais simples, permitindo que você se concentre em outras coisas. A menos, é claro, que você goste da parte interna do sistema operacional.

Conclusão

Embora possa parecer uma tarefa assustadora, a importação de dados de um banco de dados relacional para o Couchbase não é tão difícil. Para ser justo, há mais a considerar do que apenas colunas e índices, como procedimentos armazenados (funções definidas pelo usuário no Couchbase), mas certamente é muito viável.

Referências

Autor

A ordem da postagem em relação a outras postagens. Michael Minichino

Posição vertical a partir do topo para iniciar o corte como uma porcentagem da altura da imagem.