Compartilhar via


Copiar dados do Amazon RDS para Oracle usando o Azure Data Factory ou o Azure Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Experimente o Data Factory no Microsoft Fabric, uma solução de análise completa para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

Este artigo descreve como usar a atividade Copy no Azure Data Factory para copiar dados de um banco de dados do Amazon RDS para Oracle. Ele se baseia na Visão geral da atividade Copy.

Importante

A versão 2.0 do conector para Amazon RDS for Oracle oferece suporte nativo aprimorado para o Amazon RDS for Oracle. Se você estiver usando o Amazon RDS para o conector Oracle versão 1.0 em sua solução, atualize o conector do Amazon RDS para Oracle , pois a versão 1.0 está no estágio de Fim do Suporte. Seu pipeline falhará após 31 de março de 2026. Consulte esta seção para obter detalhes sobre a diferença entre a versão 2.0 e a versão 1.0.

Funcionalidades com suporte

Há suporte para o conector do Amazon RDS para Oracle para as seguintes funcionalidades:

Funcionalidades com suporte IR
Atividade de cópia (origem/-) (1) (2)
Atividade de pesquisa (1) (2)

① Tempo de execução de integração do Azure ② Tempo de execução de integração auto-hospedado

Para obter uma lista de armazenamentos de dados que têm suporte como fontes ou coletores da atividade de cópia, confira a tabela Armazenamentos de dados com suporte.

Especificamente, esse conector do Amazon RDS para Oracle dá suporte a:

  • As seguintes versões do Amazon RDS para banco de dados Oracle na versão 2.0:
    • Amazon RDS para Oracle 19c e superior
    • Amazon RDS para Oracle 18c e superior
    • Amazon RDS para Oracle 12c e superior
    • Amazon RDS para Oracle 11g e superior
  • As versões a seguir de um banco de dados do Amazon RDS para Oracle na versão 1.0:
    • Amazon RDS para Oracle 19c R1 (19.1) e versões superiores
    • Amazon RDS para Oracle 18c R1 (18.1) e versões superiores
    • Amazon RDS para Oracle 12c R1 (12.1) e versões superiores
    • Amazon RDS para Oracle 11g R1 (11.1) e versões superiores
  • Cópia paralela de uma fonte do Amazon RDS para Oracle. Confira a seção Cópia paralela do Amazon RDS para Oracle para obter detalhes.

Observação

Não há suporte para o servidor proxy do Amazon RDS para Oracle.

Pré-requisitos

Se o armazenamento de dados estiver localizado dentro de uma rede local, em uma rede virtual do Azure ou na Amazon Virtual Private Cloud, você precisará configurar um runtime de integração auto-hospedada para se conectar a ele.

Se o armazenamento de dados for um serviço de dados de nuvem gerenciado, você poderá usar o Azure Integration Runtime. Se o acesso for restrito aos IPs que estão aprovados nas regras de firewall, você poderá adicionar IPs do Azure Integration Runtime à lista de permissões.

Você também pode usar o recurso de runtime de integração da rede virtual gerenciada no Azure Data Factory para acessar a rede local sem instalar e configurar um runtime de integração auto-hospedada.

Para obter mais informações sobre os mecanismos de segurança de rede e as opções compatíveis com o Data Factory, consulte Estratégias de acesso a dados.

O runtime de integração fornece um driver interno do Amazon RDS para Oracle. Portanto, você não precisa instalar manualmente um driver quando você copia dados do Amazon RDS para Oracle.

Introdução

Para executar a atividade de cópia com um pipeline, você pode usar uma das seguintes ferramentas ou SDKs:

Criar um serviço vinculado ao Amazon RDS para Oracle usando a interface do usuário

Use as etapas abaixo para criar um serviço vinculado ao Amazon RDS para Oracle na interface do usuário do portal do Azure.

  1. Navegue até a guia Gerenciar no workspace do Azure Data Factory ou do Synapse e selecione Serviços Vinculados. Depois, clique em Novo:

  2. Pesquise Amazon RDS para Oracle e selecione o conector do Amazon RDS para Oracle.

    Captura de tela do conector Amazon RDS para Oracle.

  3. Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.

    Captura de tela da configuração de serviço vinculado para Amazon RDS para Oracle.

Detalhes da configuração do conector

As seções a seguir fornecem detalhes sobre as propriedades usadas para definir entidades específicas do conector do Amazon RDS para Oracle.

Propriedades do serviço vinculado

O Amazon RDS para o conector Oracle versão 2.0 dá suporte ao TLS 1.3. Consulte esta seção para atualizar a sua versão do conector do Amazon RDS para Oracle a partir da versão 1.0. Para obter detalhes sobre as propriedades, consulte as seções correspondentes.

Versão 2.0

O serviço vinculado do Amazon RDS para Oracle dá suporte às seguintes propriedades ao aplicar a versão 2.0:

Propriedade Descrição Obrigatório
tipo A propriedade type precisa ser definida como: AmazonRdsForOracle. Sim
versão A versão que você especifica. O valor é 2.0. Sim
servidor A localização do Amazon RDS para o banco de dados Oracle ao qual você deseja se conectar. Você pode consultar a configuração de propriedade do servidor para especificá-la. Sim
tipoDeAutenticação Tipo de autenticação para se conectar ao banco de dados Amazon RDS para Oracle. Somente a autenticação básica tem suporte agora. Sim
nome de usuário O nome de usuário do Amazon RDS para Oracle Database. Sim
senha A senha do banco de dados do Amazon RDS para Oracle. Marque esse campo como SecureString para armazená-lo com segurança. Você também pode referenciar um segredo armazenado no Azure Key Vault. Sim
connectVia O runtime de integração a ser usado para se conectar ao armazenamento de dados. Saiba mais na seção Pré-requisitos. Se não especificado, o Azure Integration Runtime padrão será usado. Não

Mais propriedades de conexão que você pode definir no serviço vinculado de acordo com seu caso:

Propriedade Descrição Obrigatório Valor padrão
cliente de criptografia Especifica o comportamento do cliente de criptografia. Os valores com suporte são accepted, rejected, requestedou required. Tipo: cadeia de caracteres Não required
encryptionTypesClient Especifica os algoritmos de criptografia que o cliente pode usar. Os valores com suporte são AES128, , AES192, AES256, 3DES112, 3DES168. Tipo: cadeia de caracteres Não (AES256)
cryptoChecksumClient Especifica o comportamento desejado de integridade dos dados quando esse cliente se conecta a um servidor. Os valores com suporte são accepted, rejected, requestedou required. Tipo: cadeia de caracteres Não required
cryptoChecksumTypesClient Especifica os algoritmos de soma de verificação de criptografia que o cliente pode usar. Os valores com suporte sãoSHA1, , SHA256, SHA384. SHA512 Tipo: cadeia de caracteres Não (SHA512)
initialLobFetchSize Especifica o valor que a origem busca inicialmente para colunas LOB. Tipo: int Não 0
fetchSize Especifica o número de bytes que o driver aloca para buscar os dados em uma viagem de ida e volta do banco de dados. Tipo: int Não 10 MB
statementCacheSize Especifica o número de cursores ou instruções a serem armazenadas em cache para cada conexão de banco de dados. Tipo: int Não 0
initializationString Especifica um comando que é emitido imediatamente após a conexão com o banco de dados para gerenciar as configurações da sessão. Tipo: cadeia de caracteres Não nulo
enableBulkLoad Especifica se é necessário usar a cópia em massa ou a inserção em lote ao carregar dados no banco de dados. Tipo: booliano Não verdadeiro
supportV1DataTypes Especifica se os mapeamentos de tipo de dados da versão 1.0 devem ser usados. Não defina isso como verdadeiro, a menos que você queira manter a compatibilidade com os mapeamentos de tipo de dados da versão 1.0. Tipo: booliano Não, essa propriedade é apenas para uso de compatibilidade com versões anteriores falso
fetchTswtzAsTimestamp Especifica se o driver retorna o valor da coluna com o tipo de dados TIMESTAMP WITH TIME ZONE como DateTime ou cadeia de caracteres. Essa configuração será ignorada se supportV1DataTypes não for true. Tipo: booliano Não, essa propriedade é apenas para uso de compatibilidade com versões anteriores verdadeiro

Exemplo:

{
    "name": "AmazonRdsForOracleLinkedService",
    "properties": {
        "type": "AmazonRdsForOracle",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>", 
            "username": "<user name>", 
            "password": "<password>", 
            "authenticationType": "<authentication type>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Exemplo: armazenar a senha no Azure Key Vault

{
    "name": "AmazonRdsForOracleLinkedService",
    "properties": {
        "type": "AmazonRdsForOracle",
        "version": "2.0",
        "typeProperties": {
            "server": "<server name>", 
            "username": "<user name>", 
            "authenticationType": "<authentication type>",
            "password": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "<Azure Key Vault linked service name>",
                    "type": "LinkedServiceReference"
                }, 
                "secretName": "<secretName>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Configuração da propriedade server

Para a propriedade server, você pode especificar em um dos três formatos a seguir:

Formato Exemplo
Descritor da Conexão (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales.us.acme.com)))
Nomeação Easy Connect (Plus) salesserver1:1521/sales.us.example.com
Nome do Oracle Net Services (TNS Alias) (somente para o runtime de integração auto-gerenciada) vendas

A lista a seguir mostra os parâmetros com suporte usados em server. Se você usar parâmetros que não estão na lista a seguir, sua conexão falhará.

  • Ao usar o runtime de integração do Azure:

    HOST
    PORTO
    PROTOCOLO
    SERVICE_NAME
    SID
    INSTANCE_NAME
    SERVER
    CONNECT_TIMEOUT
    RETRY_COUNT
    RETRY_DELAY
    SSL_VERSION
    SSL_SERVER_DN_MATCH
    SSL_SERVER_CERT_DN

  • Ao usar o runtime de integração auto-hospedada:

    HOST
    PORTO
    PROTOCOLO
    ENABLE
    TEMPO_DE_EXPIRAÇÃO
    FAILOVER
    BALANCEAMENTO_DE_CARGA
    RECV_BUF_SIZE
    SDU
    SEND_BUF_SIZE
    SOURCE_ROUTE
    TIPO_DE_SERVIÇO
    COLOCATION_TAG
    CONNECTION_ID_PREFIX
    FAILOVER_MODE
    GLOBAL_NAME
    HS
    INSTANCE_NAME
    LIMITES DA PISCINA
    POOL_CONNECTION_CLASS
    NOME_DA_PISCINA
    Pureza_da_Piscina
    RDB_DATABASE
    SHARDING_KEY
    SHARDING_KEY_ID
    SUPER_SHARDING_KEY
    SERVER
    SERVICE_NAME
    SID
    TUNNEL_SERVICE_NAME
    AUTENTICAÇÃO_DO_CLIENTE_SSL
    SSL_CERTIFICATE_ALIAS
    SSL_CERTIFICATE_THUMBPRINT
    SSL_VERSION
    SSL_SERVER_DN_MATCH
    SSL_SERVER_CERT_DN
    WALLET_LOCATION
    CONNECT_TIMEOUT
    RETRY_COUNT
    RETRY_DELAY
    TRANSPORT_CONNECT_TIMEOUT
    RECV_TIMEOUT (tempo limite de recebimento)
    COMPRESSÃO
    NÍVEIS_DE_COMPRESSÃO

Versão 1.0

O serviço vinculado do Amazon RDS para Oracle dá suporte às seguintes propriedades ao aplicar a versão 1.0:

Propriedade Descrição Obrigatório
tipo A propriedade type precisa ser definida como: AmazonRdsForOracle. Sim
connectionString Especifica as informações necessárias para se conectar à instância do Amazon RDS para Oracle Database.
Você também pode colocar uma senha no Azure Key Vault e extrair a configuração password da cadeia de conexão. Veja os exemplos a seguir e Armazenar credenciais no Azure Key Vault para obter mais detalhes.

Tipo de conexão com suporte: você pode usar a SID do Amazon RDS para Oracle ou o Nome do Serviço do Amazon RDS para Oracle para identificar o banco de dados:
-Se você usar a SID:Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;
-Se você usar Service Name:Host=<host>;Port=<port>;ServiceName=<servicename>;User Id=<username>;Password=<password>;
Para opções de avançadas de conexão nativa do Amazon RDS para Oracle, você pode optar por adicionar uma entrada no arquivo TNSNAMES.ORA no servidor do Amazon RDS para Oracle e, no serviço vinculado do Amazon RDS para Oracle, escolher usar o tipo de conexão do Nome do Serviço do Amazon RDS para Oracle e configurar o nome do serviço correspondente.
Sim
connectVia O runtime de integração a ser usado para se conectar ao armazenamento de dados. Saiba mais na seção Pré-requisitos. Se não especificado, o Azure Integration Runtime padrão será usado. Não

Se tiver várias instâncias do Amazon RDS para Oracle para o cenário de failover, você poderá criar o serviço vinculado do Amazon RDS para Oracle e preencher o host primário, a porta, o nome de usuário, a senha etc., e adicionar novas “Propriedades de conexão adicionais” com o nome de propriedade sendo AlternateServers e o valor sendo (HostName=<secondary host>:PortNumber=<secondary port>:ServiceName=<secondary service name>). Preste atenção aos colchetes e aos dois pontos (:) como separador. Por exemplo, o seguinte valor de servidores alternativos define dois servidores de banco de dados alternativos para failover de conexão: (HostName=AccountingAmazonRdsForOracleServer:PortNumber=1521:SID=Accounting,HostName=255.201.11.24:PortNumber=1522:ServiceName=ABackup.NA.MyCompany).

Mais propriedades de conexão que você pode definir na cadeia de conexão de acordo com o caso:

Propriedade Descrição Valores permitidos
ArraySize O número de bytes que o conector pode buscar em uma única viagem de ida e volta na rede. Por exemplo, ArraySize=‭10485760‬.

Valores mais altos aumentam a taxa de transferência, reduzindo o número de vezes para buscar dados na rede. Valores mais baixos aumentam o tempo de resposta, pois a espera para o servidor transmitir dados é mais curta.
Um inteiro de 1 a 4294967296 (4 GB). O valor padrão é 60000. O valor 1 não define o número de bytes, mas indica alocar espaço para exatamente uma linha de dados.

Para habilitar a criptografia na conexão do Amazon RDS para Oracle, há duas opções:

  • Para usar a criptografia 3DES (DES triplo) e a criptografia AES (Advanced Encryption Standard), no lado do servidor do Amazon RDS para OAS (Oracle Advanced Security) e defina as configurações de criptografia. Para obter detalhes, veja esta documentação da Oracle. O conector ADF (Application Development Framework) do Amazon RDS para Oracle negocia automaticamente o método de criptografia para usar aquele que você configura no OAS ao estabelecer a conexão com o Amazon RDS para Oracle.

  • Para usar o TLS:

    1. Obtenha as informações do certificado TLS/SSL. Obtenha as informações de certificado codificado em DER (Distinguished Encoding Rules) do certificado TLS/SSL e salve a saída (----- Begin Certificate … End Certificate -----) como um arquivo de texto.

      openssl x509 -inform DER -in [Full Path to the DER Certificate including the name of the DER Certificate] -text
      

      Exemplo: extrair informações de certificado de DERcert.cer; em seguida, salvar a saída em cert.txt.

      openssl x509 -inform DER -in DERcert.cer -text
      Output:
      -----BEGIN CERTIFICATE-----
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXX
      -----END CERTIFICATE-----
      
    2. Crie o keystore ou o truststore. O comando a seguir cria o arquivo truststore, com ou sem uma senha no formato PKCS-12.

      openssl pkcs12 -in [Path to the file created in the previous step] -out [Path and name of TrustStore] -passout pass:[Keystore PWD] -nokeys -export
      

      Exemplo: crie um arquivo truststore, PKCS12 denominado MyTrustStoreFile com uma senha.

      openssl pkcs12 -in cert.txt -out MyTrustStoreFile -passout pass:ThePWD -nokeys -export  
      
    3. Coloque o arquivo truststore no computador IR auto-hospedado. Por exemplo, coloque o arquivo em C:\MyTrustStoreFile.

    4. No serviço, configure a cadeia de conexão do Amazon RDS para Oracle com EncryptionMethod=1 e o valor correspondente de TrustStore/TrustStorePassword. Por exemplo, Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore=C:\\MyTrustStoreFile;TrustStorePassword=<trust_store_password>.

Exemplo:

{
    "name": "AmazonRdsForOracleLinkedService",
    "properties": {
        "type": "AmazonRdsForOracle",
        "typeProperties": {
            "connectionString": "Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Exemplo: armazenar a senha no Azure Key Vault

{
    "name": "AmazonRdsForOracleLinkedService",
    "properties": {
        "type": "AmazonRdsForOracle",
        "typeProperties": {
            "connectionString": "Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Propriedades do conjunto de dados

Esta seção fornece uma lista das propriedades com suporte do conjunto de dados do Amazon RDS para Oracle. Para obter uma lista completa das seções e propriedades disponíveis para definir os conjuntos de dados, confira Conjuntos de dados.

Para copiar dados do Amazon RDS para Oracle, defina a propriedade type do conjunto de dados como AmazonRdsForOracleTable. Há suporte para as seguintes propriedades.

Propriedade Descrição Obrigatório
tipo A propriedade type do conjunto de dados deve ser definida como AmazonRdsForOracleTable. Sim
esquema Nome do esquema. Não
tabela Nome da tabela/exibição. Não
nome da tabela Nome da tabela/exibição com esquema. Essa propriedade é compatível com versões anteriores. Para uma nova carga de trabalho, use schema e table. Não

Exemplo:

{
    "name": "AmazonRdsForOracleDataset",
    "properties":
    {
        "type": "AmazonRdsForOracleTable",
        "schema": [],
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        },
        "linkedServiceName": {
            "referenceName": "<Amazon RDS for Oracle linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Propriedades da atividade de cópia

Esta seção fornece uma lista das propriedades com suporte da fonte do Amazon RDS para Oracle. Para obter uma lista completa das seções e propriedades disponíveis para definir as atividades, veja Pipelines.

Amazon RDS para Oracle como origem

Dica

Para carregar dados do Amazon RDS para Oracle com eficiência usando o particionamento de dados, saiba mais na seção Cópia paralela do Amazon RDS para Oracle.

Para copiar dados do Amazon RDS para Oracle, defina o tipo de fonte na atividade Copy como AmazonRdsForOracleSource. As propriedades a seguir têm suporte na seção source da atividade de cópia.

Propriedade Descrição Obrigatório
tipo A propriedade type da fonte da atividade Copy deve ser definida como AmazonRdsForOracleSource. Sim
oracleReaderQuery Utiliza a consulta SQL personalizada para ler os dados. Um exemplo é "SELECT * FROM MyTable". Observe que a consulta não deve terminar com um ponto-e-vírgula (;).
Ao habilitar a carga particionada, você precisa vincular todos os parâmetros de partição internos correspondentes na consulta. Para obter exemplos, confira a seção Cópia paralela do Amazon RDS para Oracle.
Não
converterDecimalParaInteiro O tipo NUMBER no Amazon RDS para Oracle com escala zero ou não especificada será convertido em um inteiro correspondente. Os valores permitidos são true e false (padrão).
Se você estiver usando o Amazon RDS para Oracle versão 2.0, essa propriedade só poderá ser definida quando supportV1DataTypes for true.
Não
opçõesDePartição Especifica as opções de particionamento de dados usadas para carregar dados do Amazon RDS para Oracle.
Os valores permitidos são: None (padrão), PhysicalPartitionsOfTable e DynamicRange.
Quando uma opção de partição estiver habilitada (ou seja, não None), o grau de paralelismo para carregar dados simultaneamente de um banco de dados Amazon RDS para Oracle será controlado pela configuração parallelCopies na atividade copy.
Não
ConfiguraçõesDePartição Especifique o grupo de configurações para o particionamento de dados.
Aplique quando a opção de partição não for None.
Não
partitionNames A lista de partições físicas que precisam ser copiadas.
Aplicar quando a opção de partição for PhysicalPartitionsOfTable. Se você usar uma consulta para recuperar os dados de origem, conecte ?AdfTabularPartitionName na cláusula WHERE. Para obter um exemplo, confira a seção Cópia paralela do Amazon RDS para Oracle.
Não
nomeDaColunaDePartição Especifique o nome da coluna de origem no tipo de inteiro que será usado pelo particionamento de intervalo para cópia paralela. Se não especificado, a chave primária da tabela será detectada automaticamente e usada como a coluna de partição.
Aplicar quando a opção de partição for DynamicRange. Se você usar uma consulta para recuperar os dados de origem, conecte ?AdfRangePartitionColumnName na cláusula WHERE. Para obter um exemplo, confira a seção Cópia paralela do Amazon RDS para Oracle.
Não
limite superior da partição O valor máximo da coluna de partição para copiar dados.
Aplicar quando a opção de partição for DynamicRange. Se você usar uma consulta para recuperar os dados de origem, conecte ?AdfRangePartitionUpbound na cláusula WHERE. Para obter um exemplo, confira a seção Cópia paralela do Amazon RDS para Oracle.
Não
partitionLowerBound O valor mínimo da coluna de partição para copiar dados.
Aplicar quando a opção de partição for DynamicRange. Se você usar uma consulta para recuperar os dados de origem, conecte ?AdfRangePartitionLowbound na cláusula WHERE. Para obter um exemplo, confira a seção Cópia paralela do Amazon RDS para Oracle.
Não
numberPrecision Especifique o número máximo de dígitos decimais significativos. Os valores permitidos variam de 1 a 256. Define-se como 256 se não especificado.
Essa propriedade tem suporte no Amazon RDS para Oracle versão 2.0. Aplica-se apenas aos tipos NUMBER que não têm precisão e escala definidas explicitamente no banco de dados Oracle. Pode ser definido quando supportV1DataTypes não é true. Se você usar o runtime de integração auto-hospedada, sua versão deverá ser 5.56 ou superior.
Não
numberScale Especifique o número de dígitos após o ponto decimal. Os valores permitidos variam de 0 a 130 e devem ser menores ou iguais à precisão. O padrão é 130 se não for especificado.
Essa propriedade tem suporte no Amazon RDS para Oracle versão 2.0. Aplica-se apenas aos tipos NUMBER que não têm precisão e escala definidas explicitamente no banco de dados Oracle. Pode ser definido quando supportV1DataTypes não é true. Se você usar o runtime de integração auto-hospedada, sua versão deverá ser 5.56 ou superior.
Não

Exemplo: copiar dados usando uma consulta básica sem partição

"activities":[
    {
        "name": "CopyFromAmazonRdsForOracle",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Amazon RDS for Oracle input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AmazonRdsForOracleSource",
                "convertDecimalToInteger": false,
                "oracleReaderQuery": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Cópia paralela do Amazon RDS para Oracle

O conector do Amazon RDS para Oracle fornece particionamento de dados interno para copiar dados do Oracle em paralelo. Você pode encontrar opções de particionamento de dados na guia Origem da atividade de cópia.

Captura de tela das opções de partição.

Quando você habilita a cópia particionada, o serviço executa consultas paralelas com relação à sua fonte do Amazon RDS para Oracle para carregar dados por partições. O grau paralelo é controlado pela configuração do parallelCopies na atividade de cópia. Por exemplo, se você definir parallelCopies como quatro, o serviço gerará e executará simultaneamente quatro consultas com base na opção de partição especificada e nas configurações e cada consulta recuperará uma parte dos dados do banco de dados do Amazon RDS para Oracle.

É recomendável habilitar a cópia paralela com o particionamento de dados, especialmente quando você carrega grandes quantidades de dados do banco de dados do Amazon RDS para Oracle. Veja a seguir as configurações sugeridas para cenários diferentes. Ao copiar dados para o armazenamento de dados baseado em arquivo, recomendamos gravá-los em uma pasta como vários arquivos (apenas especifique o nome da pasta) para ter um desempenho melhor do que gravar em um arquivo.

Cenário Configurações sugeridas
Carregamento completo de uma tabela grande com partições físicas. Opção de partição: partições físicas da tabela.

Durante a execução, o serviço detecta automaticamente as partições físicas e copia os dados por partição.
Carregamento completo de uma tabela grande, sem partições físicas e com uma coluna de inteiro ou para o particionamento de dados. Opções de partição: partição de intervalo dinâmico.
Coluna de partição: especifique a coluna usada para particionar dados. Se não for especificada, a coluna de chave primária será usada.
Carregue uma grande quantidade de dados usando uma consulta personalizada, com partições físicas. Opção de partição: partições físicas da tabela.
Consulta: SELECT * FROM <TABLENAME> PARTITION("?AdfTabularPartitionName") WHERE <your_additional_where_clause>.
Nome da partição: especifique os nomes de partição dos quais copiar dados. Se não for especificado, o serviço detectará automaticamente as partições físicas na tabela que você especificou no conjunto de dados do Amazon RDS para Oracle.

Durante a execução, o serviço substitui ?AdfTabularPartitionName pelo nome real da partição e envia ao Amazon RDS para Oracle.
Carregue uma grande quantidade de dados usando uma consulta personalizada, sem partições físicas, com uma coluna de inteiro para o particionamento de dados. Opções de partição: partição de intervalo dinâmico.
Consulta: SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>.
Coluna de partição: especifique a coluna usada para particionar dados. Você pode particionar em relação à coluna com tipo de dados Integer.
Limite superior da partição e Limite inferior da partição: especifique se quiser filtrar a coluna de partição para recuperar dados somente entre os intervalos inferior e superior.

Durante a execução, o serviço substitui ?AdfRangePartitionColumnName, ?AdfRangePartitionUpbound e ?AdfRangePartitionLowbound pelo nome real da coluna e os intervalos de valores de cada partição e envia ao Amazon RDS para Oracle.
Por exemplo, se a coluna de partição "ID" for definida com o limite inferior de 1 e o limite superior de 80, com a cópia paralela definida como 4, o serviço recuperará dados por 4 partições. Suas IDs estão entre [1, 20], [21, 40], [41, 60] e [61, 80], respectivamente.

Dica

Ao copiar dados de uma tabela não particionada, você pode usar a opção de partição “Intervalo dinâmico” para particionar em uma coluna de inteiros. Se os dados de origem não tiverem esse tipo de coluna, você poderá aproveitar a função ORA_HASH na consulta de origem para gerar uma coluna e usá-la como coluna de partição.

Exemplo: consulta com partições físicas

"source": {
    "type": "AmazonRdsForOracleSource",
    "query": "SELECT * FROM <TABLENAME> PARTITION(\"?AdfTabularPartitionName\") WHERE <your_additional_where_clause>",
    "partitionOption": "PhysicalPartitionsOfTable",
    "partitionSettings": {
        "partitionNames": [
            "<partitionA_name>",
            "<partitionB_name>"
        ]
    }
}

Exemplo: consulta com a partição do intervalo dinâmico

"source": {
    "type": "AmazonRdsForOracleSource",
    "query": "SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column>",
        "partitionLowerBound": "<lower_value_of_partition_column>"
    }
}

Mapeamento de tipo de dados para o Amazon RDS para Oracle

Quando você copia dados de e para o Amazon RDS para Oracle, os mapeamentos de tipo de dados provisórios a seguir são usados dentro do serviço. Para saber mais sobre como a atividade Copy mapeia o tipo de dados e esquema de origem para o coletor, consulte Mapeamentos de tipo de dados e esquema.

Amazon RDS para tipo de dados Oracle Tipo de dados de serviço provisório (para a versão 2.0) Tipo de dados de serviço provisório (para a versão 1.0)
BFILE Byte[] Byte[]
BINARY_FLOAT Solteiro Solteiro
BINARY_DOUBLE Double Double
BLOB Byte[] Byte[]
CHAR fio fio
CLOB fio fio
DATE Data e Hora Data e Hora
FLOAT (P < 16) Double Double
FLOAT (P >= 16) Decimal Double
INTERVALO ANO A MÊS Int64 fio
INTERVAL DAY TO SECOND TimeSpan fio
LONG fio fio
LONG RAW Byte[] Byte[]
NCHAR fio fio
NCLOB fio fio
NUMBER (p,s) Int16, Int32, Int64, Double, Single, Decimal Decimal, String (se p > 28)
NÚMERO sem precisão e escala Decimal Double
NVARCHAR2 fio fio
RAW Byte[] Byte[]
TIMESTAMP Data e Hora Data e Hora
TIMESTAMP WITH LOCAL TIME ZONE Data e Hora Data e Hora
CARIMBO DE DATA/HORA COM FUSO HORÁRIO DateTimeOffset Data e Hora
VARCHAR2 fio fio
XMLTYPE fio fio

Observação

NUMBER(p,s) é mapeado para o tipo de dados de serviço provisório apropriado, dependendo da precisão (p) e da escala (s).

Pesquisar propriedades de atividade

Para saber detalhes sobre as propriedades, verifique Pesquisar atividade.

Atualize o conector do Amazon RDS para Oracle

Aqui estão as etapas que ajudam você a atualizar o conector do Amazon RDS para Oracle:

  1. Na página Editar serviço vinculado , selecione a versão 2.0 e configure o serviço vinculado referindo-se às propriedades do serviço vinculado versão 2.0.

    Para as propriedades relacionadas à autenticação, incluindo nome de usuário e senha, especifique os valores originais nos campos correspondentes na versão 2.0. Outras propriedades de conexão, como host, porta e Amazon RDS para Oracle Service Name/Amazon RDS para Oracle SID na versão 1.0, agora são parâmetros da server propriedade na versão 2.0.

    Por exemplo, se você configurar o serviço vinculado da versão 1.0, conforme mostrado abaixo:

    Captura de tela do serviço vinculado versão 1.0.

    { 
        "name": "AmazonRdsForOracleLinkedService", 
        "properties": { 
            "type": "AmazonRdsForOracle", 
            "typeProperties": { 
                "connectionString": "host=amazonrdsfororaclesample.com;port=1521;servicename=db1" 
            }, 
            "connectVia": { 
                "referenceName": "<name of Integration Runtime>", 
                "type": "IntegrationRuntimeReference" 
            } 
        } 
    }
    

    A configuração de serviço vinculado da versão 2.0 idêntica usando a Nomenclatura do Easy Connect (Plus) é:

    Captura de tela do serviço vinculado usando a nomenclatura do conector fácil (Plus).

    { 
        "name": "AmazonRdsForOracleLinkedService", 
        "properties": { 
            "type": "AmazonRdsForOracle", 
            "version": "2.0", 
            "typeProperties": { 
                "server": "amazonrdsfororaclesample.com:1521/db1",  
                "username": "<user name>",  
                "password": "<password>",  
                "authenticationType": "<authentication type>" 
            }, 
            "connectVia": { 
                "referenceName": "<name of Integration Runtime>", 
                "type": "IntegrationRuntimeReference" 
            } 
        } 
    } 
    

    A configuração de serviço vinculada da versão 2.0 (versão prévia) idêntica usando oDescritor do Conector é:

    Captura de tela do serviço vinculado usando o descritor do conector.

    { 
        "name": "AmazonRdsForOracleLinkedService", 
        "properties": { 
            "type": "AmazonRdsForOracle", 
            "version": "2.0", 
            "typeProperties": { 
                "server": "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST= amazonrdsfororaclesample.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db1)))",  
                "username": "<user name>",  
                "password": "<password>",  
                "authenticationType": "<authentication type>" 
            }, 
            "connectVia": { 
                "referenceName": "<name of Integration Runtime>", 
                "type": "IntegrationRuntimeReference" 
            } 
        } 
    } 
    

    Dica

    O Azure Key Vault tem suporte para a server propriedade. Você pode editar o JSON do serviço vinculado para adicionar a referência do Azure Key Vault, conforme mostrado abaixo:
    Captura de tela do uso do Azure Key Vault no servidor.

    Observe que:

    • Se você usar o Nome do Serviço Oracle na versão 1.0, poderá usar a Nomenclatura do Easy Connect (Plus) ou o Descritor do Conector como o formato do servidor na versão 2.0.

    • Se você usar o Oracle SID na versão 1.0, precisará usar o Descritor do Conector como o formato de servidor na versão 2.0.

    • Para algumas propriedades de conexão adicionais na versão 1.0, fornecemos propriedades ou parâmetros alternativos na server propriedade na versão 2.0. Você pode consultar a tabela abaixo para atualizar as propriedades da versão 1.0.

      Versão 1.0 Versão 2.0
      método de criptografia PROTOCOL (parâmetro em server)
      tnsnamesfile TNS_ADMIN (variável de ambiente com suporte no runtime de integração auto-hospedada)
      servername servidor
      enablebulkload
      Valor: 1, 0
      enableBulkLoad
      Valor: verdadeiro, falso
      fetchtswtzastimestamp
      Valor: 1, 0
      fetchTswtzAsTimestamp
      Valor: verdadeiro, falso
      servidores alternativos DESCRIPTION_LIST (parâmetro em server)
      ArraySize fetchSize
      cachedcursorlimit statementCacheSize
      connectionretrycount RETRY_COUNT (parâmetro em server)
      initializationstring initializationString
      tempo limite de login CONNECT_TIMEOUT (parâmetro em server)
      versão do criptoprotocolo SSL_VERSION (parâmetro em server)
      truststore WALLET_LOCATION (parâmetro em server)

      Por exemplo, se você usar alternateservers na versão 1.0, poderá definir o DESCRIPTION_LIST parâmetro na propriedade do servidor na versão 2.0:

      Serviço vinculado da versão 1.0 usando alternateservers:

      {
          "name": "AmazonRdsForOracleV1",
          "properties": {
              "type": "AmazonRdsForOracle",
              "typeProperties": {
                  "connectionString": "host=amazonrdsfororaclesample.com;port=1521;servicename=db1;alternateservers=(HostName= amazonrdsfororaclesample2.com:PortNumber=1521:SID=db2,HostName=255.201.11.24:PortNumber=1522:ServiceName=db3)"
              }
          }
      }
      

      Serviço vinculado da versão 2.0 idêntico usando o parâmetro DESCRIPTION_LIST no Descritor do Conector:

      {
          "name": "AmazonRdsForOracleV2",
          "properties": {
              "type": "AmazonRdsForOracle",
              "version": "2.0",
              "typeProperties": {
                  "server": "(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=amazonrdsfororaclesample.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db1)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=amazonrdsfororaclesample2.com)(PORT=1521))(CONNECT_DATA=(SID=db2)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=255.201.11.24)(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=db3))))",
                  "username": "<user name>",  
                  "password": "<password>",  
                  "authenticationType": "<authentication type>" 
              }
          }
      }
      
  2. O mapeamento de tipo de dados para o Amazon RDS para o serviço vinculado Oracle versão 2.0 é diferente do da versão 1.0. Para saber mais sobre o mapeamento de tipo de dados mais recente, consulte o mapeamento de tipo de dados para o Amazon RDS para Oracle.

    Uma propriedade supportV1DataTypes de conexão adicional na versão 2.0 pode reduzir as dificuldades de atualização causadas por alterações de tipo de dados. Definir essa propriedade para true garantir que o tipo de dados na versão 2.0 permaneça consistente com a versão 1.0.

Diferenças entre o Amazon RDS para Oracle versão 2.0 e a versão 1.0

O Amazon RDS para o conector Oracle versão 2.0 oferece novas funcionalidades e é compatível com a maioria dos recursos da versão 1.0. A tabela a seguir mostra as diferenças de recursos entre a versão 2.0 e a versão 1.0.

Versão 2.0 Versão 1.0
Os mapeamentos a seguir são usados do Amazon RDS para tipos de dados Oracle para tipos de dados de serviço provisórios usados pelo serviço internamente.

NUMBER(p,s) –> Int16, Int32, Int64, Double, Single, Decimal
FLOAT(p)-> Duplo ou Decimal com base em sua precisão
NÚMERO –> Decimal
CARIMBO DE DATA/HORA COM FUSO HORÁRIO -> DateTimeOffset
INTERVALO DE ANO PARA MÊS -> Int64
INTERVALO DE DIA A SEGUNDO -> TimeSpan
Os mapeamentos a seguir são usados do Amazon RDS para tipos de dados Oracle para tipos de dados de serviço provisórios usados pelo serviço internamente.

NUMBER(p,s) -> Decimal ou String com base na sua precisão
FLOAT(p)-> Duplo
NUMBER -> Duplo
CARIMBO DE DATA/HORA COM FUSO HORÁRIO -> DateTime
INTERVAL YEAR TO MONTH - >String
INTERVAL DAY TO SECOND - > String>
É suportado o convertDecimalToInteger na cópia da origem quando supportV1DataTypes é definido como true. Suporte convertDecimalToInteger na origem da cópia. 
Suporte ao TLS 1.3. TLS 1.3 não é compatível.

Para obter uma lista dos armazenamentos de dados com suporte como coletores e fontes da atividade de cópia, confira os Armazenamentos de dados com suporte.