Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
APLICA-SE A: Azure Data Factory
Azure Synapse Analytics
Gorjeta
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!
Este artigo descreve como usar a atividade de cópia no Azure Data Factory para copiar dados de e para um banco de dados Oracle. Ele se baseia na visão geral da atividade de cópia.
Importante
O conector Oracle versão 2.0 fornece suporte nativo aprimorado à Oracle. Se você estiver usando o conector Oracle versão 1.0 em sua solução, atualize o conector Oracle antes de 31 de outubro de 2025. Consulte esta seção para obter detalhes sobre a diferença entre a versão 2.0 e a versão 1.0.
Capacidades suportadas
Este conector Oracle é suportado para os seguintes recursos:
Capacidades suportadas | IR |
---|---|
Atividade de cópia (origem/coletor) | (1) (2) |
Atividade de Pesquisa | (1) (2) |
Atividade de script | (1) (2) |
(1) Tempo de execução de integração do Azure (2) Tempo de execução de integração auto-hospedado
Para obter uma lista de armazenamentos de dados suportados como fontes ou coletores pela atividade de cópia, consulte a tabela Armazenamentos de dados suportados.
Especificamente, este conector Oracle suporta:
- As seguintes versões de um banco de dados Oracle para a versão 2.0:
- Oracle Database 19c e versões superiores
- Oracle Database 18c e versões posteriores
- Oracle Database 12c e superiores
- As seguintes versões de um banco de dados Oracle para a versão 1.0:
- Oracle 19c R1 (19.1) e superior
- Oracle 18c R1 (18.1) e superior
- Oracle 12c R1 (12.1) e superior
- Oracle 11g R1 (11.1) e superior
- Oracle 10g R1 (10.1) e superior
- Oracle 9i R2 (9.2) e superior
- Oracle 8i R3 (8.1.7) e superior
- Serviço Oracle Database Cloud Exadata
- Cópia paralela de uma fonte Oracle. Consulte a seção Cópia paralela do Oracle para obter detalhes.
Nota
O servidor proxy Oracle não é suportado.
Pré-requisitos
Se seu armazenamento de dados estiver localizado dentro de uma rede local, uma rede virtual do Azure ou a Amazon Virtual Private Cloud, você precisará configurar um tempo de execução de integração auto-hospedado para se conectar a ele.
Se o seu armazenamento de dados for um serviço de dados de nuvem gerenciado, você poderá usar o Tempo de Execução de Integração do Azure. Se o acesso for restrito a IPs 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 tempo de execução de integração de rede virtual gerenciada no Azure Data Factory para acessar a rede local sem instalar e configurar um tempo de execução de integração auto-hospedado.
Para obter mais informações sobre os mecanismos de segurança de rede e as opções suportadas pelo Data Factory, consulte Estratégias de acesso a dados.
O tempo de execução da integração fornece um driver Oracle integrado. Portanto, você não precisa instalar manualmente um driver quando copia dados de e para o Oracle.
Introdução
Para executar a atividade Copiar com um pipeline, você pode usar uma das seguintes ferramentas ou SDKs:
- A ferramenta Copiar dados
- O portal do Azure
- O SDK do .NET
- O SDK do Python
- Azure PowerShell
- A API REST
- O modelo do Azure Resource Manager
Criar um serviço vinculado ao Oracle usando a interface do usuário
Use as etapas a seguir para criar um serviço vinculado ao Oracle na interface do usuário do portal do Azure.
Navegue até a guia Gerenciar em seu espaço de trabalho do Azure Data Factory ou Synapse e selecione Serviços Vinculados e clique em Novo:
Procure Oracle e selecione o conector Oracle.
Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.
Detalhes de configuração do conector
As seções a seguir fornecem detalhes sobre as propriedades usadas para definir entidades específicas para o conector Oracle.
Propriedades do serviço vinculado
O conector Oracle versão 2.0 suporta TLS 1.3. Consulte esta seção para atualizar a versão do conector Oracle da versão 1.0. Para obter os detalhes da propriedade, consulte as seções correspondentes.
Versão 2.0
O serviço vinculado Oracle suporta as seguintes propriedades quando aplicar a versão 2.0:
Propriedade | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type deve ser definida como Oracle. | Sim |
versão | A versão que especificares. O valor é 2.0 . |
Sim |
servidor | O local do banco de dados Oracle ao qual você deseja se conectar. Você pode consultar a configuração da propriedade do servidor para especificá-la. | Sim |
tipo de autenticação | Tipo de autenticação para conexão com o banco de dados Oracle. Apenas a autenticação básica é suportada agora. | Sim |
nome de utilizador | O nome de usuário do banco de dados Oracle. | Sim |
palavra-passe | A senha do banco de dados Oracle. Marque este campo como SecureString para armazená-lo com segurança. Ou, você pode fazer referência a um segredo armazenado no Cofre da Chave do Azure. | Sim |
ConecteVia | O tempo de execução de integração a ser usado para se conectar ao armazenamento de dados. Saiba mais na seção Pré-requisitos . Se não for especificado, o Tempo de Execução de Integração do Azure padrão será usado. | Não |
Você pode definir as seguintes propriedades de conexão adicionais no serviço vinculado, dependendo do seu caso.
Propriedade | Descrição | Obrigatório | Valor predefinido |
---|---|---|---|
cliente de encriptação | Especifica o comportamento do cliente de criptografia. Os valores suportados são accepted , rejected , requested , ou required . Tipo: string |
Não | required |
cliente de tipos de encriptação | Especifica os algoritmos de criptografia que o cliente pode usar. Os valores suportados são AES128 , AES192 , AES256 , 3DES112 , 3DES168 . Tipo: string |
Não | (AES256) |
cryptoChecksumClient | Especifica o comportamento de integridade de dados desejado quando esse cliente se conecta a um servidor. Os valores suportados são accepted , rejected , requested , ou required . Tipo: string |
Não | required |
cryptoChecksumTypesClient | Especifica os algoritmos de soma de verificação de criptografia que o cliente pode usar. Os valores suportados são SHA1 , SHA256 , SHA384 , SHA512 . Tipo: string |
Não | (SHA512) |
initialLobFetchSize | Especifica a quantidade que a fonte 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 um banco de dados de ida e volta. Tipo: int | Não | 10 MB |
tamanhoDaCacheDeDeclaração | Especifica o número de cursores ou instruções a serem armazenados 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: string | Não | null |
ativarCarregamentoEmMassa | Especifica se a cópia em massa ou a inserção em lote devem ser usadas ao carregar dados no banco de dados. Tipo: booleano | Não | verdadeiro |
supportV1DataTypes | Especifica se os mapeamentos de tipo de dados da versão 1.0 devem ser usados. Não definas isto como verdadeiro, a menos que queiras manter a compatibilidade retroativa com os mapeamentos de tipo de dados da versão 1.0. Tipo: booleano | Não, esta propriedade é apenas para uso de compatibilidade com versões anteriores | falso |
fetchTswtzAsTimestamp (obter Tswtz como timestamp) | Especifica se o driver retorna o valor da coluna com o tipo de dados TIMESTAMP WITH TIME ZONE como DateTime ou string. Essa configuração será ignorada se supportV1DataTypes não for verdadeiro. Tipo: booleano | Não, esta propriedade é apenas para uso de compatibilidade com versões anteriores | verdadeiro |
Exemplo:
{
"name": "OracleLinkedService",
"properties": {
"type": "Oracle",
"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 senha no Cofre da Chave do Azure
{
"name": "OracleLinkedService",
"properties": {
"type": "Oracle",
"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"
}
}
}
server
configuração da propriedade
Para a propriedade server
, pode especificá-la num dos três formatos seguintes:
Formato | Exemplo |
---|---|
Descritor de conexão | (DESCRIÇÃO=(ENDEREÇO=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales.us.acme.com))) |
Nomenclatura Easy Connect (Plus) | salesserver1:1521/sales.us.example.com |
Nome do Oracle Net Services (alias TNS) (somente para o runtime de integração autoalojado) | Vendas |
A lista a seguir mostra os parâmetros suportados usados no server
. Se você usar parâmetros que não estão na lista a seguir, sua conexão falhará.
Ao usar o tempo de execução de integração do Azure:
ANFITRIÃO
PORTO
PROTOCOLO
NOME_DO_SERVIÇO
SID
NOME_INSTÂNCIA
SERVIDOR
TEMPO_DE_CONEXÃO_ESGOTADO
RETRY_COUNT
ATRASO_DE_NOVA_TENTATIVA
VERSÃO_SSL
SSL_SERVER_DN_MATCH
SSL_SERVER_CERT_DNAo utilizar o ambiente de execução de integração autoalojado:
ANFITRIÃO
PORTO
PROTOCOLO
ATIVAR
TEMPO_DE_EXPIRAÇÃO
ATIVAÇÃO PÓS-FALHA
Equilíbrio de carga
RECV_BUF_SIZE
SDU
SEND_BUF_SIZE
ROTA_FONTE
TIPO_DE_SERVIÇO
COLOCATION_TAG
CONNECTION_ID_PREFIX
MODO_DE_REDUNDÂNCIA
GLOBAL_NAME
SH
NOME_INSTÂNCIA
LIMITE DA PISCINA
CLASSE_DE_CONEXÃO_DE_PISCINA
NOME_DA_PISCINA
PUREZA_DA_PISCINA
RDB_DATABASE
CHAVE_DE_FRAGMENTAÇÃO
SHARDING_KEY_ID (Identificador de Chave de Fragmentação)
SUPER_SHARDING_KEY
SERVIDOR
NOME_DO_SERVIÇO
SID
TUNNEL_SERVICE_NAME
AUTENTICAÇÃO_SSL_DO_CLIENTE
Alias_Certificado_SSL
IMPRESSÃO_DIGITAL_DO_CERTIFICADO_SSL
VERSÃO_SSL
SSL_SERVER_DN_MATCH
SSL_SERVER_CERT_DN
LOCALIZAÇÃO_CARTEIRA
TEMPO_DE_CONEXÃO_ESGOTADO
CONTAGEM_DE_REPETIÇÃO
ATRASO_DE_NOVA_TENTATIVA
TRANSPORTE_CONECTAR_TEMPO_ESGOTADO
RECV_TIMEOUT
COMPRESSÃO
NÍVEIS_DE_COMPRESSÃO
Versão 1.0
O serviço vinculado Oracle suporta as seguintes propriedades quando aplicar a versão 1.0:
Propriedade | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type deve ser definida como Oracle. | Sim |
string de conexão | Especifica as informações necessárias para se conectar à instância do Oracle Database. Você também pode colocar uma senha no Cofre de Chaves do Azure e extrair a password configuração da cadeia de conexão. Consulte os seguintes exemplos e Armazenar credenciais no Cofre da Chave do Azure com mais detalhes. Tipo de conexão suportado: Você pode usar o Oracle SID ou o Oracle Service Name para identificar seu banco de dados: - Se você usar SID: Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>; - Se você usar o Nome do Serviço: Host=<host>;Port=<port>;ServiceName=<servicename>;User Id=<username>;Password=<password>; Para opções avançadas de conexão nativa do Oracle, você pode optar por adicionar uma entrada no TNSNAMES. ORA na máquina onde o tempo de execução de integração auto-hospedado está instalado e, no serviço vinculado Oracle, escolha usar o tipo de conexão Oracle Service Name e configure o nome do serviço correspondente. |
Sim |
ConecteVia | O tempo de execução de integração a ser usado para se conectar ao armazenamento de dados. Saiba mais na seção Pré-requisitos . Se não for especificado, o Tempo de Execução de Integração do Azure padrão será usado. | Não |
Gorjeta
Se você receber um erro, "ORA-01025: parâmetro UPI fora do intervalo", e sua versão do Oracle for 8i, adicione WireProtocolMode=1
à sua cadeia de conexão. Em seguida, tente novamente.
Se você tiver várias instâncias Oracle para o cenário de failover, poderá criar o serviço vinculado Oracle e preencher o host primário, a porta, o nome de usuário, a senha, etc., e adicionar uma nova "Propriedades de conexão adicionais" com o nome da propriedade como AlternateServers
e o valor como (HostName=<secondary host>:PortNumber=<secondary port>:ServiceName=<secondary service name>)
- não perca os colchetes e preste atenção aos dois pontos (:
) como separador. Como exemplo, o seguinte valor de servidores alternativos define dois servidores de banco de dados alternativos para failover de conexão: (HostName=AccountingOracleServer: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 por seu caso:
Propriedade | Descrição | Valores permitidos |
---|---|---|
Tamanho do Array | O número de bytes que o conector pode buscar em uma única viagem de ida e volta de rede. Por exemplo, ArraySize=10485760 .Valores maiores aumentam a taxa de transferência, reduzindo o número de vezes para buscar dados na rede. Valores menores aumentam o tempo de resposta, pois há menos atraso esperando que o servidor transmita dados. |
Um inteiro de 1 a 4294967296 (4 GB). O valor predefinido é 60000 . O valor 1 não define o número de bytes, mas indica a alocação de espaço para exatamente uma linha de dados. |
Para habilitar a criptografia na conexão Oracle, você tem duas opções:
Para usar Triple-DES Encryption (3DES) e Advanced Encryption Standard (AES), no lado do servidor Oracle, vá para Oracle Advanced Security (OAS) e defina as configurações de criptografia. Para obter detalhes, consulte esta documentação da Oracle. O conector ADF (Oracle Application Development Framework) negocia automaticamente o método de criptografia para usar aquele que você configura no OAS ao estabelecer uma conexão com o Oracle.
Para usar TLS, configure
truststore
a autenticação do servidor SSL aplicando um dos três métodos a seguir:Método 1 (recomendado):
Instale o certificado TLS/SSL importando-o para o armazenamento de certificados local. O driver Oracle integrado é capaz de carregar o certificado necessário do armazenamento de certificados.
No serviço, configure a cadeia de conexão Oracle com
EncryptionMethod=1
.
Método 2:
Obtenha as informações do certificado TLS/SSL. Obtenha as informações de certificado codificadas por DER (Distinguished Encoding Rules) ou pelo PEM (Privacy Enhanced Mail) do seu certificado TLS/SSL.
openssl x509 -inform (DER|PEM) -in [Full Path to the DER/PEM Certificate including the name of the DER/PEM Certificate] -text
No serviço, configure a cadeia de conexão Oracle com
EncryptionMethod=1
e o valor correspondenteTrustStore
. Por exemplo,Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore= data:// -----BEGIN CERTIFICATE-----<certificate content>-----END CERTIFICATE-----
Nota
- O valor do
TrustStore
campo deve ser prefixado comdata://
. - Ao especificar o conteúdo de vários certificados, especifique o conteúdo de cada certificado entre
-----BEGIN CERTIFICATE-----
e-----END CERTIFICATE-----
. O número de traços (-----
) deve ser o mesmo antes e depois de ambosBEGIN CERTIFICATE
eEND CERTIFICATE
. Por exemplo:
-----BEGIN CERTIFICATE-----<certificate content 1>-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----<certificate content 2>-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----<certificate content 3>-----END CERTIFICATE-----
- O
TrustStore
campo suporta conteúdo de até 8192 caracteres.
- O valor do
Método 3:
Crie o
truststore
arquivo com cifras fortes como AES256.openssl pkcs12 -in [Full Path to the DER/PEM Certificate including the name of the DER/PEM Certificate] -out [Path and name of TrustStore] -passout pass:[Keystore PWD] -keypbe AES-256-CBC -certpbe AES-256-CBC -nokeys -export
Coloque o
truststore
arquivo na máquina de tempo de execução de integração auto-hospedada. Por exemplo, coloque o arquivo emC:\MyTrustStoreFile
.No serviço, configure a cadeia de conexão Oracle com
EncryptionMethod=1
e o valor correspondenteTrustStore
/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": "OracleLinkedService",
"properties": {
"type": "Oracle",
"typeProperties": {
"connectionString": "Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exemplo: armazenar senha no Cofre da Chave do Azure
{
"name": "OracleLinkedService",
"properties": {
"type": "Oracle",
"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 de propriedades suportadas pelo conjunto de dados Oracle. Para obter uma lista completa de seções e propriedades disponíveis para definir conjuntos de dados, consulte Conjuntos de dados.
Para copiar dados de e para o Oracle, defina a propriedade type do conjunto de dados como OracleTable
. As seguintes propriedades são suportadas.
Propriedade | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type do conjunto de dados deve ser definida como OracleTable . |
Sim |
esquema | Nome do esquema. | Não para a fonte, Sim para o lavatório |
tabela | Nome da tabela/vista. | Não para a fonte, Sim para o lavatório |
nome da tabela | Nome da tabela/vista com esquema. Esta propriedade é suportada para compatibilidade com versões anteriores. Para nova carga de trabalho, use schema e table . |
Não para a fonte, Sim para o lavatório |
Exemplo:
{
"name": "OracleDataset",
"properties":
{
"type": "OracleTable",
"schema": [],
"typeProperties": {
"schema": "<schema_name>",
"table": "<table_name>"
},
"linkedServiceName": {
"referenceName": "<Oracle linked service name>",
"type": "LinkedServiceReference"
}
}
}
Propriedades da atividade Copy
Esta seção fornece uma lista de propriedades suportadas pela origem e pelo coletor Oracle. Para obter uma lista completa de seções e propriedades disponíveis para definir atividades, consulte Pipelines.
Oracle como fonte
Gorjeta
Para carregar dados do Oracle de forma eficiente usando o particionamento de dados, saiba mais com a cópia paralela da Oracle.
Para copiar dados do Oracle, defina o tipo de origem na atividade de cópia como OracleSource
. As propriedades a seguir são suportadas na seção copiar fonte de atividade.
Propriedade | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type da fonte de atividade de cópia deve ser definida como OracleSource . |
Sim |
oracleReaderQuery | Use a consulta SQL personalizada para ler dados. Um exemplo é "SELECT * FROM MyTable" .Ao habilitar a carga particionada, você precisa conectar quaisquer parâmetros de partição internos correspondentes em sua consulta. Para obter exemplos, consulte a seção Cópia paralela do Oracle . |
Não |
converterDecimalParaInteiro | O tipo Oracle NUMBER com escala zero ou não especificada será convertido em inteiro correspondente. Os valores permitidos são true e false (padrão). Se você estiver usando o 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 Oracle. Os valores permitidos são: None (padrão), PhysicalPartitionsOfTable e DynamicRange. Quando uma opção de partição está habilitada (ou seja, não None ), o grau de paralelismo para carregar simultaneamente dados de um banco de dados Oracle é controlado pela parallelCopies configuração na atividade de cópia. |
Não |
definições de partição | Especifique o grupo de configurações para particionamento de dados. Aplique quando a opção de partição não None for . |
Não |
nomes de partições | A lista de partições físicas que precisam ser copiadas. Aplique quando a opção de partição for PhysicalPartitionsOfTable . Se você usar uma consulta para recuperar os dados de origem, conecte ?AdfTabularPartitionName a cláusula WHERE. Para obter um exemplo, consulte a seção Cópia paralela do Oracle . |
Não |
nomeDaColunaDePartição | Especifique o nome da coluna de origem no tipo inteiro que será usado pelo particionamento de intervalo para cópia paralela. Se não for especificado, a chave primária da tabela será detetada automaticamente e usada como coluna de partição. Aplique quando a opção de partição for DynamicRange . Se você usar uma consulta para recuperar os dados de origem, conecte ?AdfRangePartitionColumnName a cláusula WHERE. Para obter um exemplo, consulte a seção Cópia paralela do Oracle . |
Não |
partiçãoUpperBound | O valor máximo da coluna de partição para copiar dados. Aplique quando a opção de partição for DynamicRange . Se você usar uma consulta para recuperar os dados de origem, conecte ?AdfRangePartitionUpbound a cláusula WHERE. Para obter um exemplo, consulte a seção Cópia paralela do Oracle . |
Não |
partiçãoLowerBound | O valor mínimo da coluna de partição para copiar dados. Aplique quando a opção de partição for DynamicRange . Se você usar uma consulta para recuperar os dados de origem, conecte ?AdfRangePartitionLowbound a cláusula WHERE. Para obter um exemplo, consulte a seção Cópia paralela do Oracle . |
Não |
Exemplo: copiar dados usando uma consulta básica sem partição
"activities":[
{
"name": "CopyFromOracle",
"type": "Copy",
"inputs": [
{
"referenceName": "<Oracle input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "OracleSource",
"convertDecimalToInteger": false,
"oracleReaderQuery": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Oracle como sumidouro
Para copiar dados para o Oracle, defina o tipo de coletor na atividade de cópia como OracleSink
. As propriedades a seguir são suportadas na seção coletor de atividade de cópia.
Propriedade | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type do coletor de atividade de cópia deve ser definida como OracleSink . |
Sim |
writeBatchSize | Insere dados na tabela SQL quando o tamanho do buffer atinge writeBatchSize .Os valores permitidos são Inteiro (número de linhas). |
Não (o padrão é 10.000) |
writeBatchTimeout | O tempo de espera para que a operação de inserção de lote seja concluída antes que ela atinja o tempo limite. Os valores permitidos são Timepan. Um exemplo é 00:30:00 (30 minutos). |
Não |
pré-CopyScript | Especifique uma consulta SQL para que a atividade de cópia seja executada antes de gravar dados no Oracle em cada execução. Você pode usar essa propriedade para limpar os dados pré-carregados. | Não |
máximo de conexões simultâneas | O limite superior de conexões simultâneas estabelecidas para o armazenamento de dados durante a execução da atividade. Especifique um valor somente quando quiser limitar conexões simultâneas. | Não |
Exemplo:
"activities":[
{
"name": "CopyToOracle",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Oracle output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "OracleSink"
}
}
}
]
Cópia paralela do Oracle
O conector Oracle fornece particionamento de dados integrado para copiar dados do Oracle em paralelo. Você pode encontrar opções de particionamento de dados na guia Origem da atividade de cópia.
Quando você habilita a cópia particionada, o serviço executa consultas paralelas na fonte Oracle para carregar dados por partições. O grau paralelo é controlado pela parallelCopies
configuração 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 e nas configurações de partição especificadas, e cada consulta recuperará uma parte dos dados do banco de dados Oracle.
Sugere-se que habilite a cópia paralela com particionamento de dados, especialmente quando você carrega uma grande quantidade de dados do banco de dados Oracle. A seguir estão sugeridas configurações para diferentes cenários. Ao copiar dados para o armazenamento de dados baseado em arquivo, é recomendável gravar em uma pasta como vários arquivos (especifique apenas o nome da pasta), caso em que o desempenho é melhor do que gravar em um único arquivo.
Cenário | Configurações sugeridas |
---|---|
Carga completa a partir de uma mesa grande, com divisórias físicas. |
Opção de partição: Partições físicas da tabela. Durante a execução, o serviço deteta automaticamente as partições físicas e copia os dados por partições. |
Carga completa a partir de uma tabela grande, sem partições físicas, enquanto com uma coluna inteira para 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 especificado, 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 o(s) nome(s) da(s) partição(ões) de onde copiar os dados. Se não for especificado, o serviço detetará automaticamente as partições físicas na tabela especificada no conjunto de dados Oracle. Durante a execução, o serviço substitui ?AdfTabularPartitionName pelo nome real da partição e envia para a Oracle. |
Carregue uma grande quantidade de dados usando uma consulta personalizada, sem partições físicas, enquanto com uma coluna inteira para 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 contra a coluna com o tipo de dados inteiro. Limite superior da partição e limite inferior da partição: especifique se deseja filtrar a coluna da partição para recuperar dados apenas entre o intervalo inferior e superior. Durante a execução, o serviço substitui ?AdfRangePartitionColumnName , ?AdfRangePartitionUpbound e ?AdfRangePartitionLowbound com o nome da coluna real e intervalos de valores para cada partição, e envia para a Oracle. Por exemplo, se a coluna de partição "ID" estiver definida com o limite inferior como 1 e o limite superior como 80, com cópia paralela definida como 4, o serviço recuperará dados por 4 partições. Os seus IDs situam-se entre [1,20], [21, 40], [41, 60] e [61, 80], respetivamente. |
Gorjeta
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 inteira. Se os dados de origem não tiverem esse tipo de coluna, você poderá aproveitar ORA_HASH função na consulta de origem para gerar uma coluna e usá-la como coluna de partição.
Exemplo: consulta com partição física
"source": {
"type": "OracleSource",
"query": "SELECT * FROM <TABLENAME> PARTITION(\"?AdfTabularPartitionName\") WHERE <your_additional_where_clause>",
"partitionOption": "PhysicalPartitionsOfTable",
"partitionSettings": {
"partitionNames": [
"<partitionA_name>",
"<partitionB_name>"
]
}
}
Exemplo: consulta com partição de intervalo dinâmico
"source": {
"type": "OracleSource",
"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 Oracle
Quando você copia dados de e para o Oracle, os mapeamentos de tipo de dados provisórios a seguir são usados no serviço. Para saber como a atividade de cópia mapeia o esquema de origem e o tipo de dados para o coletor, consulte Mapeamentos de esquema e tipo de dados.
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 | Duplo | Duplo |
BLOB | Byte[] | Byte[] |
CHAR | Cordão | Cordão |
CLOB | Cordão | Cordão |
DATA | Data e Hora | Data e Hora |
FLUTUANTE (P < 16) | Duplo | Duplo |
FLUTUADOR (P >= 16) | Decimal | Duplo |
INTERVALO ANO A MÊS | Int64 | Cordão |
INTERVALO DIA A SEGUNDO | Intervalo de Tempo | Cordão |
LONGO | Cordão | Cordão |
LONGO CRU | Byte[] | Byte[] |
NCHAR | Cordão | Cordão |
NCLOB | Cordão | Cordão |
NÚMERO (p,s) | Int16, Int32, Int64, Simples, Duplo, Decimal | Decimal, String (se p > 28) |
NÚMERO sem precisão e escala | Decimal (256.130) | Duplo |
NVARCHAR2 | Cordão | Cordão |
CRU | Byte[] | Byte[] |
CARIMBO DE DATA/HORA | Data e Hora | Data e Hora |
CARIMBO DE DATA/HORA COM FUSO HORÁRIO LOCAL | Data e Hora | Data e Hora |
CARIMBO DE DATA/HORA COM FUSO HORÁRIO | Desvio de Data e Hora | Data e Hora |
VARCHAR2 | Cordão | Cordão |
XMLTYPE | Cordão | Cordão |
NÚMERO(p,s) é mapeado para o tipo de dados de serviço provisório da versão 2.0 apropriado, dependendo da precisão (p) e da escala(s):
Tipo de dados de serviço provisório | Condição |
---|---|
Int16 | escala <= 0 E (precisão - escala) < 5 |
Int32 | escala <= 0 E 5 <= (precisão - escala) < 10 |
Int64 | escala <= 0 E 10 <= (precisão - escala) < 19 |
Solteiro | precisão < 8 E ((escala <= 0 E (precisão - escala) <= 38) OU (escala > 0 E escala <= 44)) |
Decimal | precisão >= 16 |
Duplo | Se nenhuma das condições acima for cumprida. |
Propriedades da atividade de pesquisa
Para saber detalhes sobre as propriedades, verifique Atividade de pesquisa.
Atualizar o conector Oracle
Aqui estão as etapas que ajudam a atualizar o conector Oracle:
Na página Editar serviço vinculado , selecione 2.0 em Versão e configure o serviço vinculado consultando 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 Oracle Service Name/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 versão 1.0 como mostrado abaixo:
{ "name": "OracleLinkedService", "properties": { "type": "Oracle", "typeProperties": { "connectionString": "host=oraclesample.com;port=1521;servicename=db1" }, "connectVia": { "referenceName": "<name of Integration Runtime>", "type": "IntegrationRuntimeReference" } } }
A configuração idêntica do serviço vinculado da versão 2.0 usando a nomenclatura Easy Connect (Plus) é:
{ "name": "OracleLinkedService", "properties": { "type": "Oracle", "version": "2.0", "typeProperties": { "server": "oraclesample.com:1521/db1", "username": "<user name>", "password": "<password>", "authenticationType": "<authentication type>" }, "connectVia": { "referenceName": "<name of Integration Runtime>", "type": "IntegrationRuntimeReference" } } }
A configuração do serviço de ligação da versão 2.0 idêntica usando o descritor de conector é:
{ "name": "OracleLinkedService", "properties": { "type": "Oracle", "version": "2.0", "typeProperties": { "server": "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST= oraclesample.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db1)))", "username": "<user name>", "password": "<password>", "authenticationType": "<authentication type>" }, "connectVia": { "referenceName": "<name of Integration Runtime>", "type": "IntegrationRuntimeReference" } } }
Gorjeta
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 Cofre da Chave do Azure, conforme mostrado abaixo:
Tenha em atenção que:
Se você usar o Nome do Serviço Oracle na versão 1.0, poderá usar o Easy Connect (Plus) Naming 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 do 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 propriedade na
server
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 encriptação PROTOCOLO (parâmetro em server
)tnsnamesfile TNS_ADMIN (variável de ambiente suportada no tempo de execução de integração auto-hospedada) nome do servidor servidor EnableBulkload
Valor: 1, 0ativarCarregamentoEmMassa
Valor: verdadeiro, falsofetchtswtzastimestamp
Valor: 1, 0fetchTswtzAsTimestamp (obter Tswtz como Timestamp)
Valor: verdadeiro, falsoServidores alternativos DESCRIPTION_LIST (parâmetro em server
)tamanho do array fetchSize limite de cursor em cache tamanhoDaCacheDeDeclaração ContagemDeTentativasDeConexão RETRY_COUNT (parâmetro em server
)InitializationString initializationString tempo limite de início de sessão CONNECT_TIMEOUT (parâmetro em server
)versão do protocolo criptográfico SSL_VERSION (parâmetro em server
)loja de confiança WALLET_LOCATION (parâmetro em server
)Por exemplo, se você usar
alternateservers
na versão 1.0, poderá definir oDESCRIPTION_LIST
parâmetro na propriedade server na versão 2.0:Serviço vinculado da versão 1.0 usando
alternateservers
:{ "name": "OracleV1", "properties": { "type": "Oracle", "typeProperties": { "connectionString": "host=oraclesample.com;port=1521;servicename=db1;alternateservers=(HostName= oraclesample2.com:PortNumber=1521:SID=db2,HostName=255.201.11.24:PortNumber=1522:ServiceName=db3)" } } }
Versão idêntica 2.0 de serviço vinculado usando o parâmetro
DESCRIPTION_LIST
no descritor do conector.{ "name": "OracleV2", "properties": { "type": "Oracle", "version": "2.0", "typeProperties": { "server": "(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oraclesample.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=db1)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oraclesample2.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>" } } }
O mapeamento de tipo de dados para o serviço vinculado Oracle versão 2.0 é diferente daquele para a versão 1.0. Para saber o mapeamento de tipo de dados mais recente, consulte Mapeamento de tipo de dados 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 paratrue
garantir que o tipo de dados na versão 2.0 permaneça consistente com a versão 1.0.
Diferenças entre o Oracle versão 2.0 e versão 1.0
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 dos tipos de dados Oracle para os tipos de dados provisórios utilizados internamente pelo serviço. NÚMERO(p,s) -> Int16, Int32, Int64, Simples, Duplo, Decimal FLOAT(p)-> Duplo ou decimal com base na sua precisão NÚMERO -> Decimal CARIMBO DE DATA/HORA COM FUSO HORÁRIO -> DateTimeOffset INTERVALO ANO A MÊS -> Int64 INTERVALO DIA A SEGUNDO -> TimeSpan |
Os mapeamentos a seguir são usados dos tipos de dados Oracle para os tipos de dados provisórios utilizados internamente pelo serviço. NÚMERO(p,s) -> Decimal ou String com base na sua precisão FLOAT(p)-> Duplo NÚMERO -> Duplo CARIMBO DE DATA/HORA COM FUSO HORÁRIO -> DateTime INTERVALO ANO A MÊS -> String INTERVALO DIA A SEGUNDO -> String |
Suporte a convertDecimalToInteger na cópia de origem quando supportV1DataTypes está definido como true . |
Suporte a convertDecimalToInteger na origem de cópia. |
O uso de ? como um espaço reservado para parâmetros de consulta de atividade de script não é suportado. Você pode usar o parâmetro nomeado (como :paramA ) ou o parâmetro posicional (como :1 ) como substituto. |
Suporte para o uso de ? como um espaço reservado para parâmetros de consulta de atividade de script. |
Suporte TLS 1.3. | TLS 1.3 não é suportado. |
TLS/SSL bidirecional com carteira Oracle SSO é suportado. Para obter mais informações, consulte este artigo | TLS/SSL bidirecional com carteira Oracle não é suportado. |