Sobre a Openflow Connector for Oracle

Nota

O conector está sujeito aos Termos do conector Snowflake.

Nota

O Openflow Connector for Oracle também está sujeito a termos de serviço adicionais além dos termos de serviço padrão do conector. Para obter mais informações, consulte o Adendo do Openflow Connector para Oracle.

Este tópico descreve os conceitos básicos do Openflow Connector for Oracle, seu fluxo de trabalho e suas limitações.

Sobre Openflow Connector for Oracle

O Openflow Connector for Oracle conecta uma instância do banco de dados Oracle ao Snowflake e replica os dados das tabelas selecionadas quase em tempo real ou conforme um cronograma específico. O conector também cria um registro de todas as alterações de dados, que fica disponível junto com o estado atual das tabelas replicadas.

Casos de uso

O conector oferece suporte ao seguinte caso de uso:

  • Replicação de tabelas do banco de dados Oracle no Snowflake para gerar relatórios abrangentes e centralizados.

Modelos de licenciamento e restrições críticas

O Openflow Connector for Oracle oferece suporte a dois modelos de licenciamento distintos. Você deve selecionar o modelo correto antes da instalação. Não selecionar o modelo correto pode resultar em falha na implementação ou compromissos financeiros não intencionais.

Para acessar os termos de licenciamento detalhados, uma comparação e as instruções de configuração, consulte o licenciamento do Oracle XStream.

1. Licença Interna (fornecida pela Snowflake)

A Snowflake fornece a licença do Oracle XStream diretamente a você mediante uma taxa. Este modelo permite que você consuma a replicação do XStream sem um contrato direto com a Oracle. Para obter mais informações, consulte os Detalhes da licença interna e o Adendo do Openflow Connector para Oracle.

Termo

Detalhes

Faturamento

As taxas de licença e Suporte e Manutenção (Support & Maintenance, S&M) são deduzidas do seu Snowflake Capacity.

Compromisso

A ativação inicia uma vigência incancelável de 36 meses (após a avaliação de 60 dias).

Ciclo de vida

  • Pós-vigência (após 36 meses): após a vigência inicial de 36 meses, a taxa de licença é reduzida para US$ 0, mas a taxa de S&M continua anualmente.

  • Risco de bloqueio: se você cancelar a renovação de S&M, o conector será permanentemente bloqueado quando a cobertura de S&M terminar. Para desbloquear o conector, é necessário comprar uma nova Licença Interna, que aciona um novo compromisso de 36 meses pelo preço integral.

Gerenciamento de UI

Todas as ações de licença (iniciar/cancelar a avaliação, monitorar o uso, desativar) são realizadas pelo ORGADMIN no Snowsight em Admin » Terms » Openflow for Oracle. Para obter instruções passo a passo, consulte Openflow Connector for Oracle: Habilitar e gerenciar termos comerciais.

Restrições

Os seguintes clientes não estão qualificados:

  • Entidades do setor público

  • Clientes que compram o Snowflake pelo GCP Marketplace

  • Clientes que têm contratos com a Snowflake através de um revendedor terceirizado

2. Licença independente (Traga sua própria licença - BYOL)

Você providencia a própria licença do Oracle que inclui direitos para o XStream (por exemplo, licença Oracle GoldenGate). Para obter mais informações, consulte os detalhes da licença independente (BYOL).

Termo

Detalhes

Faturamento

Sem taxas adicionais de licenciamento do Snowflake. Custos padrão de armazenamento e computação (por exemplo, Openflow Compute) serão aplicados.

Conformidade

Você é o único responsável pela conformidade com sua licença do Oracle.

Uso

Obrigatório para setor público, GCP Marketplace e clientes de revendedores.

Escolhendo um modelo de licenciamento do Oracle XStream

O Openflow Connector for Oracle requer uma licença paga para os serviços do Oracle XStream. Dois modelos de licenciamento estão disponíveis:

  • Licença Interna do Oracle

  • Licença independente do Oracle (Traga sua própria licença - BYOL)

Use a tabela a seguir para determinar o modelo adequado à sua organização.

Consideração

Licença Interna

Licença independente (BYOL)

Para quem é?

Clientes que precisam de licença para a tecnologia Oracle XStream e desejam comprá-la diretamente por meio do contrato com a Snowflake.

Clientes que já possuem a licença Oracle GoldenGate ou outro contrato com a Oracle que conceda o direito ao XStream.

Faturamento

Faturada pela Snowflake com base no número de núcleos de processador em seu DB Oracle de origem. Implica um compromisso incancelável de 36 meses. Os serviços de suporte e manutenção também são cobrados.

Além disso, custos padrão de armazenamento e computação (por exemplo, Openflow Compute) serão aplicados.

Sem taxas adicionais de licenciamento ou suporte e manutenção para serviços do Oracle XStream pelo Snowflake. Você é responsável por todo o licenciamento e a conformidade diretamente com a Oracle.

Custos padrão de armazenamento e computação (por exemplo, Openflow Compute) serão aplicados.

Configuração

Você precisa informar a quantidade de núcleos de CPU do seu DB Oracle e um fator multiplicador do processador nos parâmetros do conector.

Você não precisa enviar informações de núcleo de CPU para a Snowflake.

Período de avaliação

Inclui uma avaliação gratuita de 60 dias para até 16 núcleos licenciados. O faturamento começa automaticamente no 61º dia.

Nenhum período de avaliação é oferecido pela Snowflake. Seu uso está sujeito ao seu contrato existente com a Oracle.

Detalhes da licença interna

Ao escolher essa opção, você adquire o direito de usar a tecnologia Oracle XStream com o conector através do Snowflake. Esteja ciente das seguintes condições importantes:

Faturamento

Os serviços do Oracle XStream são faturados mensalmente e deduzidos do seu saldo do Snowflake Capacity. A taxa tem dois componentes: licença e Suporte e Manutenção (S&M). A taxa de licença é calculada com base no número de núcleos de processador em seu banco de dados Oracle de origem, multiplicado pelo fator de núcleo de processador Oracle.

Compromisso (regra do «Dia 61»)

Os primeiros 60 dias são gratuitos para até 16 núcleos licenciados. No entanto, ativar o conector após a avaliação de 60 dias inicia uma vigência de faturamento de 36 meses incancelável («Vigência Inicial»).

  • Conversão automática: o faturamento começa automaticamente no Dia 61. Para evitar cobranças, você deve cancelar a avaliação no painel Admin » Terms » Openflow for Oracle antes do Dia 60.

  • Bloqueio: se o seu contrato com a Snowflake for encerrado durante a Vigência Inicial, todo o saldo restante referente à Vigência Inicial se tornará devido imediatamente.

Renovação após a vigência e penalidades

Após a Vigência Inicial, a taxa de licença passa a ser de US$ 0, mas a taxa de Suporte e Manutenção (S&M) é mantida.

  • Consequência do cancelamento: você pode cancelar a renovação de S&M pelo painel em Admin » Terms » Openflow for Oracle. No entanto, se a cobertura de S&M for interrompida, os processadores do conector serão bloqueados. Para retomar as operações, você deve comprar uma NEW Licença Interna (redefinindo o compromisso de 36 meses pelo preço integral).

Requisitos

Você é responsável por relatar com precisão o número de núcleos de processador e o fator de núcleo correto na configuração do conector. Essas informações sempre deverão ser atualizadas se o hardware do banco de dados de origem mudar.

Restrições

Esta opção não está disponível para:

  • Entidades do setor público (por exemplo, órgãos governamentais e instituições de ensino)

  • Clientes que compram o Snowflake pelo GCP Marketplace

  • Clientes que têm contratos com a Snowflake através de um revendedor terceirizado (por exemplo, CDW, Optiv)

Configuração

Para configurar a Licença Interna:

  • Revise e aceite os termos do Adendo do Openflow Connector para Oracle apresentados na UI.

  • Selecione o tipo Embedded License.

  • Insira os detalhes da quantidade de núcleos de CPU do seu banco de dados Oracle de origem: total de núcleos (o número total de núcleos físicos no servidor de banco de dados de origem) e fator de núcleo (o fator de núcleo do processador Oracle, por exemplo, 0,5 para processadores Intel). Consulte a tabela de fatores de núcleo do processador Oracle para conferir o valor correto.

Detalhes da licença independente (BYOL)

Esta opção é voltada para clientes que já licenciaram a tecnologia Oracle necessária.

Requisitos

Você é o único responsável por garantir que o seu uso do conector esteja em conformidade com os termos previstos em seu contrato de licença existente com a Oracle. A Snowflake não valida nem faz auditoria de seus direitos com a Oracle.

Configuração

Para configurar a Licença Independente (BYOL):

Ao configurar o conector, prossiga sem inserir nenhuma quantidade de núcleos ou informações relacionadas a faturamento.

Requisitos do Openflow

Os seguintes requisitos de tempo de execução do Openflow se aplicam ao Openflow Connector for Oracle:

  • O tamanho do tempo de execução deve ser pelo menos Medium. Use um tempo de execução maior ao replicar grandes volumes de dados, especialmente quando o tamanho das linhas for grande.

  • O conector não oferece suporte a tempos de execução do Openflow de vários nós. Configure o tempo de execução para esse conector com Min nodes e Max nodes definidos como 1.

Versões e plataformas Oracle compatíveis

As seguintes versões e plataformas de banco de dados Oracle são compatíveis:

  • Versões de banco de dados Oracle 12cR2 e mais recentes

  • Servidores no local

  • Oracle Exadata

  • OCI VM/Bare Metal

  • AWS Custom RDS para Oracle

  • AWS Standard RDS para Oracle de locatário único

Limitações

As seguintes limitações se aplicam ao Openflow Connector for Oracle:

  • AWS Standard RDS para Oracle multilocatário não é compatível.

  • Bancos de dados autônomos Oracle (ATP/ADW) não são compatíveis.

  • Ofertas SaaS da Oracle, como Oracle Fusion Cloud Applications eNetSuite, não são compatíveis.

  • O conector requer a versão de implantação do Openflow 0.55.0 ou posterior para BYOC.

  • O tempo de execução do Openflow deve ser criado após a instalação da versão de implantação do Openflow necessária.

  • Somente as tabelas do banco de dados com chaves primárias podem ser replicadas.

  • O conector funciona em um único banco de dados/contêiner (PDB ou CDB). Para replicar tabelas de vários contêineres, você deve configurar instâncias de conector separadas para cada contêiner.

  • O conector não oferece suporte à nova adição de uma coluna depois que ela é descartada.

  • O conector não replica valores individuais maiores que 16 MB. Por padrão, o processamento de um valor desse tipo resulta na marcação da tabela associada como falha permanente. Para impedir falhas na tabela, modifique o parâmetro de destino Oversized Value Strategy.

Como o conector funciona

As seções a seguir descrevem como o conector funciona em contextos diferentes, incluindo replicação, alterações no esquema e retenção de dados.

Como as tabelas são replicadas

As tabelas são replicadas nos seguintes estágios:

  1. Introspecção de esquema: o conector descobre as colunas na tabela de origem, incluindo os nomes e tipos de coluna, e as valida em relação às limitações do Snowflake e do conector. As falhas de validação fazem com que esse estágio falhe, e o ciclo se complete. Falhas na validação causam falha nesse estágio, e o ciclo é concluído. Após a conclusão bem-sucedida desse estágio, o conector cria uma tabela de destino vazia no Snowflake.

  2. Carga de instantâneo: o conector copia todos os dados disponíveis na tabela de origem para a tabela de destino. Se esse estágio falhar, nenhum outro dado será replicado. Após a conclusão bem-sucedida, os dados da tabela de origem ficam disponíveis na tabela de destino.

  3. Carga incremental: o conector rastreia as alterações na tabela de origem e aplica essas alterações à tabela de destino. Esse processo continua até que a tabela seja removida da replicação. Esse processo continua até que a tabela seja removida da replicação. Uma falha nesse estágio interromperá permanentemente a replicação da tabela de origem até que o problema seja resolvido.

Status da replicação da tabela

Falhas temporárias, como erros de conexão, não impedem a replicação das tabelas. Entretanto, falhas permanentes, como tipos de dados incompatíveis, impedem a replicação das tabelas.

Para solucionar problemas de replicação ou verificar se uma tabela foi removida com êxito do fluxo de replicação, consulte o armazenamento de estado de tabela:

  1. Na tela do tempo de execução do Openflow, clique com o botão direito do mouse em um grupo de processadores e escolha Controller Services. Uma tabela que lista os serviços do controlador é exibida.

  2. Localize a linha chamada Table State Store, clique no botão More Três pontos verticais indicando mais opções à direita da linha e escolha View State.

Uma lista de tabelas e os respectivos estados atuais é exibida. Digite na caixa de pesquisa para filtrar a lista por nome da tabela. Os estados possíveis são:

  • NEW: a tabela está agendada para replicação, mas a replicação não foi iniciada.

  • SNAPSHOT_REPLICATION: o conector está copiando os dados existentes. Esse status é exibido até que todos os registros sejam armazenados na tabela de destino.

  • INCREMENTAL_REPLICATION: o conector está replicando as alterações ativamente. Esse status é exibido após o término da replicação do instantâneo e continua a ser exibido indefinidamente até que uma tabela seja removida da replicação ou a replicação falhe.

  • FAILED: a replicação foi interrompida permanentemente devido a um erro.

Nota

A tela de tempo de execução do Openflow não exibe alterações de status de tabela, apenas o status atual da tabela. No entanto, as alterações de status de tabela são registradas em logs quando ocorrem. Procure a seguinte mensagem de log:

Replication state for table <database_name>.<schema_name>.<table_name> changed from <old_state> to <new_state>
Copy

Se uma falha permanente impedir a replicação da tabela, remova a tabela da replicação. Depois de resolver o problema que causou a falha, você poderá adicionar a tabela de volta à replicação. Para obter mais informações, consulte Reiniciar a replicação da tabela.

Retenção de dados

Entendendo a retenção de dados

O conector segue uma filosofia de retenção de dados na qual os dados do cliente nunca são excluídos automaticamente. Você mantém total propriedade e controle sobre seus dados replicados, e o conector preserva as informações históricas em vez de removê-las permanentemente.

Essa abordagem tem as seguintes implicações:

  • As linhas excluídas da tabela de origem sofrem exclusão lógica na tabela de destino, em vez de serem removidas fisicamente.

  • As colunas descartadas da tabela de origem são renomeadas na tabela de destino em vez de serem descartadas.

  • As tabelas de diário são mantidas indefinidamente e não são limpas de maneira automática.

Colunas de metadados da tabela de destino

Cada tabela de destino inclui as seguintes colunas de metadados que rastreiam informações de replicação:

Nome da coluna

Tipo

Descrição

_SNOWFLAKE_INSERTED_AT

TIMESTAMP_NTZ

O carimbo de data/hora em que a linha foi inserida originalmente na tabela de destino.

_SNOWFLAKE_UPDATED_AT

TIMESTAMP_NTZ

O carimbo de data/hora em que a linha foi atualizada pela última vez na tabela de destino.

_SNOWFLAKE_DELETED

BOOLEAN

Indica se a linha foi excluída da tabela de origem. Quando true, a linha foi excluída logicamente e não existe mais na origem.

Linhas excluídas logicamente

Quando uma linha é excluída da tabela de origem, o conector não a remove fisicamente da tabela de destino. Em vez disso, a linha é marcada como excluída definindo a coluna de metadados _SNOWFLAKE_DELETED como true.

Essa abordagem permite:

  • Reter dados históricos para fins de auditoria ou conformidade.

  • Consultar registros excluídos quando necessário.

  • Decidir quando e como remover dados permanentemente com base em suas necessidades.

Para consultar apenas linhas ativas (não excluídas), filtre pela coluna _SNOWFLAKE_DELETED:

SELECT * FROM my_table WHERE _SNOWFLAKE_DELETED = FALSE;
Copy

Para consultar linhas excluídas:

SELECT * FROM my_table WHERE _SNOWFLAKE_DELETED = TRUE;
Copy

Colunas descartadas

Quando uma coluna é descartada da tabela de origem, o conector não descarta a coluna correspondente da tabela de destino. Em vez disso, a coluna é renomeada anexando o sufixo __SNOWFLAKE_DELETED para preservar os valores históricos.

Por exemplo, se uma coluna chamada EMAIL for descartada da tabela de origem, ela será renomeada para EMAIL__SNOWFLAKE_DELETED na tabela de destino. As linhas que existiam antes do descarte da coluna mantêm os valores originais, enquanto as linhas adicionadas após o descarte terão NULL nessa coluna.

Você ainda pode consultar os valores históricos da coluna renomeada:

SELECT EMAIL__SNOWFLAKE_DELETED FROM my_table;
Copy

Colunas renomeadas

Devido às limitações nos mecanismos de captura de dados de alteração (Change Data Capture, CDC), o conector não consegue distinguir entre uma coluna renomeada e uma coluna descartada seguida da adição de uma nova coluna. Como resultado, quando você renomeia uma coluna na tabela de origem, o conector trata isso como duas operações separadas: descartar a coluna original e adicionar uma nova coluna com o novo nome.

Por exemplo, se você renomear uma coluna de A para B na tabela de origem, a tabela de destino conterá:

  • A__SNOWFLAKE_DELETED: contém valores de antes da renomeação. As linhas adicionadas após a renomeação têm NULL nesta coluna.

  • B: contém valores de depois da renomeação. As linhas que existiam antes da renomeação têm NULL nesta coluna.

Consultando colunas renomeadas

Para recuperar dados das colunas original e renomeada como uma única coluna unificada, use uma expressão COALESCE ou CASE:

SELECT
    COALESCE(B, A__SNOWFLAKE_DELETED) AS A_RENAMED_TO_B
FROM my_table;
Copy

Como alternativa, usando uma expressão CASE:

SELECT
    CASE
        WHEN B IS NOT NULL THEN B
        ELSE A__SNOWFLAKE_DELETED
    END AS A_RENAMED_TO_B
FROM my_table;
Copy

Criando uma exibição para colunas renomeadas

Em vez de modificar manualmente a tabela de destino, você pode criar uma exibição que apresente a coluna renomeada como uma única coluna unificada. Essa abordagem é recomendada porque preserva os dados originais e evita possíveis problemas com a replicação contínua.

CREATE VIEW my_table_unified AS
SELECT
    *,
    COALESCE(B, A__SNOWFLAKE_DELETED) AS A_RENAMED_TO_B
FROM my_table;
Copy

Importante

Não é recomendável modificar manualmente a estrutura da tabela de destino (como descartar ou renomear colunas), pois isso pode interferir na replicação em andamento e causar inconsistências nos dados.

Tabelas de diário

Durante a replicação incremental, as alterações do banco de dados de origem são gravadas primeiro em tabelas de diário antes de serem mescladas às tabelas de destino. O conector não remove automaticamente os dados das tabelas de diário, pois esses dados podem ser úteis para fins de auditoria, depuração ou reprocessamento.

As tabelas de diário são criadas no mesmo esquema que as respectivas tabelas de destino e seguem esta convenção de nomenclatura:

<TABLE_NAME>_JOURNAL_<timestamp>_<number>

Onde:

  • <TABLE_NAME> é o nome da tabela de destino.

  • <timestamp> é o carimbo de data/hora de criação no formato de época Unix (segundos desde 1º de janeiro de 1970), garantindo a exclusividade.

  • <number> começa em 1 e incrementa sempre que o esquema da tabela de destino é alterado, seja devido a alterações no esquema da tabela de origem ou a modificações nos filtros de coluna.

Por exemplo, se a tabela de destino for SALES.ORDERS, a tabela de diário poderá ter o nome SALES.ORDERS_JOURNAL_1705320000_1.

Importante

Não descarte tabelas de diário enquanto a replicação estiver em andamento. A remoção de uma tabela de diário ativa pode causar perda de dados ou falhas na replicação. Descarte tabelas de diário somente depois que a tabela de origem correspondente tiver sido completamente removida da replicação.

Gerenciando o armazenamento de tabelas de diário

Se você precisar gerenciar os custos de armazenamento removendo dados de diário antigos, poderá criar uma tarefa do Snowflake que limpe periodicamente as tabelas de diário para tabelas que não estão mais sendo replicadas.

Antes de implementar a limpeza de diários, verifique se:

  • As tabelas de origem correspondentes foram completamente removidas da replicação.

  • Você não precisa mais dos dados de diário para fins de auditoria ou processamento.

Para obter informações sobre como criar e gerenciar tarefas para limpeza automatizada, consulte Introdução às tarefas.

Próximos passos

Depois de revisar este tópico, considere as próximas etapas a seguir: