Carregue dados do Oracle para o BigQuery

Pode carregar dados do Oracle para o BigQuery através do conetor do Serviço de transferência de dados do BigQuery para o Oracle. Com o Serviço de transferência de dados do BigQuery, pode agendar tarefas de transferência recorrentes que adicionam os seus dados mais recentes do Oracle ao BigQuery.

Limitações

As transferências da Oracle estão sujeitas às seguintes limitações:

  • O número máximo de ligações simultâneas a uma base de dados do Oracle é limitado e, como resultado, o número de execuções de transferências simultâneas para uma única base de dados do Oracle está limitado a esse valor máximo.
  • Tem de configurar uma associação de rede nos casos em que um IP público não está disponível para uma ligação à base de dados do Oracle, com os seguintes requisitos:
    • A origem de dados tem de estar acessível a partir da sub-rede onde reside a associação de rede.
    • A associação de rede não pode estar na sub-rede dentro do intervalo 240.0.0.0/24.
    • Não é possível eliminar associações de rede se existirem associações ativas à associação. Para eliminar uma associação de rede, contacte o apoio técnico ao cliente do Google Cloud.
    • Para a us multirregião, a associação de rede tem de estar na região us-central1. Para a eu multirregião, a associação de rede tem de estar na região europe-west4.
  • A consola Google Cloud só suporta a utilização da função de utilizador do NORMAL Oracle para associar o Oracle ao Serviço de transferência de dados do BigQuery. Tem de usar a CLI do BigQuery para estabelecer ligação através das funções de utilizador do Oracle SYSDBA e SYSOPER.
  • O intervalo de tempo mínimo entre transferências recorrentes do Oracle é de 15 minutos. O intervalo predefinido para uma transferência recorrente é de 24 horas.
  • Uma única configuração de transferência só pode suportar uma execução de transferência de dados num determinado momento. No caso em que uma segunda transferência de dados esteja agendada para ser executada antes de a primeira transferência estar concluída, apenas a primeira transferência de dados é concluída, enquanto todas as outras transferências de dados que se sobreponham à primeira transferência são ignoradas.
    • Para evitar transferências ignoradas numa única configuração de transferência, recomendamos que aumente a duração do tempo entre transferências de dados grandes configurando a frequência de repetição.
  • Se o anexo de rede configurado e a instância de máquina virtual (VM) estiverem localizados em regiões diferentes, pode haver movimento de dados entre regiões quando transferir dados do Oracle.

Antes de começar

As secções seguintes descrevem os passos que tem de seguir antes de criar uma transferência do Oracle.

Pré-requisitos da Oracle

Também tem de ter as seguintes informações da base de dados Oracle quando criar uma transferência do Oracle.

Nome do parâmetro Descrição
database Nome da base de dados.
host

Nome do anfitrião ou endereço IP da base de dados.

port

Número da porta da base de dados.

username

Nome de utilizador para aceder à base de dados.

password

Palavra-passe para aceder à base de dados.

connectionType

O tipo de ligação. Pode ser SERVICE, SID ou TNS.

encryptionMode

O modo de encriptação. Pode ser FULL para validação SSL completa quando se liga à base de dados Oracle ou DISABLE para não validação SSL.

oracleObjects

Lista de objetos Oracle a transferir.

Pré-requisitos do BigQuery

Funções do BigQuery necessárias

Para obter as autorizações de que precisa para criar uma transferência, peça ao seu administrador que lhe conceda a função de IAM de administrador do BigQuery (roles/bigquery.admin). Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Esta função predefinida contém as autorizações necessárias para criar uma transferência. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para criar uma transferência:

  • bigquery.transfers.update no utilizador
  • bigquery.datasets.get no conjunto de dados de destino
  • bigquery.datasets.update no conjunto de dados de destino

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Carregue dados do Oracle para o BigQuery

Adicione dados da Oracle ao BigQuery configurando uma configuração de transferência através de uma das seguintes opções:

Consola

  1. Aceda à página Transferências de dados na Google Cloud consola.

    Aceda a Transferências de dados

  2. Clique em Criar transferência.

  3. Na secção Tipo de origem, para Origem, selecione Oracle.

  4. Na secção Detalhes da origem de dados, faça o seguinte:

    • Para Anexo de rede, selecione um anexo de rede existente ou clique em Criar anexo de rede.
    • Para Anfitrião, introduza o nome de anfitrião ou o IP da base de dados.
    • Para Porta, introduza o número da porta que a base de dados Oracle está a usar para ligações recebidas, como 1521.
    • Em Nome da base de dados, introduza o nome da base de dados Oracle.
    • Para Tipo de ligação, introduza o tipo de URL de ligação, SERVICE, SID ou TNS.
    • Para Nome de utilizador, introduza o nome de utilizador do utilizador que inicia a ligação à base de dados Oracle.
    • Para Palavra-passe, introduza a palavra-passe do utilizador que está a iniciar a ligação à base de dados Oracle.
    • Para o Modo de encriptação, selecione COMPLETO no menu pendente para ativar a validação SSL completa quando se ligar à base de dados Oracle ou DESATIVAR para não ter validação SSL.
    • Para transferir objetos Oracle, clique em PROCURAR para selecionar quaisquer tabelas a transferir para o conjunto de dados de destino do BigQuery. Também pode introduzir manualmente quaisquer objetos a incluir na transferência de dados neste campo.

      Configure a configuração de transferência do Oracle

  5. Na secção Definições de destino, para Conjunto de dados, selecione o conjunto de dados que criou para armazenar os seus dados.

  6. Na secção Nome da configuração de transferência, em Nome a apresentar, introduza um nome para a transferência de dados.

  7. Na secção Opções de programação:

    • Na lista Frequência de repetição, selecione uma opção para especificar a frequência com que esta transferência de dados é executada. Para especificar uma frequência de repetição personalizada, selecione Personalizado. Se selecionar A pedido, esta transferência é executada quando aciona manualmente a transferência.
    • Se aplicável, selecione Começar agora ou Começar à hora definida e indique uma data de início e um tempo de execução.
  8. Opcional: na secção Opções de notificação, faça o seguinte:

    • Para ativar as notificações por email, clique no botão Notificação por email. Quando ativa esta opção, o administrador da transferência recebe uma notificação por email quando uma execução de transferência falha.
    • Para ativar as notificações de execução de transferências do Pub/Sub para esta transferência, clique no botão ativar/desativar Notificações do Pub/Sub. Pode selecionar o nome do tópico ou clicar em Criar um tópico para criar um.
  9. Clique em Guardar.

bq

Introduza o comando bq mk e forneça a flag de criação de transferência --transfer_config:

bq mk
    --transfer_config
    --project_id=PROJECT_ID
    --data_source=DATA_SOURCE
    --display_name=DISPLAY_NAME
    --target_dataset=DATASET
    --params='PARAMETERS'

Onde:

  • PROJECT_ID (opcional): o ID do seu Google Cloud projeto. Se --project_id não for fornecido para especificar um projeto em particular, é usado o projeto predefinido.
  • DATA_SOURCE: a origem de dados: oracle.
  • DISPLAY_NAME: o nome a apresentar da configuração de transferência. O nome da transferência de dados pode ser qualquer valor que lhe permita identificar a transferência se precisar de a modificar mais tarde.
  • DATASET: o conjunto de dados de destino para a configuração de transferência.
  • PARAMETERS: os parâmetros da configuração de transferência criada no formato JSON. Por exemplo: --params='{"param":"param_value"}'. Seguem-se os parâmetros para uma transferência de dados da Oracle:

    • connector.networkAttachment (opcional): nome do anexo de rede para ligar à base de dados Oracle.
    • connector.authentication.Username: nome de utilizador da conta do Oracle.
    • connector.authentication.Password: palavra-passe da conta da Oracle.
    • connector.database: nome da base de dados Oracle.
    • connector.endpoint.host: o nome de anfitrião ou o IP da base de dados.
    • connector.endpoint.port: o número da porta que a base de dados Oracle está a usar para ligações recebidas, como 1520.
    • connector.connectionType: o tipo de URL de associação, SERVICE, SID ou TNS.
    • assets: o caminho para os objetos Oracle a transferir para o BigQuery, usando o formato: DATABASE_NAME/SCHEMA_NAME/TABLE_NAME

Por exemplo, o seguinte comando cria uma transferência de dados do Oracle no projeto predefinido com todos os parâmetros necessários:

bq mk
    --transfer_config
    --target_dataset=mydataset
    --data_source=oracle
    --display_name='My Transfer'
    --params='{"assets":["DB1/USER1/DEPARTMENT","DB1/USER1/EMPLOYEES"],
        "connector.authentication.username": "User1",
        "connector.authentication.password":"ABC12345",
        "connector.database":"DB1",
        "connector.endpoint.host":"192.168.0.1",
        "connector.endpoint.port":1520,
        "connector.connectionType":"SERVICE",
        "connector.networkAttachment":
        "projects/dev-project1/regions/us-central1/networkattachments/na1"}'

API

Use o método projects.locations.transferConfigs.create e forneça uma instância do recurso TransferConfig.

Quando guarda a configuração de transferência, o conector do Oracle aciona automaticamente uma execução de transferência de acordo com a opção de agendamento. Com cada execução de transferência, o conetor do Oracle transfere todos os dados disponíveis do Oracle para o BigQuery.

Para executar manualmente uma transferência de dados fora da sua programação normal, pode iniciar uma execução de preenchimento.

Mapeamento de tipos de dados

A tabela seguinte mapeia os tipos de dados do Oracle para os tipos de dados do BigQuery correspondentes.

Tipo de dados Oracle Tipo de dados do BigQuery
BFILE BYTES
BINARY_DOUBLE FLOAT
BINARY_FLOAT FLOAT
BLOB BYTES
CHAR STRING
CLOB STRING
DATE DATETIME
FLOAT FLOAT
INTERVAL DAY TO SECOND STRING
INTERVAL YEAR TO MONTH STRING
LONG STRING
LONG RAW BYTES
NCHAR STRING
NCLOB STRING
NUMBER (without precision and scale) STRING
NUMBER (with precision and scale lower than the BigQuery Numeric range) NUMERIC
NUMBER (with precision and scale lower than the BigQuery BigNumeric range) BIGNUMERIC
NUMBER (with precision and scale greater than the BigQuery BigNumeric range) STRING
NVARCHAR2 STRING
RAW BYTES
ROWID STRING
TIMESTAMP DATETIME
TIMESTAMP WITH LOCAL TIME ZONE DATETIME
TIMESTAMP WITH TIME ZONE TIMESTAMP
UROWID STRING
VARCHAR STRING
VARCHAR2 STRING

Resolva problemas de configuração da transferência

Se tiver problemas com a configuração da transferência de dados, consulte Problemas de transferência do Oracle.

Preços

Não existe custo para transferir dados da Oracle para o BigQuery enquanto esta funcionalidade estiver em pré-visualização.

O que se segue?