Replicar dados de PostgresSQL para o Snowflake usando o Streaming Handler

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

Antes de começar

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

  • Acesso ao OCI Database com PostgreSQL
  • Abra a porta 5432 na lista de segurança da VCN usada pelo OCI Database com PostgreSQL
  • Acesso ao Snowflake

Configurar o OCI Database com PostgreSQL

  1. Crie um Banco de Dados OCI com PostgreSQL.
    1. No OCI PostgreSQL:
      1. Clique em Configurações.
      2. Use uma configuração existente, como PostgreSQL.VM.Standard.E5.Flex-14-0_51.
      3. Clique em Copiar configuração, renomeie-a, adicione wal_level em Variáveis de usuário (leitura/gravação) e defina-a como 'lógica'.
      4. Clique em 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 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 GoldenGate no OCI PostgreSQL:
    1. Banco de Dados
      1. criar ociggll de banco de dados;
      2. \c ociggll;
      3. criar esquema src_ociggll;
      4. Carregar script de amostra (seedSRCOCIGGLL_PostgreSQL.sql)
    2. Usuário
      1. criar o usuário ggadmin com a senha '<password>';
      2. CONCEDER TODOS OS PRIVILEGOS NO DATABASE ociggll PARA ggadmin;
      3. CONCESSÃO SELECIONE EM TODAS AS TABELAS NO ESQUEMA src_ociggll PARA 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 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. GoldenGate para PostgreSQL 23ai é obrigatório.
  2. Crie uma implantação PostgreSQL para o banco de dados PostgreSQL de origem.
  3. Crie uma implantação de Big Data para o banco de dados de destino Snowflake.
  4. Crie uma conexão PostgreSQL com os seguintes valores:
    1. Para Tipo, selecione OCI PostgreSQL na lista drop-down.
    2. Para Nome do banco de dados, digite ociggll.
    3. Para Nome do Usuário, digite ggadmin.
    4. Em Senha, digite a senha.
    5. Para Protocolo de Segurança, selecione TLS na lista drop-down e, em seguida, selecione Preferir.
  5. Crie uma conexão Snowflake com os seguintes valores:
    1. Para URL de 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 do par de chaves na lista drop-down.

      Observação:

      A autenticação do par de chaves é o único tipo de autenticação suportado para o Streaming do Snowflake.
    3. Para Nome do Usuário, digite um nome.
    4. Faça upload da Chave privada criada anteriormente.
    5. Digite a senha da chave privada no campo Senha da chave privada.
  6. Crie uma conexão com GoldenGate para a implantação de Big Data de destino e designe essa conexão à implantação PostgreSQL de origem.
  7. Designe a conexão PostgreSQL de origem à implantação PostgreSQL.
  8. Designe a conexão Snowflake à implantação do Big Data de destino.

Tarefa 2: Ativar registro em log complementar

Para ativar o 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 de detalhes da implantação PostgreSQL, clique em Iniciar console.
    3. Na página de acesso da console de implantação, informe as credenciais de administrador GoldenGate fornecidas na Tarefa 1, etapa 1.

      Observação:

      O acesso será obrigatório se o serviço IAM não tiver sido selecionado como armazenamento de credenciais ao criar uma implantação.
  2. Em GoldenGate 23ai, clique em Conexões de BD na navegação esquerda, no banco de dados PostgreSQL de origem e em Trandata.
  3. Na página TRANDATA, ao lado de Informações de TRANDATA, clique em Adicionar TRANDATA (ícone de mais).
  4. No painel Trandata, para Nome do Esquema, digite src_ociggll.* e clique em Enviar.

    Observação:

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

Tarefa 3: Criar os Extracts

  1. Adicione o Change Data Capture Extract:
    1. Na navegação esquerda, clique em Extrações,
    2. Na página Extrações, clique em Adicionar Extração (ícone de mais) e preencha os campos da seguinte forma:
      • Na página Informações Extração:
        1. Para o tipo Extrair, selecione Alterar Captura de Dados Extrair.
        2. Para Nome do Processo, digite um nome para a Extração, como ECDC.
        3. Clique em 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 o Nome da Trilha, digite um nome de trilha com dois caracteres, como C1.
        4. Clique em Registrar e, em seguida, clique em Próximo.
      • Na página Extrair Parâmetros, adicione:
        TABLE src_ociggll.*;
    3. Clique em Criar e Executar.
  2. Adicione a Extração de Carga Inicial:
    1. Na página Extrações, clique em Adicionar Extração e preencha o formulário Adicionar Extração da seguinte forma:
      • Na página Informações de Extração:
        1. Para o tipo Extrair, selecione Carga Inicial Extrair.
        2. Em Nome do Processo, digite um nome, como EIL.
        3. Clique em 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 Extrair Nome da Trilha, digite um nome de trilha com dois caracteres, como I1.
        4. Clique em Próximo.
      • Na página Parâmetros de Extração, substitua TABLE *.* pelo seguinte:
        TABLE src_ociggll.*;
    2. Clique em Criar e Executar.
Você retorna à página Extrações, na qual é possível observar o início da Extração.

Tarefa 4: Criar o Distribution Path para Initial Load Extract

Para criar um Distribution Path para Initial Load Extract:
  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, clique em Iniciar Console. Faça log-in com os detalhes do usuário administrador criados na tarefa 1, etapa 2.
  3. Se estiver usando o armazenamento de credenciais do IAM, prossiga para a etapa Criar um Distribution Path. Se estiver usando o armazenamento de credenciais GoldenGate, crie um usuário com o qual a origem GoldenGate use para estabelecer conexão com o destino GoldenGate.
    1. No menu de navegação, clique em Administração de Usuários.
    2. Clique em Adicionar Novo Usuário (ícone de mais), preencha os campos da seguinte forma e clique em Submeter:
      • Para Nome do Usuário, digite ggsnet.
      • Para Atribuição, selecione Operador.
      • Digite a senha duas vezes para verificação.
  4. Na console de implantação PostgreSQL de origem, crie uma Conexão de Caminho para o usuário criado na etapa anterior.
    1. No menu de navegação, clique em Conexões de Caminho.
    2. Clique em Adicionar Conexão de Caminho (ícone de mais), preencha os campos da seguinte forma e clique em 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 Distribution Path.
    1. Na barra de menus de serviço, clique em Distribution Service e, em seguida, clique em Adicionar Distribution Path (í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, digite um nome para esse caminho.
        2. Clique em Próximo.
      • Na página Opções de Origem:
        1. Para Origem Extract, deixe em branco.
        2. Para Nome da Trilha, digite o nome da trilha Initial Load Extract (I1).
        3. Clique em Próximo.
      • Na página Opções Alvo:
        1. Para Protocolo de Destino, selecione wss.
        2. Para Host de Destino, digite o URL de implantação de destino, sem https:// ou qualquer barra à direita.
        3. Para Port Number, digite 443.
        4. Para Nome da Trilha, digite I1.
        5. Para Método de Autenticação de Destino, selecione OAuth.

          Observação:

          Selecione UserID Alias se GoldenGate tiver sido selecionado como o armazenamento de credenciais ao criar uma implantação. Caso contrário, selecione OAuth.
        6. Para Domínio, digite o nome do domínio criado na etapa anterior.
        7. Para Alias, digite o alias criado na etapa anterior (dpuser).
        8. Clique em Próximo.
    3. Clique em Criar e Executar.
    Você retorna à página Distribution Service, na qual pode revisar o caminho criado.
  6. Na console de implantação do Big Data de destino, verifique o Receiver Path criado como resultado do Distribution path:
    1. Clique em Receiver Service.
    2. Verifique os detalhes de Receiver Path.

Tarefa 5: Adicione o Replicat para Initial Load

  1. Na console de implantação do Big Data de destino, adicione o Initial Load Replicat.
    1. No menu de navegação, clique em Replicats e, em seguida, clique em 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 Replicat, selecione Replicat Coordenado.
        2. Em Nome do Processo, digite um nome, como RIL.
        3. Clique em Próximo.
      2. Na página Replicat Options:
        1. Para Nome da Trilha de Replicação, digite o nome da Trilha da Tarefa 2 (I1).
        2. Para Destino, selecione Snowflake.
        3. Para Credenciais de Destino, selecione o Domínio e o Alias da conexão Snowflake.
        4. Para Aliases disponíveis, selecione um alias no menu suspenso, como Snowflake.
        5. Selecione Streaming.
        6. Clique em 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. Clique em Criar e Executar.

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

  2. Para verificar o Initial Load, conecte-se ao banco de dados 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 do Initial Load.

Tarefa 6: Criar o Distribution Path para Change Data Capture

Para criar um Distribution Path para Change Data Capture:
  1. Na console de implantação do origem PostgreSQL, clique em Serviço de Distribuição.
  2. Clique em Adicionar Distribution Path.
  3. Preencha o formulário Adicionar caminho da seguinte forma:
    1. Na página Informações do Caminho:
      1. Para Nome do Caminho, digite um nome.
      2. Clique em Próximo.
    2. Na página Opções de Origem:
      1. Para Origem Extract, selecione o Change Data Capture Extract (ECDC).
      2. Para Nome da Trilha, selecione o arquivo de trilha Change Data Capture (C1).
      3. Clique em Próximo.
    3. Na página Opções Alvo:
      1. Para Alvo, selecione wss.
      2. Para Host de Destino, informe o URL da console de implantação de destino (você pode encontrá-lo na página de detalhes da implantação, sem https:// ou qualquer barra à direita.
      3. Para Port Number, digite 443.
      4. Para Nome da Trilha, digite C1.
      5. Para Método de Autenticação de Destino, selecione OAuth.

        Observação:

        Selecione UserID Alias se GoldenGate tiver sido selecionado como o armazenamento de credenciais ao criar uma implantação. Caso contrário, selecione OAuth.
      6. Em Domínio, digite o nome do domínio.
      7. Para Alias, digite o alias.
    4. Clique em Criar Caminho e Executar.
  4. Na console de implantação do Big Data de destino, clique em Receiver Service e verifique o Receiver path criado.

Tarefa 7: Adicione um Replicat para Change Data Capture

Execute atualizações no banco de dados PostgreSQL de origem para verificar a replicação para Snowflake.
  1. Adicione o Replicat.
    1. Na console de implantação do Big Data de destino, clique em Administration Service e, em seguida, no menu de navegação, clique em Replicats.
    2. Na página Replicats, clique em Adicionar Replicat (ícone de mais) e preencha o formulário Adicionar Replicat da seguinte forma:
      • Na página Replicat Information:
        1. Para tipo Replicat, selecione Classic ou Coordinated.
        2. Em Nome do Processo, digite um nome, como RCDC.
        3. Clique em Próximo.
      • Na página Opções Replicat:
        1. Para Replicat Nome da trilha, digite 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 Snowflake.
        4. Selecione Streaming.
      • Na página Arquivos de Parâmetros, adicione o mapeamento a seguir e clique em 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 mapeamento a seguir e clique em Criar e Executar:
        jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true

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

  2. Verificar Change Data Capture:
    1. Execute atualizações no banco de dados PostgreSQL de origem para verificar a replicação para 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. Na console de implantação PostgreSQL de origem, selecione RCDC e clique em Estatísticas. Verifique se src_ociggll.src_city tem 10 inserções.

      Observação:

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

Tarefa 8: Monitorar e manter processos

  1. Monitorar o desempenho.
  2. Gerenciar arquivos de Trilha.