Como usar as APIs DataStream

Para empresas com muitas fontes de dados isoladas, o acesso a dados corporativos em toda a organização, especialmente em tempo real, é extremamente difícil. Isso resulta em um mundo de acesso limitado e lento aos dados, impedindo que a organização faça introspecção e inovação.

Ele remove as barreiras de dados organizacionais isolados ao conceder acesso quase em tempo real aos dados de várias fontes locais e baseadas na nuvem. O Datastream oferece uma experiência de configuração simples e uma API de consumo unificada, que democratiza o acesso da organização aos dados empresariais mais recentes disponíveis em toda a organização, o que permite criar cenários integrados quase em tempo real.

Um desses cenários é transferir dados de um banco de dados de origem para um serviço de armazenamento baseado em nuvem e transformar esses dados em uma linguagem legível por outros aplicativos e serviços que se comunicam com esse serviço de armazenamento.

Neste tutorial, você aprenderá a usar o Datastream para transferir esquemas, tabelas e dados de um banco de dados Oracle de origem para uma pasta em um bucket do Cloud Storage. O Cloud Storage é um serviço da Web para armazenar e acessar dados no Google Cloud. O serviço combina o desempenho e a escalabilidade da nuvem do Google com recursos avançados de segurança e compartilhamento.

Como parte da transferência dessas informações para uma pasta no bucket de destino do Cloud Storage, o Datastream converte essas informações em Avro. O Avro é definido por um esquema escrito em JavaScript Object Notation (JSON), e os dados e as tabelas incorporados nesse esquema podem ser lidos em qualquer linguagem.

Objetivos

Neste tutorial, você aprenderá a realizar as seguintes tarefas:

  • Defina as variáveis. Você usará essas variáveis ao fazer solicitações ao Datastream para criar e gerenciar os perfis de conexão e um stream.
  • Crie e gerencie perfis de conexão para um banco de dados de origem e um bucket de destino no Cloud Storage. Ao criar esses perfis de conexão, você cria registros que contêm informações sobre o banco de dados de origem e o bucket de destino do Cloud Storage. O stream no Datastream usa as informações dos perfis de conexão para transferir dados do banco de dados de origem para uma pasta no bucket de destino.
  • Criar e gerenciar um stream. O Datastream usa esse stream para transferir dados, esquemas e tabelas do banco de dados de origem para uma pasta no bucket de destino.
  • Verifique se o Datastream transfere os dados e as tabelas associados a um esquema do banco de dados Oracle de origem para uma pasta no bucket de destino e converte esses dados no formato de arquivo Avro.
  • Limpe os recursos que você criou no Datastream para que eles não ocupem a cota e não sejam cobrados no futuro.

Custos

Neste tutorial, usamos os seguintes componentes faturáveis do Google Cloud:

  • Datastream
  • Cloud Storage

Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços. Novos usuários do Google Cloud podem estar qualificados para uma avaliação gratuita.

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como verificar se o faturamento está ativado em um projeto.

  4. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  5. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como verificar se o faturamento está ativado em um projeto.

  6. Verifique se você tem um banco de dados de origem que o Datastream possa acessar. Neste tutorial, é usado um banco de dados Oracle como origem.
  7. Verifique se você configurou um bucket do Cloud Storage de destino que o Datastream pode acessar usando a lista de permissões de IP ou o método de conectividade de rede do túnel SSH de encaminhamento.
  8. Verifique se há dados, tabelas e esquemas no banco de dados de origem que o Datastream pode transferir para uma pasta no bucket de destino do Cloud Storage.
  9. Faça o download e instale o Google Cloud Shell.Com esse app cliente, você tem acesso de linha de comando aos seus recursos de nuvem, incluindo o Datastream.
  10. Instale e configure o utilitário jq. Ele é um processador JSON de linha de comando leve e flexível. Você usará esse processador para exibir comandos cURL complexos em textos fáceis de ler.

Como definir as variáveis

Nesta seção, você definirá as variáveis a seguir:

  • $PROJECT: essa variável está associada ao projeto do Google Cloud. Todos os recursos do Google Cloud que você alocar e usar precisam pertencer a um projeto.
  • $TOKEN: essa variável está associada a um token de acesso. Ele fornece uma sessão que o Google Cloud Shell usa para executar tarefas no Datastream por meio de APIs REST.
  • $ENV: essa variável está associada ao ambiente que você está usando para transferir dados, esquemas e tabelas de um banco de dados de origem para uma pasta em um bucket do Cloud Storage de destino.
  1. Inicie o aplicativo Google Cloud Shell.

  2. Depois de fazer a autenticação no aplicativo, insira gcloud auth login.

  3. No prompt Do you want to continue (Y/n)?, insira Y.

  4. Abra um navegador da Web e copie o URL fornecido.

  5. Faça a autenticação no SDK do Google Cloud. Um código aparecerá na página de login. Esse código é seu token de acesso.

  6. Copie o token de acesso, cole-o no parâmetro Enter verification code: no seu aplicativo do Google Cloud Shell e pressione Enter.

  7. No prompt, insira PROJECT="[YOUR_PROJECT_NAME]" para definir a variável de ambiente $PROJECT como seu projeto do Google Cloud.

  8. No prompt, insira gcloud config set project [YOUR_PROJECT_NAME] para definir o projeto em que você quer trabalhar no seu projeto do Google Cloud.

    Seu prompt de comando será atualizado para refletir o projeto ativo atualmente e respeitará este formato: [USERNAME]@cloudshell:~ ([YOUR_PROJECT_NAME])$

  9. No prompt, insira TOKEN=$(gcloud auth print-access-token) para recuperar o token de acesso e armazená-lo como uma variável.

  10. No prompt, insira ENV="[YOUR_ENVIRONMENT_NAME]" para definir a variável de ambiente como seu ambiente.

  11. No prompt, insira os seguintes comandos para garantir que as variáveis $PROJECT, $TOKEN e $ENV estejam definidas corretamente:

    • echo $PROJECT
    • echo $TOKEN
    • echo $ENV

Agora que você definiu suas variáveis, é possível fazer solicitações ao Datastream para criar e gerenciar os perfis de conexão e um stream.

Como criar e gerenciar perfis de conexão

Nesta seção, você cria e gerencia perfis de conexão para um banco de dados Oracle de origem e um bucket de destino no Cloud Storage.

Ao criar esses perfis de conexão, você cria registros que contêm informações sobre o banco de dados de origem e o bucket de destino do Cloud Storage. O Datastream usa as informações dos perfis de conexão para transferir dados do banco de dados de origem para uma pasta no bucket de destino.

A criação e o gerenciamento de perfis de conexão incluem o seguinte:

  • Como criar perfis de conexão para um banco de dados Oracle de origem e um bucket de destino no Cloud Storage
  • Como recuperar informações detalhadas e detalhadas sobre um perfil de conexão
  • Como modificar um perfil de conexão
  • Realizar uma chamada de API Discover no perfil de conexão do Oracle de origem. Isso permite que você olhe dentro do banco de dados para ver os objetos associados a ele. Esses objetos incluem os esquemas e as tabelas que contêm os dados do banco de dados. Dessa forma, ao usar o Datastream para configurar um stream, é recomendado não extrair todos os objetos do banco de dados, mas apenas um subconjunto dos objetos (por exemplo, apenas algumas tabelas e esquemas do banco de dados). Use a API Discover para ajudar a encontrar (ou descobrir) o subconjunto de objetos do banco de dados que você quer extrair.

Criar perfis de conexão

Nesta seção, você criará dois perfis de conexão com um banco de dados Oracle de origem e um bucket de destino no Cloud Storage.

  1. Criar um perfil de conexão com um banco de dados Oracle de origem. No prompt, insira o seguinte comando:

    ORACLE="{\"displayName\":\"[DISPLAY_NAME]\",\"oracle_profile\":{\"hostname\":\"[HOSTNAME],\"username\":\"[USERNAME]\",\"database_service\":\"[DATABASE_SERVICE]\",\"password\":\"[PASSWORD]\",\"port\":[PORT_NUMBER]},\"no_connectivity\":{}}"
    

    Use a tabela a seguir para entender os valores dos parâmetros do banco de dados Oracle de origem:

    Valor de parâmetroSubstituir por
    [DISPLAY_NAME]O nome de exibição do perfil de conexão com o banco de dados de origem.
    [HOSTNAME]O nome do host do servidor de banco de dados de origem.
    [USERNAME]O nome de usuário da conta para o banco de dados de origem (por exemplo, ROOT).
    [DATABASE_SERVICE]O serviço que garante que o banco de dados de origem seja protegido e monitorado. Para bancos de dados Oracle, o serviço de banco de dados geralmente é ORCL.
    [PASSWORD]A senha da conta para o banco de dados de origem.
    [PORT_NUMBER]O número da porta reservado para o banco de dados de origem. Para um banco de dados Oracle, o número da porta geralmente é 1521.
  2. No prompt, insira o comando echo $ORACLE | jq para ver o perfil de conexão de origem que você criou em texto fácil de ler.

    {
      "displayName": "[DISPLAY_NAME]",
      "oracle_profile": {
        "hostname": "[HOSTNAME]",
        "username": "[USERNAME]",
        "database_service": "[DATABASE_SERVICE]",
        "password": "[PASSWORD]",
        "port": [PORT_NUMBER]
       },
      "no_connectivity": {}
    }
    
  3. Envie o perfil de conexão do Oracle para que ele possa ser criado. No prompt, insira o seguinte comando:

    curl -X POST -d $ORACLE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles?connection_profile_id=[SOURCE_CONNECTION_PROFILE_ID]
    

    Use a tabela a seguir para entender os valores de parâmetro desse comando:

    Valor de parâmetroSubstituir por
    [DATASTREAM_VERSION]A versão atual do Datastream (por exemplo, v1alpha1).
    [PROJECT_PATH]O caminho completo do projeto do Google Cloud (por exemplo, projects/$PROJECT/locations/[YOUR_PROJECT_LOCATION])).
    [SOURCE_CONNECTION_PROFILE_ID]O identificador exclusivo reservado para este perfil de conexão (por exemplo, cp-1).
  4. Verifique se as seguintes linhas de código são exibidas:

    {
      "name": "[PROJECT_PATH]/operations/operation-[SOURCE_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "datastream.googleapis.com/[DATASREAM_VERSION]/[PROJECT_PATH]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  5. Criar um perfil de conexão para um bucket de destino no Cloud Storage. No prompt, insira o seguinte comando:

    GOOGLECLOUDSTORAGE="{\"displayName\":\"[DISPLAY_NAME]\",\"gcs_profile\":{\"bucket_name\":\"[BUCKET_NAME]\",\"root_path\":\"/[FOLDER_PATH]\"},\"no_connectivity\":{}}"
    

    Veja na tabela a seguir os valores de parâmetro do bucket de destino:

    Valor de parâmetroSubstituir por
    [DISPLAY_NAME]O nome de exibição do perfil de conexão para o bucket de destino.
    [BUCKET_NAME]Nome do bucket de destino.
    [FOLDER_PATH]A pasta no bucket de destino para onde o Datastream transferirá dados do banco de dados de origem (por exemplo, /root/path).
  6. Na solicitação, insira o comando echo $GOOGLECLOUDSTORAGE | jq para ver o perfil de conexão de destino criado em texto fácil de ler.

    {
      "displayName": "[DISPLAY_NAME]",
      "gcs_profile": {
        "bucket_name": "[BUCKET_NAME]",
        "root_path": "/[FOLDER_PATH]"
      },
      "no_connectivity": {}
    }
    
  7. Envie o perfil de conexão do Cloud Storage para que ele possa ser criado. No prompt, insira o seguinte comando:

    curl -X POST -d $GOOGLECLOUDSTORAGE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles?connection_profile_id=[DESTINATION_CONNECTION_PROFILE_ID]
    
  8. Verifique se as seguintes linhas de código são exibidas:

    {
      "name": "[PROJECT_PATH]/operations/operation-[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "datastream.googleapis.com/[DATASREAM_VERSION]/[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  9. Confirme se os dois perfis de conexão foram criados. No prompt, insira o seguinte comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles
    
  10. Verifique se você recebeu dois resultados retornados para os perfis de conexão de origem e de destino.

    {
      "connectionProfiles": [
        {
          "name": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
          "createTime": "[DATE_AND_TIME_STAMP]",
          "updateTime": "[DATE_AND_TIME_STAMP]",
          "displayName": "[DISPLAY_NAME]",
          "gcsProfile": {
            "bucketName": "[BUCKET_NAME]",
            "rootPath": "[FOLDER_PATH]"
          },
          "noConnectivity": {}
        },
       {
        "name": "[PROJECT_PATH]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "updateTime": "[DATE_AND_TIME_STAMP]",
        "displayName": "[DISPLAY_NAME]",
        "oracleProfile": {
          "hostname": "[HOSTNAME]",
          "port": [PORT_NUMBER],
          "username": "[USERNAME]",
          "databaseService": "[DATABASE_SERVICE]"
        },
        "noConnectivity": {}
        }
      ]
    }
    

Gerenciar perfis de conexão

Nesta seção, você gerencia os perfis de conexão criados para um banco de dados Oracle de origem e um bucket de destino no Cloud Storage. Incluindo:

  • Como recuperar informações detalhadas e detalhadas sobre o perfil de conexão do Cloud Storage de destino
  • Modificando este perfil de conexão. Neste tutorial, você mudará a pasta do bucket do Cloud Storage de destino para /root/tutorial. O Datastream transferirá dados do banco de dados de origem para essa pasta.
  • Como executar uma chamada de API de descoberta no perfil de conexão do Oracle de origem
  1. Recuperar informações de alto nível sobre o perfil de conexão do Cloud Storage de destino. No prompt, insira o seguinte comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]
    
  2. Verifique se você vê informações de alto nível sobre esse perfil de conexão.

    {
      "name": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
      "createTime": "[DATE_AND_TIME_STAMP]",
      "updateTime": "[DATE_AND_TIME_STAMP]",
      "displayName": "[DISPLAY_NAME]",
      "gcsProfile": {
        "bucketName": "[BUCKET_NAME]",
        "rootPath": "[FOLDER_PATH]"
      },
      "noConnectivity": {}
    }
    
  3. Recuperar informações detalhadas sobre este perfil de conexão. No prompt, insira o seguinte comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/operations/[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]
    
  4. Verifique se você vê informações detalhadas sobre o perfil de conexão.

    {
      "name": "[PROJECT_PATH]/operations/operation-[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "endTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].ConnectionProfile",
        "name": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "updateTime": "[DATE_AND_TIME_STAMP]",
        "displayName": "[DISPLAY_NAME]",
        "gcsProfile": {
          "bucketName": "[BUCKET_NAME]",
          "rootPath": "[FOLDER_PATH]"
        },
        "noConnectivity": {}
      }
    }
    
  5. Modificar este perfil de conexão. Para fazer isso, primeiro defina uma variável UPDATE. Essa variável contém os valores do perfil de conexão que você quer alterar. Neste tutorial, você mudará a pasta do bucket de destino para /root/tutorial.

    Para definir a variável, no prompt, insira o seguinte comando:

    UPDATE="{\"gcsProfile\":{\"rootPath\":\"/root/tutorial\"}}"
  6. No prompt, insira o seguinte comando:

    curl -X PATCH -d $UPDATE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]?update_mask=gcsProfile.rootPath
    
  7. Verifique se as seguintes linhas de código são exibidas:

    {
      "name": "[PROJECT_PATH]/operations/operation-[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "verb": "update",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  8. Confirme se o perfil de conexão foi modificado. No prompt, insira o seguinte comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/operations/[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]
    
  9. Verifique se a pasta do bucket de destino do perfil de conexão do Cloud Storage agora é /root/tutorial.

    {
      "name": "[PROJECT_PATH]/operations/operation-[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "endTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "verb": "update",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].ConnectionProfile",
        "name": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "updateTime": "[DATE_AND_TIME_STAMP]",
        "displayName": "[DISPLAY_NAME]",
        "gcsProfile": {
          "bucketName": "[BUCKET_NAME]",
          "rootPath": "/root/tutorial"
        },
        "noConnectivity": {}
      }
    }
    
  10. Use a API de descoberta do Datastream para descobrir os esquemas e as tabelas do banco de dados Oracle de origem. O Datastream acessará esse banco de dados por meio do perfil de conexão de origem.

    1. Descubra os esquemas do banco de dados Oracle. No prompt, insira o seguinte comando:

      curl -X POST -d "{"connection_profile_name":"projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]"}" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles:discover
        

    2. Verifique se o Datastream recupera todos os esquemas do seu banco de dados.

    3. Em seguida, recupere as tabelas de um esquema no banco de dados. Neste tutorial, você usará a API Discover para recuperar as tabelas do esquema ROOT. No entanto, é possível descobrir as tabelas de qualquer esquema no banco de dados.

      No prompt, insira o seguinte comando:

      curl -X POST -d "{\"connection_profile_name\":\"projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]\", \"oracle_rdbms\":{\"oracleSchemas\":[{\"schemaName\":\"ROOT\"}]}}" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles:discover
      
    4. Verifique se o Datastream recupera todas as tabelas do esquema especificado (neste tutorial, o esquema ROOT).

Agora que você criou e gerenciou perfis de conexão para um banco de dados Oracle de origem e um bucket de destino no Cloud Storage, já pode criar e gerenciar um stream no Datastream.

Como criar e gerenciar um stream

Nesta seção, você cria e gerencia um stream. O Datastream usa esse stream para transferir dados, esquemas e tabelas do banco de dados de origem para uma pasta no bucket de destino do Cloud Storage.

A criação e o gerenciamento de um stream incluem o seguinte:

  • Criar um stream com as seguintes listas:
    • Uma lista de permissões. Esta lista especifica as tabelas e esquemas no banco de dados de origem que o Datastream pode transferir para uma pasta no bucket de destino do Cloud Storage. Para este tutorial, esta é a pasta /root/tutorial.
    • Uma lista de rejeição. Esta lista especifica as tabelas e esquemas no banco de dados de origem que o Datastream não pode transferir para a pasta no bucket de destino do Cloud Storage.
  • Como recuperar informações detalhadas e de alto nível sobre o stream
  • Como modificar o stream
  • Como usar a API Fetch Errors para detectar erros associados ao stream
  • Iniciar o stream para que ele possa transferir dados, esquemas e tabelas do banco de dados de origem para uma pasta no bucket do Cloud Storage de destino;
  • Pausando o stream. Quando um stream é pausado, o Datastream não extrai dados novos do banco de dados de origem para o bucket de destino.
  • Retomada do stream pausado para que o Datastream possa continuar transferindo dados para o bucket de destino.

Criar um stream

Nesta seção, você cria um stream do banco de dados Oracle de origem em uma pasta no bucket de destino do Cloud Storage. O stream criado inclui uma lista de permissões e uma lista de rejeição.

  1. Defina uma variável SCHEMAS. Essa variável define os esquemas que contêm os dados e as tabelas que você quer que o Datastream recupere do banco de dados de origem e transfira para a pasta /root/tutorial do bucket de destino do Cloud Storage. Neste tutorial, você definirá a variável SCHEMAS para ser associada ao esquema ROOT.

    No prompt, insira o seguinte comando:

    SCHEMAS="{\"oracleSchemas\":[{\"schemaName\":\"ROOT\"}]}"
    
  2. No prompt, insira o comando echo $SCHEMAS | jq para ver o esquema ROOT que você definiu para essa variável em um texto fácil de ler.

  3. Criar um stream. No prompt, insira o seguinte comando:

    STREAM="{\"display_name\":\"[DISPLAY_NAME]\",\"source_config\":{\"source_connection_profile_name\":\"[PROJECT_PATH]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",\"oracle_source_config\":{\"allowlist\":$SCHEMAS,\"rejectlist\":{}}},\"destination_config\":{\"destination_connection_profile_name\":\"[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]\",\"gcs_destination_config\":{\"file_rotation_mb\":5,\"file_rotation_interval\":{\"seconds\":15},\"gcs_file_format\":\"AVRO\"}}}"
    
  4. Na solicitação, insira o comando echo $STREAM | jq para ver o stream que você criou em um texto fácil de ler.

    {
      "display_name": "[DISPLAY_NAME]",
      "source_config": {
        "source_connection_profile_name": "[PROJECT_PATH]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "oracle_source_config": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schemaName": "ROOT"
              }
            ]
          },
          "rejectlist": {}
        }
      },
      "destination_config": {
        "destination_connection_profile_name": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "gcs_destination_config": {
          "file_rotation_mb": 5,
          "file_rotation_interval": {
            "seconds": 15
          },
          "gcs_file_format": "AVRO"
        }
      }
    }
    

    Use esta tabela para entender os seguintes parâmetros do stream:

    ParâmetroDescrição
    allowlistOs esquemas, que contêm tabelas e dados, que serão transferidos do banco de dados de origem para uma pasta do bucket de destino do Cloud Storage. Para este tutorial, todas as tabelas e dados do esquema ROOT (e somente este esquema) serão transferidos para a pasta /root/tutorial do bucket de destino.
    rejectlistOs esquemas que contêm tabelas e dados não serão transferidos para uma pasta do bucket de destino do Cloud Storage. Neste tutorial, o valor {} significa que nenhuma tabela e dado do banco de dados de origem será impedido de ser transferido para o bucket de destino.
    file_rotation_mbO tamanho máximo (em MBytes) de arquivos que contêm dados, tabelas e esquemas que podem ser transferidos do banco de dados de origem para uma pasta no bucket de destino do Cloud Storage. Neste tutorial, o tamanho máximo do arquivo é 5 MBytes. Se algum arquivo exceder esse tamanho, ele será segmentado em vários arquivos de 5 MB.
    file_rotation_intervalQuantos segundos decorrerão até que o Datastream substitua um arquivo existente em uma pasta do bucket de destino do Cloud Storage por um arquivo mais recente sendo transferido do banco de dados de origem. Para este tutorial, o intervalo de rotação de arquivo é definido como 15 segundos.
    gcs_file_formatO formato dos arquivos que o Datastream transferirá do banco de dados de origem para uma pasta do bucket de destino do Cloud Storage. Para este tutorial, Avro (AVRO) é o formato do arquivo.
  5. Envie o stream para que ele possa ser criado. No prompt, insira o seguinte comando:

    curl -X POST -d $STREAM -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams?stream_id=[STREAM_ID]
    
  6. Verifique se as seguintes linhas de código são exibidas:

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  7. Confirme se o stream foi criado. No prompt, insira o seguinte comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams
    
  8. Verifique se você recebeu um resultado retornado para o stream que criou.

    {
      "streams": [
        {
          "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
          "createTime": "[DATE_AND_TIME_STAMP]",
          "updateTime": "[DATE_AND_TIME_STAMP]",
          "displayName": "[DISPLAY_NAME]",
          "sourceConfig": {
            "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
            "oracleSourceConfig": {
              "allowlist": {
                "oracleSchemas": [
                  {
                    "schemaName": "ROOT"
                  }
                ]
              },
              "rejectlist": {}
            }
          },
          "destinationConfig": {
            "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
            "gcsDestinationConfig": {
              "gcsFileFormat": "AVRO",
              "fileRotationMb": 5,
              "fileRotationInterval": "15s"
            }
          },
          "state": "CREATED"
        }
      ]
    }
    

Gerenciar o stream

Nesta seção, você gerencia o stream criado para transferir dados de um banco de dados Oracle de origem para uma pasta em um bucket de destino do Cloud Storage. Incluindo:

  • Como recuperar informações detalhadas e de alto nível sobre o stream
  • Como modificar o stream
  • Como usar a API Fetch Errors para detectar erros associados ao stream
  • Iniciar, pausar e retomar o stream
  1. Recupere informações de alto nível sobre o stream. No prompt, insira o seguinte comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]
    
  2. Verifique se você vê informações de alto nível sobre este stream.

    {
      "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
      "createTime": "[DATE_AND_TIME_STAMP]",
      "updateTime": "[DATE_AND_TIME_STAMP]",
      "displayName": "[DISPLAY_NAME]",
      "sourceConfig": {
        "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "oracleSourceConfig": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schemaName": "ROOT"
              }
            ]
          },
          "rejectlist": {}
         }
        },
        "destinationConfig": {
          "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
          "gcsDestinationConfig": {
            "gcsFileFormat": "AVRO",
            "fileRotationMb": 5,
            "fileRotationInterval": "15s"
          }
        },
        "state": "CREATED"
      }
    
  3. Recuperar informações detalhadas sobre esta transmissão. No prompt, insira o seguinte comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/operations/[STREAM_OPERATION_ID]
    
  4. Verifique se você vê informações detalhadas sobre o stream.

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "endTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].Stream",
        "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "updateTime": "[DATE_AND_TIME_STAMP]",
        "displayName": "[DISPLAY_NAME]",
        "sourceConfig": {
          "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
          "oracleSourceConfig": {
            "allowlist": {
              "oracleSchemas": [
                {
                  "schemaName": "ROOT"
                }
              ]
            },
            "rejectlist": {}
          }
        },
        "destinationConfig": {
          "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
          "gcsDestinationConfig": {
            "gcsFileFormat": "AVRO",
            "fileRotationMb": 5,
            "fileRotationInterval": "15s"
          }
        },
        "state": "CREATED"
      }
    }
    
  5. Modificar este stream. Para fazer isso, primeiro defina uma variável UPDATE. Essa variável contém os valores do stream que você quer alterar. Neste tutorial, altere o tamanho máximo dos arquivos que podem ser transferidos do banco de dados de origem para uma pasta no bucket de destino do Cloud Storage (de 5 MB a 100 MBytes).

    Para definir a variável, no prompt, insira o seguinte comando:

    UPDATE="{\"destination_config\":{\"gcs_destination_config\":{\"file_rotation_mb\":100}}}"
    
  6. No prompt, insira o seguinte comando:

    curl -X PATCH -d $UPDATE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]/?update_mask=destination_config.gcs_destination_config.file_rotation_mb
    
  7. Verifique se as seguintes linhas de código são exibidas:

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "update",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  8. Confirme se o stream foi modificado. No prompt, insira o seguinte comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/operations/[STREAM_OPERATION_ID]
    
  9. Verifique se o valor do parâmetro fileRotationMb para o perfil de conexão do Cloud Storage agora é 100.

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "endTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "update",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].Stream",
        "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "updateTime": "[DATE_AND_TIME_STAMP]",
        "displayName": "[DISPLAY_NAME]",
        "sourceConfig": {
          "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
          "oracleSourceConfig": {
            "allowlist": {
              "oracleSchemas": [
                {
                  "schemaName": "ROOT"
                }
              ]
            },
            "rejectlist": {}
          }
        },
        "destinationConfig": {
          "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
          "gcsDestinationConfig": {
            "gcsFileFormat": "AVRO",
            "fileRotationMb": 100,
            "fileRotationInterval": "15s"
          }
        },
        "state": "CREATED"
      }
    }
    
  10. Uso da API Fetch Errors para recuperar erros associados ao stream.

    1. No prompt, insira o seguinte comando:

      curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]:fetchErrors
        

    2. Verifique se as seguintes linhas de código são exibidas:

        {
          "name": "[PROJECT_PATH]/operations/operation-[FETCH_ERRORS_OPERATION_ID]",
          "metadata": {
            "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
            "createTime": "[DATE_AND_TIME_STAMP]",
            "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
            "verb": "fetchErrors",
            "requestedCancellation": false,
            "apiVersion": "[DATASTREAM_VERSION]"
          },
          "done": false
        }
        

    3. No prompt, insira o seguinte comando:

      curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/operations/operation-[FETCH_ERRORS_OPERATION_ID]
        

    4. Verifique se as seguintes linhas de código são exibidas:

        {
          "name": "[PROJECT_PATH]/operations/operation-[FETCH_ERRORS_OPERATION_ID]",
          "metadata": {
            "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
            "createTime": "[DATE_AND_TIME_STAMP]",
            "endTime": "[DATE_AND_TIME_STAMP]",
            "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
            "verb": "fetchErrors",
            "requestedCancellation": false,
            "apiVersion": "[DATASTREAM_VERSION]"
          },
          "done": true,
          "response": {
            "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].FetchErrorsResponse"
          }
        }
        

  11. Iniciar o stream. No prompt, insira o seguinte comando:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]:start
    
  12. Verifique se as linhas de código a seguir são exibidas.

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "start",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  13. Após alguns segundos, recupere informações sobre o stream para confirmar que ele foi iniciado.

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]
    
  14. Verifique se o estado do stream mudou de CREATED para RUNNING.

    {
      "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
      "createTime": "[DATE_AND_TIME_STAMP]",
      "updateTime": "[DATE_AND_TIME_STAMP]",
      "displayName": "[DISPLAY_NAME]",
      "sourceConfig": {
        "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "oracleSourceConfig": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schemaName": "ROOT"
              }
            ]
          },
          "rejectlist": {}
        }
      },
      "destinationConfig": {
        "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "gcsDestinationConfig": {
          "gcsFileFormat": "AVRO",
          "fileRotationMb": 100,
          "fileRotationInterval": "15s"
        }
      },
      "state": "RUNNING"
    }
    
  15. Pausar a transmissão. No prompt, insira o seguinte comando:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]:pause
    
  16. Verifique se as linhas de código a seguir são exibidas.

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "start",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  17. Recupere informações sobre o stream para confirmar que ele está pausado.

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]
    
  18. Verifique se o estado do stream mudou de RUNNING para PAUSED.

    {
      "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
      "createTime": "[DATE_AND_TIME_STAMP]",
      "updateTime": "[DATE_AND_TIME_STAMP]",
      "displayName": "[DISPLAY_NAME]",
      "sourceConfig": {
        "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "oracleSourceConfig": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schemaName": "ROOT"
              }
            ]
          },
          "rejectlist": {}
        }
      },
      "destinationConfig": {
        "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "gcsDestinationConfig": {
          "gcsFileFormat": "AVRO",
          "fileRotationMb": 100,
          "fileRotationInterval": "15s"
        }
      },
      "state": "PAUSED"
    }
    
  19. Retomar o stream pausado. No prompt, insira o seguinte comando:

    curl -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]:resume
    
  20. Verifique se as linhas de código a seguir são exibidas.

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "start",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  21. Recupere informações sobre o stream para confirmar que ele está sendo executado novamente.

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]
    
  22. Verifique se o estado do stream mudou de PAUSED de volta para RUNNING.

    {
      "name": "[PROJECT_PATH]/streams/[STREAM_ID]",
      "createTime": "[DATE_AND_TIME_STAMP]",
      "updateTime": "[DATE_AND_TIME_STAMP]",
      "displayName": "[DISPLAY_NAME]",
      "sourceConfig": {
        "sourceConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "oracleSourceConfig": {
          "allowlist": {
            "oracleSchemas": [
              {
                "schemaName": "ROOT"
              }
            ]
          },
          "rejectlist": {}
        }
      },
      "destinationConfig": {
        "destinationConnectionProfileName": "projects/[YOUR_PROJECT_NUMBER]/locations/[YOUR_PROJECT_LOCATION]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "gcsDestinationConfig": {
          "gcsFileFormat": "AVRO",
          "fileRotationMb": 100,
          "fileRotationInterval": "15s"
        }
      },
      "state": "RUNNING"
    }
    

Agora que você criou e gerenciou um stream, confirmou que não há erros associados a ele e que o estado do stream é RUNNING, está pronto para verificar se ele pode transferir dados do banco de dados de origem para um no bucket de destino do Cloud Storage.

Como verificar o stream

Nesta seção, você confirma que o Datastream

  • Transfere os dados e as tabelas associados ao esquema ROOT do seu banco de dados Oracle de origem na pasta /root/tutorial no bucket de destino do Cloud Storage.
  • Converte os dados no formato de arquivo Avro.
  1. Acesse a página Navegador do Storage no Cloud Storage.

    Acessar a página "Navegador do Storage"

  2. Clique no link que contém o bucket.

  3. Se a guia OBJETOS não estiver ativa, clique nela.

  4. Clique na pasta raiz e na pasta tutorial.

  5. Verifique se há pastas que representam tabelas do esquema ROOT do banco de dados Oracle de origem.

  6. Clique em uma das pastas da tabela e detalhar até ver os dados associados à tabela.

  7. Clique em um arquivo que represente os dados e, em seguida, selecione FAZER O DOWNLOAD.

  8. Abra o arquivo em uma ferramenta Avro (por exemplo, o Visualizador Avro) para garantir que o conteúdo seja legível. Isso confirma que o DataStream também traduziu os dados para o formato de arquivo Avro.

Limpar

Depois de concluir este tutorial, limpe os recursos criados no GCP para que não consumam sua cota e você não seja cobrado por eles no futuro. As próximas seções descrevem como excluir ou desativar esses recursos.

Excluir o projeto

O jeito mais fácil de evitar cobranças é excluir o projeto que você criou para o tutorial.

Para excluir o projeto:

  1. No console do Cloud, acesse a página Gerenciar recursos:

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.

Excluir o bucket de destino do Cloud Storage

  1. Na gaveta de navegação à esquerda do Cloud Storage, clique no item Navegador.

  2. Marque a caixa de seleção à esquerda do bucket e clique em EXCLUIR.

  3. No bucket Excluir? , insira o nome do bucket no campo de texto e clique em CONFIRMAR.

Excluir o stream

  1. Verifique se o aplicativo Google Cloud Shell está ativo.

  2. No prompt, insira o seguinte comando:

    curl -X DELETE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams/[STREAM_ID]
    
  3. Verifique se as seguintes linhas de código são exibidas:

    {
      "name": "[PROJECT_PATH]/operations/operation-[STREAM_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/streams/[STREAM_ID]",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  4. Confirme que o stream foi excluído. No prompt, insira o seguinte comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/streams
    
  5. Verifique se um valor {} nulo é retornado. Isso significa que não há mais streams no Datastream e o stream que você criou é excluído.

Excluir os perfis de conexão

  1. Exclua o perfil de conexão com o banco de dados Oracle de origem. No prompt, insira o seguinte comando:

    curl -X DELETE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]
    
  2. Verifique se as seguintes linhas de código são exibidas:

    {
      "name": "[PROJECT_PATH]/operations/operation-[SOURCE_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/connectionProfiles/[SOURCE_CONNECTION_PROFILE_ID]",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  3. Exclua o perfil de conexão do bucket de destino do Cloud Storage. No prompt, insira o seguinte comando:

    curl -X DELETE -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]
    
  4. Verifique se as seguintes linhas de código são exibidas:

    {
      "name": "[PROJECT_PATH]/operations/operation-[DESTINATION_CONNECTION_PROFILE_OPERATION_ID]",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.datastream.[DATASTREAM_VERSION].OperationMetadata",
        "createTime": "[DATE_AND_TIME_STAMP]",
        "target": "[PROJECT_PATH]/connectionProfiles/[DESTINATION_CONNECTION_PROFILE_ID]",
        "verb": "delete",
        "requestedCancellation": false,
        "apiVersion": "[DATASTREAM_VERSION]"
      },
      "done": false
    }
    
  5. Confirme que os dois perfis de conexão foram excluídos. No prompt, insira o seguinte comando:

    curl -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://$ENV-datastream.googleapis.com/[DATASTREAM_VERSION]/[PROJECT_PATH]/connectionProfiles
    
  6. Verifique se um valor {} nulo é retornado. Isso significa que não há mais perfis de conexão no Datastream e que os perfis que você criou são excluídos.

A seguir