Programar uma transferência do Oracle

Com o conector do serviço de transferência de dados do BigQuery para Oracle, é possível programar e gerenciar automaticamente jobs de carregamento recorrentes do Oracle no BigQuery.

Limitações

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

  • O número máximo de conexões simultâneas com um banco de dados Oracle é limitado e, como resultado, o número de execuções de transferência simultâneas para um único banco de dados Oracle é limitado a esse valor máximo.
  • Configure um anexo de rede nos casos em que um IP público não estiver disponível para uma conexão com o banco de dados Oracle, com os seguintes requisitos:
    • A origem de dados precisa estar acessível na sub-rede em que o anexo de rede reside.
    • O anexo de rede não pode estar na sub-rede dentro do intervalo 240.0.0.0/24.
    • Não é possível excluir anexos de rede quando há conexões ativas com eles. Para excluir um anexo de rede, entre em contato com o Cloud Customer Care.
    • Para a multirregião us, o anexo de rede precisa estar na região us-central1. Para a multirregião eu, o anexo de rede precisa estar na região europe-west4.
  • O console do Google Cloud só permite o uso do papel de usuário NORMAL da Oracle para conectar o Oracle ao serviço de transferência de dados do BigQuery. Use a CLI do BigQuery para se conectar usando as funções de usuário da Oracle SYSDBA e SYSOPER.
  • O intervalo mínimo entre as transferências recorrentes é de 15 minutos. O intervalo padrão para uma transferência recorrente é 24 horas.

Antes de começar

Nas seções a seguir, descrevemos as etapas que você precisa seguir antes de criar uma transferência do Oracle.

Pré-requisitos do Oracle

É preciso também ter as seguintes informações do banco de dados Oracle ao criar uma transferência da Oracle.

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

Nome do host ou endereço IP do banco de dados.

port

Número da porta do banco de dados.

username

Nome de usuário para acessar o banco de dados.

password

Senha para acessar o banco de dados.

connectionType

O tipo de conexão. Os valores podem ser SERVICE, SID ou TNS.

oracleObjects

Lista de objetos do Oracle que serão transferidos.

Pré-requisitos do BigQuery

Papéis obrigatórios do BigQuery

Para receber as permissões necessárias para criar um conjunto de dados federado, peça ao administrador para conceder a você o papel do IAM Administrador do BigQuery (roles/bigquery.admin). Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para criar uma transferência. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para criar uma transferência:

  • bigquery.transfers.update no usuário
  • bigquery.datasets.get no conjunto de dados de destino
  • bigquery.datasets.update no conjunto de dados de destino

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Configurar uma transferência de dados do Oracle

Selecione uma das seguintes opções:

Console

  1. Acesse a página "Transferências de dados" no console do Google Cloud.

    Acesse Transferências de dados

  2. Clique em Criar transferência.

  3. Na seção Tipo de origem, em Origem, selecione Oracle.

  4. Na seção Detalhes da fonte de dados, faça o seguinte:

    • Em Anexo de rede, selecione um anexo de rede existente ou clique em Criar anexo de rede.
    • Em Host, insira o nome do host ou o IP do banco de dados.
    • Em Porta, insira o número da porta que o banco de dados Oracle está usando para conexões de entrada, como 1520.
    • Em Nome do banco de dados, insira o nome do banco de dados Oracle.
    • Em Tipo de conexão, insira o tipo de URL de conexão: SERVICE, SID ou TNS.
    • Em Nome de usuário, digite o nome do usuário que iniciou a conexão com o banco de dados Oracle.
    • Em Senha, insira a senha do usuário que iniciou a conexão do banco de dados Oracle.
    • Em Objetos da Oracle para transferir, clique em PROCURAR para selecionar as tabelas a serem transferidas para o conjunto de dados de destino do BigQuery.

      • Nesse campo, também é possível inserir manualmente qualquer objeto para incluir na transferência de dados.

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

  5. Na seção Configurações de destino, em Conjunto de dados, escolha o conjunto criado para armazenar seus dados.

  6. No campo Nome de exibição, na seção Nome de configuração da transferência, insira um nome para a transferência de dados.

  7. Na seção Opções de programação, faça o seguinte:

    • Na lista Frequência de repetição, selecione uma opção para especificar com que frequência essa transferência de dados é executada. Para especificar uma frequência de repetição personalizada, selecione Personalizada. Se você selecionar Sob demanda, essa transferência vai ser executada quando você acionar manualmente a transferência.

    • Se aplicável, selecione Começar agora ou Começar no horário definido e forneça uma data de início e um horário de execução.

  8. No menu Conta de serviço, selecione uma conta de serviço associada ao seu projeto do Google Cloud. A conta de serviço selecionada precisa ter os papéis necessários para executar a transferência de dados.

    Se você fez login com uma identidade federada, é necessário uma conta de serviço para criar uma transferência de dados. Se você fez login com uma Conta do Google, uma conta de serviço para a transferência é opcional.

    Para mais informações sobre o uso de contas de serviço com transferências de dados, consulte Usar contas de serviço.

  9. Opcional: na seção Opções de notificação, faça o seguinte:

    • Para ativar as notificações por e-mail, clique no botão de alternância Notificação por e-mail. Quando essa opção está ativada, o administrador de transferência recebe uma notificação por e-mail quando uma execução de transferência falha.
    • Para ativar as notificações de execução de transferência do Pub/Sub para essa transferência, clique no botão de alternância Notificações do Pub/Sub. Selecione o nome do tópico ou clique em Criar um tópico.
  10. Clique em Salvar.

bq

Insira o comando bq mk e forneça a sinalização de execução da 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'

Em que:

  • PROJECT_ID (opcional): o ID do projeto do Google Cloud. Se --project_id não for fornecido para especificar um projeto determinado, o projeto padrão será usado;
  • DATA_SOURCE: a fonte de dados — oracle.
  • DISPLAY_NAME: o nome de exibição da configuração da transferência. O nome da transferência de dados pode ser qualquer valor que permita identificá-la, caso você precise modificá-la mais tarde.
  • DATASET: o conjunto de dados de destino na configuração da transferência.
  • PARAMETERS é o parâmetro da configuração de transferência criada no formato JSON. Por exemplo, --params='{"param":"param_value"}'. Veja a seguir os parâmetros de uma transferência de dados do Oracle:

    • connector.networkAttachment (opcional): nome do anexo de rede para se conectar ao banco de dados Oracle.
    • connector.authentication.Username: nome de usuário da conta do Oracle.
    • connector.authentication.Password: senha da conta do Oracle.
    • connector.database: nome do banco de dados do Oracle.
    • connector.endpoint.host: o nome do host ou IP do banco de dados.
    • connector.endpoint.port: o número da porta que o banco de dados Oracle está usando para conexões de entrada, como 1520.
    • connector.connectionType: o tipo de URL de conexão, SERVICE, SID ou TNS.
    • assets: o caminho para os objetos do Oracle que serão transferidos para o BigQuery, usando o formato: DATABASE_NAME/SCHEMA_NAME/TABLE_NAME

Por exemplo, o comando a seguir cria uma transferência de dados do Oracle no projeto padrão 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.

Mapeamento de tipo de dados

A tabela a seguir 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) NUMERIC
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

Resolver problemas na configuração da transferência

Se você tiver problemas para configurar a transferência de dados, consulte Problemas de transferência da Oracle.

Preços

Não há custo para transferir dados do Oracle para o BigQuery enquanto esse recurso está em Pré-lançamento.

A seguir