Oracle DB (versão 2)

O conetor da base de dados Oracle permite-lhe estabelecer ligação a uma instância da base de dados Oracle e realizar as operações de base de dados suportadas.

Versões suportadas

A versão mínima suportada para este conector é a versão 11.2 da base de dados Oracle.

Antes de começar

Antes de usar o conector da base de dados Oracle, conclua as seguintes tarefas:

  • No seu projeto do Google Cloud:
    • Certifique-se de que a conetividade de rede está configurada. Para obter informações sobre padrões de rede, consulte o artigo Conetividade de rede.
    • Conceda a função IAM roles/connectors.admin ao utilizador que está a configurar o conetor.
    • Conceda as seguintes funções de IAM à conta de serviço que quer usar para o conector:
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor

      Uma conta de serviço é um tipo especial de Conta Google destinada a representar um utilizador não humano que precisa de autenticação e autorização para aceder a dados nas APIs Google. Se não tiver uma conta de serviço, tem de criar uma. O conector e a conta de serviço têm de pertencer ao mesmo projeto. Para mais informações, consulte Criar uma conta de serviço.

    • Ative os seguintes serviços:
      • secretmanager.googleapis.com (Secret Manager API)
      • connectors.googleapis.com (API Connectors)

      Para saber como ativar serviços, consulte o artigo Ativar serviços.

    Se estes serviços ou autorizações não tiverem sido ativados anteriormente para o seu projeto, é-lhe pedido que os ative quando configurar o conector.

Configure o conetor

Uma associação é específica de uma origem de dados. Isto significa que, se tiver muitas origens de dados, tem de criar uma associação separada para cada origem de dados. Para criar uma associação, faça o seguinte:

  1. Na Cloud Console, aceda à página Integration Connectors > Ligações e, de seguida, selecione ou crie um projeto do Google Cloud.

    Aceda à página Ligações

  2. Clique em + Criar novo para abrir a página Criar associação.
  3. Na secção Localização, escolha a localização para a ligação.
    1. Região: selecione uma localização na lista pendente.

      Para ver a lista de todas as regiões suportadas, consulte o artigo Localizações.

    2. Clicar em Seguinte.
  4. Na secção Detalhes da associação, conclua o seguinte:
    1. Conetor: selecione Oracle DB na lista pendente de conetores disponíveis.
    2. Versão do conector: selecione a versão 2 na lista pendente de versões disponíveis.
    3. No campo Nome da ligação, introduza um nome para a instância de ligação.

      Os nomes das associações têm de cumprir os seguintes critérios:

      • Os nomes das associações podem usar letras, números ou hífenes.
      • As letras têm de ser minúsculas.
      • Os nomes das associações têm de começar com uma letra e terminar com uma letra ou um número.
      • Os nomes das associações não podem exceder 49 carateres.
    4. Opcionalmente, introduza uma Descrição para a instância de associação.
    5. Opcionalmente, ative o Registo na nuvem e, em seguida, selecione um nível de registo. Por predefinição, o nível do registo está definido como Error.
    6. Opcionalmente, selecione Ativar Cloud Logging para ativar o Cloud Logging.
    7. Conta de serviço: selecione uma conta de serviço que tenha as funções necessárias.
    8. Opcionalmente, configure as definições do nó de associação:

      • Número mínimo de nós: introduza o número mínimo de nós de ligação.
      • Número máximo de nós: introduza o número máximo de nós de ligação.

      Um nó é uma unidade (ou uma réplica) de uma ligação que processa transações. São necessários mais nós para processar mais transações para uma ligação e, inversamente, são necessários menos nós para processar menos transações. Para compreender como os nós afetam os preços dos conectores, consulte o artigo Preços dos nós de ligação. Se não introduzir valores, por predefinição, os nós mínimos são definidos como 2 (para uma melhor disponibilidade) e os nós máximos são definidos como 50.

    9. Com base no facto de a sua ligação à base de dados Oracle usar uma ligação baseada no servidor ou uma conetividade TNS, especifique ServiceName ou DataSource (string de ligação TNS). Se especificar ambos, é usado o DataSource.
      • ServiceName: se usar a autenticação baseada em servidor, especifique o nome do serviço juntamente com os detalhes do destino.
      • DataSource: se usar a conetividade TNS, especifique o nome dos Oracle Net Services, o descritor de ligação (também conhecido como string de ligação TNS) ou um nome fácil de ligação que identifique a base de dados à qual se ligar. Use o seguinte formato para especificar a string de ligação do TNS: (DESCRIPTION=(ADDRESS=(protocol_address_information))(CONNECT_DATA= (SERVICE_NAME=service_name))). Se especificar a origem de dados, não deve especificar novamente os detalhes do destino na secção Destinos.
    10. Opcionalmente, selecione Incluir sinónimos.
    11. Tempo limite de ligação abandonada: introduza o valor do tempo limite (em segundos) que especifica durante quanto tempo uma ligação emprestada pode permanecer não utilizada antes de ser considerada abandonada.
    12. Limite de tempo de inatividade da ligação: introduza o valor do limite de tempo da ligação (em segundos).
    13. Tempo máximo de reutilização da ligação: introduza o tempo de reutilização da ligação (em segundos).
    14. Limite de tempo de ligação TTL: introduza o tempo máximo (em segundos) que a ligação pode permanecer em utilização.
    15. Esquemas navegáveis: introduza os nomes dos esquemas separados por vírgulas a usar quando forem obtidas entidades e ações. Por exemplo, schemaA, schemaB, schemaC.
    16. Opcionalmente, clique em + ADICIONAR ETIQUETA para adicionar uma etiqueta à associação sob a forma de um par chave/valor.
    17. Clique em SEGUINTE.
  5. Na secção Destinos, introduza os detalhes do anfitrião remoto (sistema de back-end) ao qual quer estabelecer ligação.
    1. Tipo de destino: selecione um Tipo de destino.
      • Para especificar o nome de anfitrião ou o endereço IP de destino, selecione Endereço do anfitrião e introduza o endereço no campo Anfitrião 1.
      • Para estabelecer uma ligação privada, selecione Anexo do ponto final e escolha o anexo necessário na lista Anexo do ponto final.

      Se quiser estabelecer uma ligação pública aos seus sistemas de back-end com segurança adicional, pode considerar configurar endereços IP estáticos de saída para as suas ligações e, em seguida, configurar as regras da firewall para permitir apenas os endereços IP estáticos específicos.

      Para introduzir destinos adicionais, clique em +ADICIONAR DESTINO.

    2. Clique em SEGUINTE.
  6. Na secção Autenticação, introduza os detalhes de autenticação.
    1. Selecione um Tipo de autenticação e introduza os detalhes relevantes.

      Os seguintes tipos de autenticação são suportados pela ligação à base de dados Oracle:

      • Nome de utilizador e palavra-passe
    2. Para saber como configurar estes tipos de autenticação, consulte o artigo Configurar autenticação.

    3. Clique em SEGUINTE.
  7. Rever: reveja os detalhes da ligação e da autenticação.
  8. Clique em Criar.

Configure a autenticação

Introduza os detalhes com base na autenticação que quer usar.

  • Nome de utilizador e palavra-passe
    • Nome de utilizador: nome de utilizador da conta Oracle usado para autenticação
    • Palavra-passe: segredo do Secret Manager que contém a palavra-passe associada ao nome de utilizador da conta Oracle.

Tipo de ligação de autenticação básica da base de dados Oracle

A tabela seguinte descreve os campos que pode configurar para o tipo de ligação de autenticação básica da base de dados Oracle.

Nome do campo Detalhes
Localização us-central1
Conetor Oracle DB
Versão do conetor 2
Nome da ligação google-oracledb-plsql-new
Ative o Cloud Logging Sim
Conta de serviço SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Nome do serviço pdb1
Número mínimo de nós 2
Número máximo de nós 50
Morada do anfitrião 198.51.100.0
Porta 1521
Nome de utilizador NOME DE UTILIZADOR
Palavra-passe PASSWORD
Versão do Secret 1

Tipo de ligação TNS da base de dados Oracle

A tabela seguinte descreve os campos que pode configurar para o tipo de ligação TNS da base de dados Oracle.

Nome do campo Detalhes
Localização us-central1
Conetor Oracle DB
Versão do conetor 2
Nome da ligação google-oracledb-plsql-tns
Ative o Cloud Logging Sim
Conta de serviço SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Origem de dados (DESCRIPTION=(ADDRESS=(PROTOCOL_ADDRESS_INFORMATION))(CONNECT_DATA= (SERVICE_NAME=service_name)))
Número mínimo de nós 2
Número máximo de nós 50
Nome de utilizador NOME DE UTILIZADOR
Palavra-passe PASSWORD
Versão do Secret 1

Entidades, operações e ações

Todos os conetores de integração oferecem uma camada de abstração para os objetos da aplicação ligada. Só pode aceder aos objetos de uma aplicação através desta abstração. A abstração é exposta como entidades, operações e ações.

  • Entidade: pode considerar uma entidade como um objeto ou uma coleção de propriedades na aplicação ou no serviço associado. A definição de uma entidade difere de um conetor para um conetor. Por exemplo, num conetor de base de dados, as tabelas são as entidades. Num conetor de servidor de ficheiros, as pastas são as entidades. Num conetor de sistema de mensagens, as filas são as entidades.

    No entanto, é possível que um conector não suporte ou não tenha entidades, caso em que a lista Entities estará vazia.

  • Operação: uma operação é a atividade que pode realizar numa entidade. Pode realizar qualquer uma das seguintes operações numa entidade:

    Selecionar uma entidade na lista disponível gera uma lista de operações disponíveis para a entidade. Para uma descrição detalhada das operações, consulte as operações de entidades da tarefa de conectores. No entanto, se um conector não suportar nenhuma das operações de entidades, essas operações não suportadas não são apresentadas na lista Operations.

  • Ação: uma ação é uma função de primeira classe que é disponibilizada à integração através da interface do conetor. Uma ação permite-lhe fazer alterações a uma ou mais entidades e varia de conetor para conetor. Normalmente, uma ação tem alguns parâmetros de entrada e um parâmetro de saída. No entanto, é possível que um conector não suporte nenhuma ação, caso em que a lista Actions está vazia.

Limitações do sistema

O conector da base de dados Oracle pode processar um máximo de 70 transações por segundo, por , e limita todas as transações que excedam este limite. Por predefinição, os Integration Connectors atribuem 2 nós (para uma melhor disponibilidade) a uma ligação.

Para informações sobre os limites aplicáveis aos Integration Connectors, consulte Limites.

Tipos de dados suportados

Seguem-se os tipos de dados suportados para este conector:

  • BIGINT
  • BINARY
  • BIT
  • BOOLEAN
  • CHAR
  • DATA
  • DECIMAL
  • DOUBLE
  • FLOAT
  • INTEGER
  • LONGN VARCHAR
  • LONG VARCHAR
  • NCHAR
  • NUMERIC
  • NVARCHAR
  • REAL
  • SMALL INT
  • HORA
  • TIMESTAMP
  • TINY INT
  • VARBINARY
  • VARCHAR

Ações

O conetor da base de dados Oracle permite-lhe executar os seus procedimentos armazenados, funções e consultas SQL personalizadas no formato suportado pela sua base de dados Oracle. Para executar consultas SQL personalizadas, o conector fornece a ação Executar consulta personalizada.

Para criar uma consulta personalizada, siga estes passos:

  1. Siga as instruções detalhadas para adicionar uma tarefa de conetores.
  2. Quando configurar a tarefa do conetor, no tipo de ação que quer realizar, selecione Ações.
  3. Na lista Ação, selecione Executar consulta personalizada e, de seguida, clique em Concluído.

    Imagem que mostra a ação execute-custom-query Imagem que mostra a ação execute-custom-query

  4. Expanda a secção Entrada de tarefas e, de seguida, faça o seguinte:
    1. No campo Tempo limite após, introduza o número de segundos a aguardar até que a consulta seja executada.

      Valor predefinido: 180 segundos.

    2. No campo Número máximo de linhas, introduza o número máximo de linhas a devolver da base de dados.

      Valor predefinido: 25.

    3. Para atualizar a consulta personalizada, clique em Editar script personalizado. É apresentada a caixa de diálogo Editor de scripts.

      imagem a mostrar custom-sql-query imagem a mostrar custom-sql-query

    4. Na caixa de diálogo Editor de scripts, introduza a consulta SQL e clique em Guardar.

      Pode usar um ponto de interrogação (?) numa declaração SQL para representar um único parâmetro que tem de ser especificado na lista de parâmetros de consulta. Por exemplo, a seguinte consulta SQL seleciona todas as linhas da tabela Employees que correspondem aos valores especificados para a coluna LastName:

      SELECT * FROM Employees where LastName=?

    5. Se usou pontos de interrogação na sua consulta SQL, tem de adicionar o parâmetro clicando em + Adicionar nome do parâmetro para cada ponto de interrogação. Durante a execução da integração, estes parâmetros substituem os pontos de interrogação (?) na consulta SQL sequencialmente. Por exemplo, se adicionou três pontos de interrogação (?), tem de adicionar três parâmetros por ordem de sequência.

      imagem que mostra add-query-param imagem que mostra add-query-param

      Para adicionar parâmetros de consulta, faça o seguinte:

      1. Na lista Tipo, selecione o tipo de dados do parâmetro.
      2. No campo Valor, introduza o valor do parâmetro.
      3. Para adicionar vários parâmetros, clique em + Adicionar parâmetro de consulta.
    6. A ação Executar consulta personalizada não suporta variáveis de matriz.

Para saber como usar a ação de consulta personalizada, consulte os exemplos de ações.

Exemplos de ações

Esta secção descreve como realizar algumas das ações neste conector.

Exemplo: executar uma consulta GROUP BY

  1. Na caixa de diálogo Configurar tarefa do conetor, selecione Ações.
  2. Selecione a ação Executar consulta personalizada e, de seguida, clique em Concluído.
  3. Na secção Entrada de tarefas da tarefa Conetores, clique em Editar consulta personalizada. É apresentada a caixa de diálogo Consulta personalizada.
  4. Na caixa de diálogo Consulta personalizada, introduza a seguinte consulta SQL e clique em Guardar:
          Select E.EMPLOYEE_ID, E.EMPLOYEE_NAME, E.CITY
          FROM EMPLOYEES E
          LEFT JOIN EMPLOYEE_DEPARTMENT ED ON E.EMPLOYEE_ID=ED.ID 
          WHERE E.EMPLOYEE_NAME = 'John'
          GROUP BY E.CITY,E.EMPLOYEE_ID,E.EMPLOYEE_NAME
        

    Este exemplo seleciona os registos de funcionários das tabelas EMPLOYEES e EMPLOYEE_DEPARTMENT. Se a ação for concluída com êxito, o parâmetro de resposta connectorOutputPayload da tarefa do conector terá o conjunto de resultados da consulta.

Exemplo: execute uma consulta parametrizada

  1. Na caixa de diálogo Configurar tarefa do conetor, selecione Ações.
  2. Selecione a ação Executar consulta personalizada e, de seguida, clique em Concluído.
  3. Na secção Entrada da tarefa da tarefa Conetores, defina os seguintes valores para o campo:
    1. Limite de tempo após: 10
    2. Número máximo de linhas: 3
  4. Clique em +Adicionar nome do parâmetro para introduzir os seguintes valores:
    1. Tipo: VARCHAR
    2. Valor: John
  5. Clique em Editar consulta personalizada. É apresentada a caixa de diálogo Consulta personalizada.
  6. Na caixa de diálogo Consulta personalizada, introduza a seguinte consulta SQL e clique em Guardar:
      Select C.ID,C.NAME,C.CITY,C.O_DATE,E.EMPLOYEE_ID 
      FROM customqueries C,Employees E 
      WHERE C.ID=E.Employee_id and C.NAME=?
  7. Este exemplo seleciona os registos de funcionários em que o nome do funcionário é John. Repare que o nome do funcionário é parametrizado. Se a ação for bem-sucedida, o parâmetro de resposta da tarefa do conector tem um valor semelhante ao seguinte:connectorOutputPayload

    [{
    "NAME": "John",
    "O_DATE": "2023-06-01 00:00:00.0",
    "EMPLOYEE_ID": 1.0
    }, {
    "NAME": "John",
    "O_DATE": "2021-07-01 00:00:00.0",
    "EMPLOYEE_ID": 3.0
    }, {
    "NAME": "John",
    "O_DATE": "2022-09-01 00:00:00.0",
    "EMPLOYEE_ID": 4.0
    }]

Exemplo: insira um registo através de um valor de sequência

  1. Na caixa de diálogo Configurar tarefa do conetor, selecione Ações.
  2. Selecione a ação Executar consulta personalizada e, de seguida, clique em Concluído.
  3. Na caixa de diálogo Consulta personalizada, introduza a seguinte consulta SQL e clique em Guardar:
      INSERT INTO AUTHOR(id,title) VALUES(author_table_id_seq.NEXTVAL,'Sample_book_title')
  4. Este exemplo insere um registo na tabela AUTHOR usando um objeto de sequência author_table_id_seq existente. Se a ação for bem-sucedida, o parâmetro de resposta da tarefa do conector tem um valor semelhante ao seguinte:connectorOutputPayload

    [{
    }]

Exemplo: executar uma consulta com uma função de agregação

  1. Na caixa de diálogo Configurar tarefa do conetor, selecione Ações.
  2. Selecione a ação Executar consulta personalizada e, de seguida, clique em Concluído.
  3. Na caixa de diálogo Consulta personalizada, introduza a seguinte consulta SQL e clique em Guardar:
      SELECT SUM(SALARY) as Total FROM EMPLOYEES
      
  4. Este exemplo calcula o valor agregado dos salários na tabela EMPLOYEES. Se a ação for bem-sucedida, o parâmetro de resposta da tarefa do conector tem um valor semelhante ao seguinte:connectorOutputPayload

    [{
    "TOTAL": 13000.0
    }]  
      

Exemplo: criar uma nova tabela

  1. Na caixa de diálogo Configurar tarefa do conetor, selecione Ações.
  2. Selecione a ação Executar consulta personalizada e, de seguida, clique em Concluído.
  3. Na caixa de diálogo Consulta personalizada, introduza a seguinte consulta SQL e clique em Guardar:
        CREATE TABLE TEST1 (ID INT, NAME VARCHAR(40),DEPT VARCHAR(20),CITY VARCHAR(10))
     
  4. Este exemplo cria a tabela TEST1. Se a ação for bem-sucedida, o parâmetro de resposta da tarefa do conector tem um valor semelhante ao seguinte:connectorOutputPayload

    [{
    }]

Exemplos de operações de entidades

Exemplo: listar todos os funcionários

Este exemplo apresenta todos os funcionários na entidade Employee.

  1. Na caixa de diálogo Configure connector task, clique em Entities.
  2. Selecione Employee na lista Entity.
  3. Selecione a operação List e, de seguida, clique em Concluído.
  4. Opcionalmente, na secção Entrada de tarefas da tarefa Conectores, pode filtrar o conjunto de resultados especificando uma cláusula de filtro.

Exemplo: obter detalhes do funcionário

Este exemplo recebe os detalhes do funcionário cujo ID é 45, da entidade Employee.

  1. Na caixa de diálogo Configure connector task, clique em Entities.
  2. Selecione Employee na lista Entity.
  3. Selecione a operação Get e, de seguida, clique em Concluído.
  4. Na secção Entrada de tarefas da tarefa Conetores, clique em EntityId e, de seguida, introduza 45 no campo Valor predefinido.

    Aqui, 45 é o valor-chave principal da entidade Employee.

Exemplo: crie um registo de funcionário

Este exemplo adiciona um novo registo de funcionário na entidade Employee.

  1. Na caixa de diálogo Configure connector task, clique em Entities.
  2. Selecione Employee na lista Entity.
  3. Selecione a operação Create e, de seguida, clique em Concluído.
  4. Na secção Entrada da tarefa da tarefa Conetores, clique em connectorInputPayload e, de seguida, introduza um valor semelhante ao seguinte no campo Default Value:
    {
    "EMPLOYEE_ID": 69.0,
    "EMPLOYEE_NAME": "John",
    "CITY": "Bangalore"
    }

    Se a integração for bem-sucedida, o campo connectorOutputPayload da tarefa do conector vai ter um valor semelhante ao seguinte:

     {
    "ROWID": "AAAoU0AABAAAc3hAAF"
    }

Exemplo: atualize o registo de um funcionário

Este exemplo atualiza o registo do funcionário cujo ID é 69 na entidade Employee.

  1. Na caixa de diálogo Configure connector task, clique em Entities.
  2. Selecione Employee na lista Entity.
  3. Selecione a operação Update e, de seguida, clique em Concluído.
  4. Na secção Entrada da tarefa da tarefa Conectores, clique em connectorInputPayload e, de seguida, introduza um valor semelhante ao seguinte no campo Default Value:
    {
    "EMPLOYEE_NAME": "John",
    "CITY": "Mumbai"
    }
  5. Clique em entityId e, de seguida, introduza 69 no campo Valor predefinido.

    Em alternativa, em vez de especificar o entityId, também pode definir a filterClause como 69.

    Se a integração for bem-sucedida, o campo connectorOutputPayload da tarefa do conector tem um valor semelhante ao seguinte:

    {
    }

Exemplo: elimine o registo de um funcionário

Este exemplo elimina o registo do funcionário cujo ID é 35 na entidade Employee.

  1. Na caixa de diálogo Configure connector task, clique em Entities.
  2. Selecione Employee na lista Entity.
  3. Selecione a operação Delete e, de seguida, clique em Concluído.
  4. Na secção Entrada de tarefas da tarefa Conetores, clique em entityId e, de seguida, introduza 35 no campo Valor predefinido.

Crie ligações com o Terraform

Pode usar o recurso do Terraform para criar uma nova associação.

Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.

Para ver um modelo do Terraform de exemplo para a criação de ligações, consulte o modelo de exemplo.

Quando criar esta associação através do Terraform, tem de definir as seguintes variáveis no ficheiro de configuração do Terraform:

Nome do parâmetro Tipo de dados Obrigatória Descrição
service_name STRING Falso O nome do serviço da base de dados Oracle.
data_source STRING Falso O nome dos serviços de rede da Oracle, o descritor de ligação (também conhecido como string de ligação TNS) ou um nome fácil de ligação que identifica a base de dados à qual estabelecer ligação.
include_synonyms BOOLEAN Falso Consultar metadados de sinónimos e disponibilizá-los como entidades. Definir a propriedade como falsa pode aumentar o desempenho dos metadados.
abandoned_connection_timeout INTEGER Falso O tempo limite de ligação abandonada (em segundos) determina durante quanto tempo uma ligação emprestada pode permanecer não utilizada antes de ser considerada abandonada e recuperada pelo conjunto de ligações.
inactive_connection_timeout INTEGER Falso O limite de tempo de inatividade da ligação (em segundos) determina durante quanto tempo uma ligação disponível permanece no conjunto de ligações antes de ser removida do conjunto.
max_connection_reuse_time INTEGER Falso O tempo máximo de reutilização da ligação (em segundos) especifica o tempo máximo durante o qual qualquer ligação pode ser potencialmente reutilizada, após o qual a pool remove e fecha uma ligação.
ttl_connection_timeout INTEGER Falso Tempo máximo (em segundos) que uma ligação pode permanecer em utilização.
browsable_schemas STRING Falso Esquemas separados por vírgulas (por exemplo, SchemaA, SchemaB) a serem usados quando forem obtidas entidades e ações para a associação. Usa o esquema do utilizador por predefinição

Use a ligação à base de dados do Oracle numa integração

Depois de criar a ligação, esta fica disponível no Apigee Integration e no Application Integration. Pode usar a ligação numa integração através da tarefa Conectores.

  • Para compreender como criar e usar a tarefa Connectors no Apigee Integration, consulte o artigo Tarefa Connectors.
  • Para compreender como criar e usar a tarefa Connectors na integração de aplicações, consulte o artigo Tarefa Connectors.

Obtenha ajuda da comunidade do Google Cloud

Pode publicar as suas perguntas e discutir este conector na comunidade do Google Cloud nos Fóruns do Cloud.

O que se segue?