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
usmultirregião, a associação de rede tem de estar na regiãous-central1. Para aeumultirregião, a associação de rede tem de estar na regiãoeurope-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
- Crie uma credencial de utilizador na base de dados Oracle.
- Conceda
Create Sessionprivilégios do sistema ao utilizador para permitir a criação de sessões. - Atribua um espaço de tabelas à conta de utilizador.
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
- Verifique se concluiu todas as ações necessárias para ativar o Serviço de transferência de dados do BigQuery.
- Crie um conjunto de dados do BigQuery para armazenar os seus dados.
- Se pretender configurar notificações de execução de transferências para o Pub/Sub,
verifique se tem a autorização de
pubsub.topics.setIamPolicygestão de identidade e de acesso (IAM). Não são necessárias autorizações do Pub/Sub se configurar apenas notificações por email. Para mais informações, consulte Notificações de execução do Serviço de transferência de dados 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
Aceda à página Transferências de dados na Google Cloud consola.
Clique em Criar transferência.
Na secção Tipo de origem, para Origem, selecione Oracle.
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,SIDouTNS. - 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.
Na secção Definições de destino, para Conjunto de dados, selecione o conjunto de dados que criou para armazenar os seus dados.
Na secção Nome da configuração de transferência, em Nome a apresentar, introduza um nome para a transferência de dados.
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.
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.
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_idnã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, como1520.connector.connectionType: o tipo de URL de associação,SERVICE,SIDouTNS.connector.tls.mode: especifique uma configuração TLS a usar com esta transferência:ENCRYPT_VERIFY_CA_AND_HOSTpara encriptar dados e validar a AC e o nome do anfitriãoENCRYPT_VERIFY_CApara encriptar dados e validar apenas a ACENCRYPT_VERIFY_NONEapenas para encriptação de dadosDISABLEpara nenhuma encriptação ou validação
connector.tls.trustedServerCertificate: (opcional) forneça um ou mais certificados codificados em PEM. O elemento é obrigatório apenas seconnector.tls.modeforENCRYPT_VERIFY_CA_AND_HOSTouENCRYPT_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.
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?
- Para uma vista geral do Serviço de transferência de dados do BigQuery, consulte o artigo Introdução ao Serviço de transferência de dados do BigQuery.
- Para obter informações sobre a utilização de transferências, incluindo a obtenção de informações sobre uma configuração de transferência, a apresentação de configurações de transferência e a visualização do histórico de execução de uma transferência, consulte o artigo Trabalhar com transferências.
- Saiba como carregar dados com operações em várias nuvens.