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 Oracle é limitado e, como resultado, o número de execuções de transferências simultâneas para uma única base de dados Oracle é 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 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.
  • 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 está agendada para ser executada antes da conclusão da primeira, apenas a primeira transferência de dados é concluída, enquanto todas as outras transferências de dados que se sobreponham à primeira 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 grandes volumes de dados 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.

Opções de carregamento de dados

As secções seguintes fornecem informações sobre as opções de carregamento de dados quando configura uma transferência de dados do Oracle.

Configuração de TLS

O conetor da Oracle suporta a configuração da segurança ao nível do transporte (TLS) para encriptar as suas transferências de dados para o BigQuery. O conetor da Oracle suporta as seguintes configurações de TLS:

  • Encriptar dados e validar a AC e o nome do anfitrião: este modo executa uma validação completa do servidor através do TLS sobre o protocolo TCPS. Encripta todos os dados em trânsito e verifica se o certificado do servidor de base de dados está assinado por uma autoridade de certificação (AC) fidedigna. Este modo também verifica se o nome de anfitrião ao qual está a estabelecer ligação corresponde exatamente ao nome comum (CN) ou a um nome alternativo de entidade (SAN) no certificado do servidor. Este modo impede que os atacantes usem um certificado válido para um domínio diferente para se fazerem passar pelo seu servidor de base de dados.
    • Se o nome de anfitrião não corresponder ao CN ou ao SAN do certificado, a ligação falha. Tem de configurar uma resolução DNS para corresponder ao certificado ou usar um modo de segurança diferente.
    • Use este modo para a opção mais segura de evitar ataques de intermediários (PITM).
  • Encriptar dados e validar apenas a AC: este modo encripta todos os dados através do TLS sobre o protocolo TCPS e verifica se o certificado do servidor está assinado por uma AC na qual o cliente confia. No entanto, este modo não valida o nome do anfitrião do servidor. Este modo estabelece ligação com êxito desde que o certificado seja válido e emitido por uma AC fidedigna, independentemente de o nome do anfitrião no certificado corresponder ao nome do anfitrião ao qual está a estabelecer ligação.
    • Use este modo se quiser garantir que está a estabelecer ligação a um servidor cujo certificado está assinado por uma AC fidedigna, mas o nome do anfitrião não é verificável ou não tem controlo sobre a configuração do nome do anfitrião.
  • Apenas encriptação: este modo encripta todos os dados transferidos entre o cliente e o servidor através da encriptação de rede nativa da Oracle na porta TCP padrão. Não realiza nenhuma validação de certificado ou nome de anfitrião.
    • Este modo oferece algum nível de segurança ao proteger os dados em trânsito, mas pode ser vulnerável a ataques PITM.
    • Use este modo se precisar de garantir que todos os dados estão encriptados, mas não conseguir ou não quiser validar a identidade do servidor. Recomendamos que use este modo quando trabalhar com VPCs privadas.
  • Sem encriptação nem validação: este modo não encripta dados e não realiza nenhuma validação de certificado ou nome de anfitrião. Todos os dados são enviados como texto simples.
    • Não recomendamos a utilização deste modo num ambiente onde são processados dados confidenciais.
    • Recomendamos que use este modo apenas para fins de teste numa rede isolada onde a segurança não seja uma preocupação.

Certificado do servidor fidedigno (PEM)

Se estiver a usar o modo Encriptar dados e validar AC e nome do anfitrião ou o modo Encriptar dados e validar AC, também pode fornecer um ou mais certificados codificados em PEM. Estes certificados são necessários em alguns cenários em que o Serviço de transferência de dados do BigQuery tem de validar a identidade do servidor de base de dados durante a ligação TLS:

  • Se estiver a usar um certificado assinado por uma AC privada na sua organização ou um certificado autoassinado, tem de fornecer a cadeia de certificados completa ou o certificado autoassinado único. Isto é necessário para certificados emitidos por ACs internas de serviços de fornecedores de nuvem geridos, como o Amazon Relational Database Service (RDS).
  • Se o certificado do servidor de base de dados for assinado por uma CA pública (por exemplo, Let's Encrypt, DigiCert ou GlobalSign), não tem de fornecer um certificado. Os certificados de raiz destas ACs públicas estão pré-instalados e são fidedignos para o Serviço de transferência de dados do BigQuery.

Pode fornecer certificados codificados em PEM no campo Certificado PEM fidedigno quando cria uma configuração de transferência da Oracle, com os seguintes requisitos:

  • O certificado tem de ser uma cadeia de certificados codificada em PEM válida.
  • O certificado tem de estar totalmente correto. Quaisquer certificados em falta na cadeia ou conteúdo incorreto fazem com que a ligação TLS falhe.
  • Para um único certificado, pode fornecer um único certificado autoassinado do servidor de base de dados.
  • Para uma cadeia de certificados completa emitida por uma AC privada, tem de fornecer a cadeia de confiança completa. Isto inclui o certificado do servidor de base de dados e todos os certificados intermédios e da AC de raiz.

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.

Pré-requisitos do BigQuery

Funções do BigQuery necessárias

Para receber as autorizações de que precisa para criar uma transferência de dados do Serviço de transferência de dados do BigQuery, peça ao seu administrador para lhe conceder a função do IAM de administrador do BigQuery (roles/bigquery.admin) no seu projeto. 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 de dados do Serviço de transferência de dados do BigQuery. 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 de dados do Serviço de transferência de dados do BigQuery:

  • Autorizações do Serviço de transferência de dados do BigQuery:
    • bigquery.transfers.update
    • bigquery.transfers.get
  • Autorizações do BigQuery:
    • bigquery.datasets.get
    • bigquery.datasets.getIamPolicy
    • bigquery.datasets.update
    • bigquery.datasets.setIamPolicy
    • bigquery.jobs.create

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

Para mais informações, consulte o artigo Conceda acesso ao bigquery.admin.

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 associaçã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 inicia a ligação à base de dados Oracle.
    • Para o Modo TLS, selecione uma opção no menu pendente. Para mais informações sobre os modos TLS, consulte o artigo Configuração do TLS.
    • Para Certificado PEM fidedigno, introduza o certificado público da autoridade de certificação (AC) que emitiu o certificado TLS do servidor de base de dados. Para mais informações, consulte o artigo Certificado de servidor fidedigno (PEM).
    • 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.
  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 do 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.
    • connector.tls.mode: especifique uma configuração TLS a usar com esta transferência:
      • ENCRYPT_VERIFY_CA_AND_HOST para encriptar dados e validar a AC e o nome do anfitrião
      • ENCRYPT_VERIFY_CA para encriptar dados e validar apenas a AC
      • ENCRYPT_VERIFY_NONE apenas para encriptação de dados
      • DISABLE para nenhuma encriptação ou validação
    • connector.tls.trustedServerCertificate: (opcional) forneça um ou mais certificados codificados em PEM. O elemento é obrigatório apenas se connector.tls.mode for ENCRYPT_VERIFY_CA_AND_HOST ou ENCRYPT_VERIFY_CA.
    • 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.tls.mode": "ENCRYPT_VERIFY_CA_AND_HOST",
        "connector.tls.trustedServerCertificate": "PEM-encoded certificate",
        "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 qualquer custo para transferir dados da Oracle para o BigQuery enquanto esta funcionalidade estiver em pré-visualização.

O que se segue?