Replicar dados do PostgresSQL para o Snowflake usando o Streaming Handler

Descubra como usar o OCI GoldenGate para replicar dados do PostgreSQL para o Snowflake usando o Streaming Handler.

Antes de começar

Para concluir este início rápido com sucesso, você deve ter o seguinte:

Configurar o OCI Database with PostgreSQL

  1. Crie um OCI Database with PostgreSQL.

    1. No OCI Database with PostgreSQL:

      1. Selecione Configurações.

      2. Use uma configuração existente, como PostgreSQL.VM.Standard.E5.Flex-14-0_51.

      3. Selecione Copiar configuração, renomeie-a, adicione wal_level em Variáveis do usuário (leitura/gravação) e defina-a como 'lógica'.

      4. Selecione Criar.

      5. Consulte Copiando uma Configuração para obter mais informações.

    2. Use a Configuração com wal_level definida como verdadeira ao criar o Sistema de BD. Consulte Criando um Sistema de Banco de Dados para obter mais informações.

  2. Conecte-se ao OCI Database with PostgreSQL. Consulte Estabelecendo Conexão com um Banco de Dados para obter mais informações.

  3. Crie um banco de dados e um usuário para o GoldenGate no OCI Database with PostgreSQL:

    1. Banco de dados

      1. criar banco de dados ociggll;

      2. \c ociggll;

      3. criar esquema src_ociggll;

      4. Carregar script de amostra

    2. Usuário

      1. criar usuário ggadmin com a senha <password>;

      2. CONCEDER TODOS OS PRIVILEGOS NA ORIGEM DO BANCO DE DADOS AO ggadmin;

      3. GRANT SELECT ON ALL TABLES IN SCHEMA src_ociggll TO ggadmin;

Configurar o banco de dados Snowflake

  1. Crie o banco de dados Snowflake.

  2. Os usuários devem criar um par de chaves pública e privada para autenticação no Snowflake.

  3. Crie um usuário especificamente para GoldenGate no Snowflake com privilégios apropriados.

  4. Adicione a chave pública ao usuário do Snowflake, por exemplo: ALTER USER example_user SET RSA_PUBLIC_KEY='MIIBIjANBgkqh...';

  5. Crie tabelas de destino usando o esquema de amostra.

Tarefa 1: Criar os recursos do OCI GoldenGate

Este exemplo de início rápido exige implantações e conexões para a origem e o destino.

  1. O GoldenGate para PostgreSQL 26ai é obrigatório.

  2. Crie uma implantação do PostgreSQL para o banco de dados PostgreSQL de origem.

  3. Crie uma implantação de Big Data para o banco de dados Snowflake de destino.

  4. Crie uma conexão PostgreSQL com os seguintes valores:

    1. Para Tipo, selecione OCI Database with PostgreSQL no menu suspenso.

    2. Para Nome do banco de dados, digite ociggll.

    3. Para Username, digite ggadmin.

    4. Em Senha, informe a sua senha.

    5. Para Protocolo de Segurança, selecione TLS no menu suspenso e, em seguida, selecione Preferir.

  5. Crie uma conexão Snowflake com os seguintes valores:

    1. Para URL da Conexão, digite jdbc:snowflake://<account_identifier>.snowflakecomputing.com/?warehouse=<warehouse name>&db=OCIGGLL.

      Observação: Certifique-se de substituir <account_identifier> e <warehouse name> pelos valores apropriados.

    2. Para Tipo de Autenticação, selecione Autenticação de par de chaves no menu suspenso.

      Observação: A autenticação do par de chaves é o único tipo de autenticação suportado para o Snowflake Streaming.

    3. Para Nome do Usuário, informe um nome.

    4. Faça upload da Chave privada criada anteriormente.

    5. Informe a frase-senha de chave privada no campo Senha de chave privada.

  6. Crie uma conexão com o GoldenGate para a implantação do Big Data de destino e atribua essa conexão à implantação do PostgreSQL de origem.

  7. Designe a conexão PostgreSQL de origem à implantação do PostgreSQL.

  8. Designe a conexão do Snowflake à implantação do Big Data de destino.

Tarefa 2: Ativar log complementar

Para ativar o registro em log complementar:

  1. Inicie a console de implantação do PostgreSQL GoldenGate do:

    1. Na página Implantações, selecione a implantação do PostgreSQL para ver os detalhes.

    2. Na página Detalhes da implantação do PostgreSQL, selecione Iniciar console.

    3. Na página de acesso da console de implantação, informe as credenciais de administrador do GoldenGate fornecidas na Tarefa 1, etapa 1.

      Observação: O acesso será obrigatório se o IAM não tiver sido selecionado como o armazenamento de credenciais ao criar uma implantação.

  2. Na console de implantação, selecione Conexões de BD na navegação esquerda, depois o banco de dados PostgreSQL de origem e, em seguida, Trandata.

  3. Na página TRANDATA, ao lado de Informações TRANDATA, selecione Adicionar TRANDATA (ícone de mais).

  4. No painel Trandata, para Nome do Esquema, digite src_ociggll e selecione Enviar.

    Observação: Use o campo de pesquisa para procurar src_ociggll e verificar se as tabelas foram adicionadas.

Tarefa 3: Criar os processos de Extract

  1. Adicionar a Extração da Captura de Dados de Alteração:

    1. Na navegação esquerda, selecione Extrações,

    2. Na página Extracts, selecione Adicionar Extract (ícone de mais) e preencha os campos da seguinte forma:

      • Na página Informações da Extração:

        1. Para Tipo de extração, selecione Alterar Extração de Captura de Dados.

        2. Para Nome do Processo, informe um nome para o processo Extract, como ECDC.

        3. Selecione Próximo.

      • Na página Opções de Extração:

        1. Para credenciais de Origem, selecione Oracle GoldenGate na lista drop-down Domínio

        2. Selecione o banco de dados PostgreSQL de origem na lista drop-down Alias.

        3. Para Extrair Nome da Trilha, informe um nome de trilha de dois caracteres, como C1.

        4. Selecione Próximo.

      • Na página Parâmetros de Extração, substitua MAP *.*, TARGET *.*; pelo seguinte:

        TABLE SRC_OCIGGLL.*;
    3. Selecione Criar e Executar.

  2. Adicione a Extração de Carga Inicial:

    1. Na página Extracts, selecione Adicionar Extract e preencha o formulário Adicionar Extract da seguinte forma:

      • Na página Informações da Extração:

        1. Para o tipo de Extração, selecione Extração de Carga Inicial.

        2. Para Nome do Processo, informe um nome, como EIL.

        3. Selecione Próximo.

      • Na página Opções de Extração:

        1. Para credenciais de Origem, selecione Oracle GoldenGate na lista drop-down Domínio.

        2. Selecione o banco de dados PostgreSQL na lista drop-down Alias.

        3. Para Nome da Trilha de Extração, informe um nome de trilha de dois caracteres, como I1.

        4. Selecione Próximo.

      • Na página Parâmetros de Extração, substitua o conteúdo da área de texto pelo seguinte:

        EXTRACT EIL
        USERIDALIAS PostgreSQL_Compute, DOMAIN OracleGoldenGate
        EXTFILE I1, PURGE
        TABLE src_ociggll.*;

        Observação: certifique-se de remover o parâmetro SOURCEDB na frente de USERIDALIAS antes de seguir em frente.

    2. Selecione Criar e Executar.

Você retorna à página Extracts, na qual é possível observar o início do processo Extract.

Tarefa 4: Criar o Caminho de Distribuição para Extract de Carga Inicial

Para criar um Caminho de Distribuição para a Extração da Carga Inicial:

  1. Na console do Oracle Cloud, na página Implantações, selecione a implantação do Big Data de destino.

  2. Na página de detalhes da implantação, selecione Iniciar Console e, em seguida, faça log-in como usuário administrador.

  3. Se estiver usando o armazenamento de credenciais do IAM, prossiga para a etapa Criar um Caminho de Distribuição. Se estiver usando o armazenamento de credenciais do GoldenGate, crie um usuário com o qual o GoldenGate de origem use para estabelecer conexão com o GoldenGate de destino.

    1. No menu de navegação, selecione Administração de Usuários.

    2. Selecione Adicionar Novo Usuário (ícone de adição), preencha os campos da seguinte forma e selecione Submeter:

      • Para Username, informe ggsnet.

      • Para Atribuição, selecione Operador.

      • Digite a senha duas vezes para verificação.

  4. No console de implantação do PostgreSQL de origem, crie uma Conexão de Caminho para o usuário criado na etapa anterior.

    1. No menu de navegação, selecione Conexões de Caminho.

    2. Selecione Adicionar Conexão de Caminho (ícone de mais), preencha os campos da seguinte forma e selecione Submeter:

      • Para o Alias de Credencial, digite dpuser.

      • Para ID do Usuário, digite ggsnet

      • Para Senha, digite a mesma senha usada na etapa anterior.

  5. Criar um Caminho de Distribuição.

    1. Na barra de menus do serviço, selecione Caminhos e, em seguida, selecione Adicionar Caminho de Distribuição (ícone de mais).

    2. Preencha o formulário Adicionar Caminho da seguinte forma:

      • Na página Informações do Caminho:

        1. Para Nome do Caminho, informe um nome para este caminho.

        2. Selecione Próximo.

      • Na página Opções de Origem:

        1. Para Extração de Origem, deixe em branco.

        2. Para Nome da Trilha, informe o nome de trilha de Extração da Carga Inicial (I1).

        3. Selecione Próximo.

      • Na página Opções de Destino:

        1. Para Destino, selecione wss.

        2. Para o Host do Destino, informe o URL da implantação do destino, sem https:// ou qualquer barra à esquerda.

        3. Para o Número de Porta, informe 443.

        4. Para Nome da Trilha, informe I1.

        5. Para Método de Autenticação de Destino, selecione Alias de ID de Usuário.

        6. Para Domínio, informe o nome do domínio criado na etapa anterior.

        7. Para Alias, informe o alias criado na etapa anterior (dpuser).

        8. Selecione Próximo.

    3. Selecione Criar e Executar.

    Você retorna à página Serviço de Distribuição, na qual pode revisar o caminho criado.

  6. Na console de implantação de destino, verifique o caminho do Receptor criado como resultado do caminho de Distribuição:

    1. Selecione Caminhos.

    2. Verifique os detalhes do Caminho.

Tarefa 5: Adicionar o Processo de Replicat para Carga Inicial

  1. Na console de implantação do Big Data de destino, adicione o processo Replicat de Carga Inicial.

    1. No menu de navegação, selecione Replicações e, em seguida, Adicionar Replicat (ícone de mais).

    2. Na página Replicats, preencha os campos Adicionar Replicat da seguinte forma:

      1. Na página Informações de Replicação:

        1. Para Tipo de replicação, selecione Replicação Coordenada.

        2. Para Nome do Processo, informe um nome, como RIL.

        3. Selecione Próximo.

      2. Na página Opções de Replicat:

        1. Para Nome da Trilha de Replicação, informe o nome da Trilha da Tarefa 2 (I1).

        2. Para Destino, selecione Snowflake.

        3. Para Credenciais de Destino, selecione o Domínio e o Apelido da conexão do Snowflake.

        4. Para Alias disponíveis, selecione um alias no menu suspenso, como Snowflake.

        5. Selecione Streaming.

        6. Selecione Próximo.

      3. Na página Arquivo de Parâmetros, adicione o seguinte mapeamento:

        INSERTALLRECORDS
        MAP src_ociggll.src_city, TARGET SRCMIRROR_OCIGGLL.SRC_CITY;
        MAP src_ociggll.src_region, TARGET SRCMIRROR_OCIGGLL.SRC_REGION;
        MAP src_ociggll.src_customer, TARGET SRCMIRROR_OCIGGLL.SRC_CUSTOMER;
        MAP src_ociggll.src_orders, TARGET SRCMIRROR_OCIGGLL.SRC_ORDERS;
        MAP src_ociggll.src_order_lines, TARGET SRCMIRROR_OCIGGLL.SRC_ORDER_LINES;
        MAP src_ociggll.src_product, TARGET SRCMIRROR_OCIGGLL.SRC_PRODUCT;
      4. Na página Propriedades, revise as propriedades e adicione jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true.

      5. Selecione Criar e Executar.

    Você retorna à página Replicats, na qual pode revisar os detalhes do Replicat.

  2. Para verificar a Carga Inicial, conecte-se ao banco de dados do Snowflake e execute as seguintes consultas:

    select * from SRCMIRROR_OCIGGLL.SRC_CITY;
    select * from SRCMIRROR_OCIGGLL.SRC_CUSTOMER;

    A saída deve retornar os dados que foram carregados nas tabelas do banco de dados de destino como resultado da Carga Inicial.

Tarefa 6: Criar o Caminho de Distribuição para a Captura de Dados de Alteração

  1. No console de implantação do PostgreSQL de origem, selecione Serviço de Distribuição.

  2. Selecione Adicionar Caminho de Distribuição.

  3. Preencha o formulário Adicionar Caminho da seguinte forma:

    1. Na página Informações do Caminho:

      1. Para Nome do Caminho, informe um nome.

      2. Selecione Próximo.

    2. Na página Opções de Origem:

      1. Para Extração de Origem, selecione a Extração da Captura de Dados de Alteração (ECDC).

      2. Para Nome da Trilha, selecione o arquivo da trilha de Captura de Dados de Alteração (C1).

      3. Selecione Próximo.

    3. Na página Opções de Destino:

      1. Para Destino, selecione wss.

      2. Para Host de Destino, informe o URL da console de implantação de destino (você pode encontrar isso na página de detalhes da implantação, sem https:// ou qualquer barra à direita).

      3. Para o Número de Porta, informe 443.

      4. Para Nome da Trilha, informe C1.

      5. Para Método de Autenticação de Destino, selecione Alias de ID de Usuário.

      6. Em Domínio, digite o nome do domínio.

      7. Para Alias, informe o alias.

    4. Selecione Criar Caminho e Executar.

Tarefa 7: Adicionar um processo de Replicat para Captura de Dados de Alteração

Execute atualizações no banco de dados PostgreSQL de origem para verificar a replicação no Snowflake.

  1. Adicione o processo de Replicat.

    1. Na console de implantação do Big Data de destino, selecione Serviço de Administração e, no menu de navegação, selecione Replicações.

    2. Na página Replicatos, selecione Adicionar Replicat (ícone de mais) e preencha o form Adicionar Replicat da seguinte forma:

      • Na página Informações do Replicat:
        1. Para Tipo de replicado, selecione Clássico ou Coordenado.

        2. Para Nome do Processo, informe um nome, como RCDC.

        3. Selecione Próximo.

      • Na página Opções de Replicat:
        1. Para Nome da Trilha Replicat, informe o nome da Trilha da Tarefa 3 (C1).

        2. Para Destino, selecione Snowflake.

        3. Para Credenciais de Destino, selecione o Domínio e o Alias da conexão do Snowflake.

        4. Selecione Streaming.

      • Na página Arquivos de Parâmetros, adicione o seguinte mapeamento e selecione Próximo:

        INSERTALLRECORDS
        MAP src_ociggll.src_city, TARGET SRCMIRROR_OCIGGLL.SRC_CITY;
        MAP src_ociggll.src_region, TARGET SRCMIRROR_OCIGGLL.SRC_REGION;
        MAP src_ociggll.src_customer, TARGET SRCMIRROR_OCIGGLL.SRC_CUSTOMER;
        MAP src_ociggll.src_orders, TARGET SRCMIRROR_OCIGGLL.SRC_ORDERS;
        MAP src_ociggll.src_order_lines, TARGET SRCMIRROR_OCIGGLL.SRC_ORDER_LINES;
        MAP src_ociggll.src_product, TARGET SRCMIRROR_OCIGGLL.SRC_PRODUCT;
      • Na página Propriedades, revise as propriedades, adicione o seguinte mapeamento e selecione Criar e Executar:

        jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true

    Você retorna à página Replicats, na qual pode revisar os detalhes do Replicat.

  2. Verificar Captura de Dados de Alteração:

    1. Execute atualizações no banco de dados PostgreSQL de origem para verificar a replicação no Snowflake. Execute o seguinte script para executar inserções no banco de dados PostgreSQL:

      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1000,'Houston',20,743113);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1001,'Dallas',20,822416);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1002,'San Francisco',21,157574);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1003,'Los Angeles',21,743878);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1004,'San Diego',21,840689);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1005,'Chicago',23,616472);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1006,'Memphis',23,580075);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1007,'New York City',22,124434);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1008,'Boston',22,275581);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1009,'Washington D.C.',22,688002);
    2. No console de implantação do PostgreSQL de origem, selecione RCDC e, em seguida, Estatísticas. Verifique se o src_ociggll.src_city tem 10 inserções.

      Observação: Se o Extract não tiver inserções capturadas, reinicie o Extract ECDC.

    3. Na console de implantação do Big Data de destino, selecione o RCDC, revise seus Detalhes e Estatísticas para verificar o número de Inserções.

Tarefa 8: Monitorar e manter processos

  1. Monitorar o processo de replicação.

  2. Gerenciar arquivos de Trilha.