Replicar dados de PostgreSQL para o Google BigQuery

Saiba como usar o OCI GoldenGate para replicar dados do PostgreSQL para o Google BigQuery.

Antes de começar

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

Tarefa 0: Configurar o ambiente

Para configurar o ambiente para esse Início Rápido:
  1. Instale PostgreSQL.
    1. Instale o servidor PostgreSQL:
      sudo yum install postgresql-server
    2. Instale o módulo postgresql-contrib para evitar esta exceção SQL:
      sudo yum install postgresql-contrib
    3. Crie um novo cluster de banco de dados PostgreSQL:
      sudo postgresql-setup --initdb
    4. Ative o postgresql.service:
      sudo systemctl enable postgresql.service
    5. Inicie o postgresql.service:
      sudo systemctl start postgresql.service
  2. Por padrão, PostgreSQL só permite conexões locais. Permitir conectividade remota com PostgreSQL.
    1. Em /var/lib/pgsql/data/postgresql.conf, prepare o banco de dados para replicação:
      1. Localize e remova o comentário de listen_addresses = 'localhost' e altere localhost para um asterisco (*):
        listen_addresses = '*'
      2. Defina os parâmetros a seguir:
        • wal_level = logical
        • max_replication_slots = 1
        • max_wal_senders = 1
        • track_commit_timestamp = on
      Observação

      Configure /var/lib/pgsql/data/pg_hba.conf para garantir que a autenticação do cliente seja definida para permitir conexões de um host do Oracle GoldenGate. Adicione, por exemplo:
      #Allow connections from remote hosts
      host    all    all    0.0.0.0/0    md5
      Consulte O Arquivo pg_hba.conf para obter mais informações.
    2. Reinicie o servidor PostgreSQL:
      sudo systemctl restart postgresql.service
  3. Se estiver usando o Oracle Cloud Compute para hospedar o PostgreSQL, abra a porta 5432:
    sudo firewall-cmd --permanent --add-port=5432/tcp
    sudo firewall-cmd --reload
    sudo firewall-cmd --list-all
  4. Abra a porta 5432 na lista de segurança da sua VCN.
  5. Conectar-se a PostgreSQL.
    > sudo su - postgres
    > psql
  6. Configure PostgreSQL.
    1. Faça download e execute seedSRCOCIGGLL_PostgreSQL.sql para configurar o banco de dados e carregar os dados de amostra.
    2. Execute os seguintes comandos para configurar o usuário:
      create user ggadmin with password 'W3lcome@1234';
      alter user ggadmin with SUPERUSER;
      GRANT ALL PRIVILEGES ON DATABASE ociggll TO ggadmin;

Tarefa 1: Criar os recursos do OCI GoldenGate

  1. Crie uma implantação para o banco de dados PostgreSQL de origem.
  2. Crie uma implantação de Big Data para o Google de destino BigQuery.
  3. Crie uma conexão com o Google BigQuery de destino.
  4. Crie uma conexão com o banco de dados PostgreSQL de origem.
    1. Para Tipo, certifique-se de selecionar Servidor PostgreSQL.
    2. Para Nome do banco de dados, digite ociggll.
    3. Para Host, digite o IP público da instância do serviço Compute na qual PostgreSQL é executado.
    4. Para Porta, digite 5432.
    5. Para Nome de Usuário, informe ggadmin.
    6. Em Senha, digite uma senha.
    7. Para Protocolo de Segurança, selecione Simples.
  5. Crie uma conexão com GoldenGate e, em seguida, designe essa conexão à implantação PostgreSQL de origem.
  6. Designe a conexão de origem à implantação PostgreSQL de origem..
  7. Designe a conexão de destino à implantação de Big Data de destino.

Tarefa 3: Criar o Extract

Para adicionar o Integrated 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 Tipo de extração, selecione Extração Integrada.
      2. Para Nome do Processo, digite um nome para o Extract, 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 o Nome da Trilha de Extração, digite um nome de trilha com dois caracteres, como C1.
      4. Clique em Próximo.
    • Na página Parâmetros de Extração, substitua MAP *.*, TARGET *.*; pelo seguinte:
      TABLE SRC_OCIGGLL.*;
  3. Clique em Criar e Executar.

    Você retornará à página Extracts, na qual poderá observar a inicialização de Extracts.

Tarefa 4: Criar o Distribution Path para Change Data Capture

Para criar um Distribution Path para Change Data Capture, faça o seguinte:

  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 serviço 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 a seguir 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. Clique em Adicionar Distribution Path.
  6. Complete 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 Integrated Extract (ECDC)).
      2. Para Nome da Trilha, selecione o arquivo de trilha Integrated Extract (C1).
      3. Clique em Próximo.
    3. Na página Opções Alvo:
      1. Para Destino, selecione wss.
      2. Para Host de Destino, digite 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 Número da Porta, digite 443.
      4. Para Nome da Trilha, digite C1.
      5. Para Método de Autenticação de Destino, selecione Alias do ID do Usuário.
      6. Em Domínio, digite o nome do domínio.
      7. Para Alias, insira o alias.
    4. Clique em Criar Caminho e Executar.
  7. Na console de implantação do Big Data de destino, clique em Receiver Service e verifique o Receiver Path criado.

Tarefa 5: Adicionar um Replicat

  1. No menu de navegação da console de implantação do destino Big Data, clique em Replicats e, em seguida, clique em Adicionar Replicat (ícone de mais).
  2. Na página Replicats, clique em Adicionar Replicat (ícone de mais) e preencha o formulário Adicionar Replicat da seguinte forma:
    1. Na página Informações do Replicat:
      1. Para tipo Replicat, selecione Parallel ou Coordinated Replicat.
      2. Para Nome do Processo, digite um nome, como RCDC.
      3. Clique em Próximo.
    2. Na página Opções Replicat:
      1. Para Replicat Nome da Trilha, digite o nome da Trilha da Tarefa 3 (C1).
      2. Para Credenciais de Destino, selecione o Domínio e o Alias da conexão do Google Big Query.
      3. Para Locais de preparação disponíveis, selecione Google Cloud Storage na lista drop-down.
      4. Para via alias de tabela intermediária, selecione a conexão do Google Cloud Storage na lista drop-down.
    3. Na página Arquivo de Parâmetros, adicione o mapeamento a seguir e clique em Próximo:
      MAP *.*, TARGET *.*;
    4. Na página Arquivo de Propriedades, configure as propriedades necessárias, conforme necessário. Procure os marcados como #TODO e clique em Próximo.
      Algumas propriedades a serem consideradas para modificação incluem:
      • gg.eventhandler.gcs.bucketMappingTemplate: forneça o nome do bucket que será usado como armazenamento intermediário
  3. Clique em Criar e Executar.

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

Tarefa 6: Verificar Change Data Capture

Execute atualizações no banco de dados de origem PostgreSQL para verificar a replicação no Google BigQuery.
  1. Execute o seguinte script para fazer 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 do PostgreSQL de origem, selecione o nome do Extract (EDCD) 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 EDCD Extract.
  3. Na console de implantação do Big Data de destino, selecione o nome Replicat, exiba seus Detalhes e marque Estatísticas para verificar o número de inserções.