Introdução às transferências de dados do Oracle

É possível carregar dados do banco de dados Oracle para o BigQuery usando o conector do serviço de transferência de dados do BigQuery para Oracle. Neste documento, apresentamos opções de configuração para sua transferência do Oracle e informações sobre mapeamento de tipo de dados e transferência de metadados.

Para saber como programar uma transferência do Oracle, consulte Carregar dados do Oracle no BigQuery.

Opções de ingestão de dados

As seções a seguir fornecem mais informações sobre as opções de ingestão de dados ao configurar uma transferência de dados do Oracle.

Configuração de TLS

O conector do Oracle é compatível com a configuração do Transport Layer Security (TLS) para criptografar as transferências de dados para o BigQuery. O conector do Oracle é compatível com as seguintes configurações de TLS:

  • O modo Criptografar dados e verificar a AC e o nome do host. Esse modo realiza uma validação completa do servidor usando TLS sobre o protocolo TCPS. Ela criptografa todos os dados em trânsito e verifica se o certificado do servidor de banco de dados foi assinado por uma autoridade certificadora (CA) confiável. Esse modo também verifica se o nome do host ao qual você está se conectando corresponde exatamente ao nome comum (CN) ou a um nome alternativo do sujeito (SAN) no certificado do servidor. Esse modo impede que invasores usem um certificado válido de um domínio diferente para se passar pelo servidor de banco de dados.

    Se o nome do host não corresponder ao CN ou SAN do certificado, a conexão vai falhar. É necessário configurar uma resolução de DNS para corresponder ao certificado ou usar um modo de segurança diferente. Use esse modo para ter a opção mais segura de evitar ataques de person-in-the-middle (PITM).

  • O modo Criptografar dados e verificar apenas a AC. Esse modo criptografa todos os dados usando TLS no protocolo TCPS e verifica se o certificado do servidor é assinado por uma CA em que o cliente confia. No entanto, esse modo não verifica o nome do host do servidor. Esse modo se conecta desde que o certificado seja válido e emitido por uma CA confiável, independentemente de o nome do host no certificado corresponder ao nome do host ao qual você está se conectando.

    Use esse modo se quiser garantir que está se conectando a um servidor com um certificado assinado por uma CA confiável, mas o nome do host não é verificável ou você não tem controle sobre a configuração do nome do host.

  • O modo Somente criptografia. Esse modo criptografa todos os dados transferidos entre o cliente e o servidor usando a criptografia de rede nativa da Oracle pela porta TCP padrão. Ele não realiza nenhuma validação de certificado ou nome do host.

    Esse modo oferece um nível de segurança ao proteger os dados em trânsito, mas pode ser vulnerável a ataques PITM.

    Use esse modo se precisar garantir que todos os dados sejam criptografados, mas não puder ou não quiser verificar a identidade do servidor. Recomendamos usar esse modo ao trabalhar com VPCs privadas.

  • O modo Sem criptografia ou verificação. Esse modo não criptografa dados nem realiza nenhuma verificação de certificado ou nome do host. Todos os dados são enviados como texto simples.

    Não recomendamos o uso desse modo em um ambiente em que dados sensíveis são processados. Recomendamos usar esse modo apenas para fins de teste em uma rede isolada em que a segurança não seja uma preocupação.

Certificado de servidor confiável (do tipo PEM)

Se você estiver usando o modo Criptografar dados e verificar a AC e o nome do host ou Criptografar dados e verificar a AC, também será possível fornecer um ou mais certificados codificados em PEM. Esses certificados são necessários em alguns cenários em que o serviço de transferência de dados do BigQuery precisa verificar a identidade do servidor de banco de dados durante a conexão TLS:

  • Se você estiver usando um certificado assinado por uma CA privada na sua organização ou um certificado autoassinado, forneça a cadeia de certificados completa ou o certificado autoassinado único. Isso é necessário para certificados emitidos por CAs internas de serviços de provedores de nuvem gerenciados, como o Amazon Banco de Dados Relacional (RDS).
  • Se o certificado do servidor de banco de dados for assinado por uma CA pública (por exemplo, Let's Encrypt, DigiCert ou GlobalSign), não será necessário fornecer um certificado. Os certificados raiz dessas ACs públicas são pré-instalados e confiáveis para o serviço de transferência de dados do BigQuery.

É possível especificar certificados codificados em PEM no campo Certificado PEM confiável na configuração de transferência, com os seguintes requisitos:

  • O certificado precisa ser uma cadeia de certificados válida codificada em PEM.
  • O certificado precisa estar totalmente correto. Qualquer certificado ausente na cadeia ou conteúdo incorreto faz com que a conexão TLS falhe.
  • Para um único certificado, é possível fornecer um único certificado autoassinado do servidor de banco de dados.
  • Para uma cadeia de certificados completa emitida por uma AC particular, é necessário fornecer a cadeia de confiança completa. Isso inclui o certificado do servidor de banco de dados e todos os certificados de CA intermediários e raiz.

Transferências completas ou incrementais

É possível especificar como os dados são carregados no BigQuery selecionando a preferência de gravação Completa ou Incremental na configuração de transferência ao configurar uma transferência do Oracle. As transferências incrementais estão disponíveis em pré-lançamento.

É possível configurar uma transferência de dados completa para transferir todos os dados dos conjuntos de dados do Oracle em cada transferência de dados.

Como alternativa, é possível configurar uma transferência de dados incremental (pré-lançamento) para transferir apenas os dados que foram alterados desde a última transferência, em vez de carregar todo o conjunto de dados a cada transferência. Se você selecionar Incremental para a transferência de dados, especifique os modos de gravação Anexar ou Upsert para definir como os dados são gravados no BigQuery durante uma transferência de dados incremental. As seções a seguir descrevem os modos de gravação disponíveis.

Modo de gravação de anexação

O modo de gravação de anexação só insere novas linhas na tabela de destino. Essa opção adiciona os dados transferidos sem verificar se há registros, o que pode causar duplicação de dados na tabela de destino.

Ao selecionar o modo de anexação, é necessário selecionar uma coluna de marca-d'água. Uma coluna de marca-d'água é necessária para que o conector do Oracle rastreie as alterações na tabela de origem.

Para transferências do Oracle, recomendamos selecionar uma coluna que seja atualizada apenas quando o registro for criado e que não mude com as atualizações subsequentes, por exemplo, a coluna CREATED_AT.

Modo de gravação de upsert

O modo de gravação upsert atualiza uma linha ou insere uma nova linha na tabela de destino verificando uma chave primária. É possível especificar uma chave primária para permitir que o conector do Oracle determine quais mudanças são necessárias para manter a tabela de destino atualizada com a tabela de origem. Se a chave primária especificada estiver presente na tabela do BigQuery de destino durante uma transferência de dados, o conector do Oracle atualizará essa linha com novos dados da tabela de origem. Se uma chave primária não estiver presente durante uma transferência de dados, o conector do Oracle vai inserir uma nova linha.

Ao selecionar o modo upsert, é preciso selecionar uma coluna de marca-d'água e uma chave primária:

  • Uma coluna de marca-d'água é necessária para que o conector do Oracle rastreie as mudanças na tabela de origem.
    • Selecione uma coluna de marca-d'água que é atualizada sempre que uma linha é modificada. Recomendamos colunas semelhantes à coluna UPDATED_AT ou LAST_MODIFIED.
  • A chave primária pode ser uma ou mais colunas na tabela que são necessárias para que o conector do Oracle determine se precisa inserir ou atualizar uma linha.

    Selecione colunas que contenham valores não nulos exclusivos em todas as linhas da tabela. Recomendamos colunas que incluam identificadores gerados pelo sistema, códigos de referência exclusivos (por exemplo, IDs de incremento automático) ou IDs de sequência imutáveis baseados em tempo.

    Para evitar possíveis perdas ou corrupção de dados, as colunas de chave primária selecionadas precisam ter valores exclusivos. Se você tiver dúvidas sobre a exclusividade da coluna de chave primária escolhida, recomendamos usar o modo de gravação de anexação.

Comportamento de ingestão incremental

Quando você faz alterações no esquema da tabela na fonte de dados, as transferências de dados incrementais dessas tabelas são refletidas no BigQuery das seguintes maneiras:

Mudanças na fonte de dados Comportamento de ingestão incremental
Adicionar uma nova coluna Uma nova coluna é adicionada à tabela do BigQuery de destino. Todos os registros anteriores dessa coluna terão valores nulos.
excluir uma coluna. A coluna excluída permanece na tabela de destino do BigQuery. As novas entradas nessa coluna excluída são preenchidas com valores nulos.
Como alterar o tipo de dados em uma coluna O conector só aceita conversões de tipo de dados compatíveis com a instrução DDL ALTER COLUMN. Qualquer outra conversão de tipo de dados faz com que a transferência de dados falhe.

Se você tiver problemas, recomendamos criar uma nova configuração de transferência.

Como renomear uma coluna A coluna original permanece na tabela de destino do BigQuery como está, enquanto uma nova coluna é adicionada à tabela de destino com o nome atualizado.

Mapeamento de tipo de dados

A tabela a seguir mapeia os tipos de dados do Oracle para os tipos de dados correspondentes do BigQuery:

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 (sem precisão e escala) STRING
NUMBER (com precisão e escala menores que o intervalo NUMERIC do BigQuery) NUMERIC
NUMBER (com precisão e escala menores que o intervalo BIGNUMERIC do BigQuery) BIGNUMERIC
NUMBER (com precisão e escala maiores que o intervalo BIGNUMERIC do BigQuery) 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

Metadados de transferência

Também é possível usar o conector do Oracle para transferir metadados para o Knowledge Catalog. Para mais informações, consulte Carregar metadados do Oracle no Knowledge Catalog.

Preços

Para informações sobre preços de transferências da Oracle, consulte Preços do serviço de transferência de dados.

A seguir