共用方式為


使用 Azure Data Factory 或 Azure Synapse Analytics,從 Amazon RDS for Oracle 複製資料

適用於:Azure Data Factory Azure Synapse Analytics

秘訣

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用

本文概述如何使用 Azure Data Factory 的複製活動,從 Amazon RDS for Oracle 資料庫複製資料。 本文是以複製活動概觀為依據。

這很重要

Amazon RDS for Oracle 連接器 2.0 版提供增強的原生 Amazon RDS for Oracle 支援。 如果您在解決方案中使用 Amazon RDS for Oracle 連接器 1.0 版,請 升級 Amazon RDS for Oracle 連接器 ,因為 1.0 版處於 終止支援階段。 您的管線將在 2026 年 3 月 31 日之後失敗。 如需 2.0 版與 1.0 版之間的差異詳細資料,請參閱本章節

支援的功能

此 Amazon RDS for Oracle 連接器支援下列功能:

支援的功能 IR
複製活動 (來源/-) ① ②
查閱活動 ① ②

① Azure 整合執行階段 ② 自我裝載整合執行階段

如需複製活動所支援作為來源或接收器的資料存放區清單,請參閱支援的資料存放區表格。

具體而言,此 Amazon RDS for Oracle 連接器支援:

  • 下列版本的 Amazon RDS for Oracle 資料庫為版本 2.0:
    • 適用於 Oracle 19c 和更新版本的 Amazon RDS
    • 適用於 Oracle 18c 和更新版本的 Amazon RDS
    • 適用於 Oracle 12c 和更新版本的 Amazon RDS
    • Amazon RDS for Oracle 11g 及更新版本
  • 下列版本的 Amazon RDS for Oracle 資料庫為版本 1.0:
    • Amazon RDS for Oracle 19c R1 (19.1) 及更新版本
    • Amazon RDS for Oracle 18c R1 (18.1) 及更新版本
    • Amazon RDS for Oracle 12c R1 (12.1) 及更新版本
    • Amazon RDS for Oracle 11g R1 (11.1) 及更新版本
  • 從 Amazon RDS for Oracle 來源平行複製。 如需詳細資訊,請參閱從 Amazon RDS for Oracle 平行複製一節。

附註

不支援 Amazon RDS for Oracle Proxy 伺服器。

先決條件

如果您的資料存放區位於內部部署網路、Azure 虛擬網路或 Amazon 虛擬私人雲端中,則必須設定自我裝載整合執行階段以與其連線。

如果您的資料存放區是受控雲端資料服務,則可使用 Azure Integration Runtime。 如果只能存取防火牆規則中核准的 IP,您可以將 Azure Integration Runtime IP 新增至允許清單。

您也可以使用 Azure Data Factory 中的受控虛擬網路整合執行階段功能來存取內部部署網路,而不需要安裝和設定自我裝載整合執行階段。

如需 Data Factory 支援的網路安全性機制和選項的詳細資訊,請參閱資料存取策略

整合執行階段提供內建的 Amazon RDS for Oracle 驅動程式。 因此,當您從 Amazon RDS for Oracle 複製資料時,不需要手動安裝驅動程式。

開始

若要使用管線執行複製活動,您可以使用下列其中一個工具或 SDK:

使用 UI 建立 Amazon RDS for Oracle 的連結服務

使用下列步驟,以 Azure 入口網站 UI 建立 Amazon RDS for Oracle 的連結服務。

  1. 前往 Azure Data Factory 或 Synapse 工作區的 [管理] 索引標籤,選取 [連結服務],然後按一下 [新增]:

  2. 搜尋 Amazon RDS for Oracle,然後選取 Amazon RDS for Oracle 連接器。

    Amazon RDS for Oracle 連接器的螢幕擷取畫面。

  3. 設定服務詳細資料,測試連線,然後建立新的連結服務。

    Amazon RDS for Oracle 連結服務設定的螢幕擷取畫面。

連接器設定詳細資料

下列各節提供屬性的詳細資料,這些屬性是用來定義 Amazon RDS for Oracle 連接器的專屬實體。

連結服務屬性

Amazon RDS for Oracle 連接器 2.0 版支援 TLS 1.3。 請參閱 本節 ,從 1.0 版升級您的 Amazon RDS for Oracle 連接器版本。 如需屬性詳細資料,請參閱對應的章節。

2.0 版

當套用 2.0 版時,Amazon RDS for Oracle 鏈接服務支援下列屬性:

屬性 描述 必要
型別 類型屬性必須設定為 AmazonRdsForOracle 是的
版本 您指定的版本。 該值為 2.0 是的
伺服器 您要連線到的 Amazon RDS for Oracle 資料庫的位置。 您可以參考 伺服器屬性組態 來指定它。 是的
驗證類型 聯線到 Amazon RDS for Oracle 數據庫的身分驗證類型。 現在僅支援 基本 身份驗證。 是的
使用者名稱 Amazon RDS for Oracle 資料庫使用者名稱名稱。 是的
密碼 適用於 Oracle 資料庫密碼的 Amazon RDS。 將此欄位標記為 SecureString 以將其安全地儲存。 或者,可以參考 Azure Key Vault 中儲存的認證 是的
connectVia 用來連線到資料存放區的整合執行階段。 深入了解必要條件一節。 如果未指定,則會使用預設的 Azure Integration Runtime。

您可以根據案例在連結服務中設定的更多連線屬性:

屬性 描述 必要 預設值
加密客戶端 指定加密用戶端行為。 支援的值為 acceptedrejectedrequestedrequired。 類型:字串 required
encryptionTypesClient 指定用戶端可以使用的加密演算法。 支援的值為 AES128、、AES192AES2563DES1123DES168。 類型:字串 (AES256)
cryptoChecksumClient 指定當此用戶端連線到伺服器時所需的資料完整性行為。 支援的值為 acceptedrejectedrequestedrequired。 類型:字串 required
cryptoChecksumTypesClient 指定用戶端可以使用的加密總和檢查碼演算法。 支援的值為SHA1、、SHA256SHA384SHA512。 類型:字串 (SHA512)
initialLobFetchSize 指定來源最初擷取的 LOB 資料行數量。 類型:int 0
fetchSize 指定驅動程式分配的位元組數量,以便在一次資料庫往返中擷取資料。 類型:int 10 MB
statementCacheSize 指定要針對每個資料庫連線快取的資料指標或陳述式數目。 類型:int 0
initializationString 指定連線到資料庫以管理工作階段設定之後立即發出的命令。 類型:字串 null
enableBulkLoad 指定在將數據載入資料庫時,是否要使用大量複製或批次插入。 類型:布爾值
支援V1資料類型 指定是否要使用 1.0 版數據類型映射。 除非您想要保持與 1.0 版數據類型對應的回溯相容性,否則請勿將此設定為 true。 類型:布爾值 否,此屬性僅供回溯兼容性使用 假的
fetchTswtzAsTimestamp 指定驅動程式是否將 TIMESTAMP WITH TIME ZONE 資料類型的資料行值傳回為 DateTime 或字串。 如果 supportV1DataTypes 不是 true,則會忽略此設定。 類型:布爾值 否,此屬性僅供回溯兼容性使用

範例︰

{
    "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"
        }
    }
}

範例:在 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"
        }
    }
}

server 屬性組態

針對 server 屬性,您可以使用下列三種格式之一來指定它:

格式 範例
連接描述元 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales.us.acme.com)))
Easy Connect (Plus) 命名 salesserver1:1521/sales.us.example.com
Oracle Net Services Name (TNS 別名) (僅適用於自我裝載整合執行階段) 銷售

下列清單顯示 中 server所使用的支持參數。 如果您使用不在下列清單中的參數,聯機會失敗。

  • 使用 Azure 整合執行時環境時:

    HOST
    PORT
    通訊協定
    服務名稱 (SERVICE_NAME)
    SID
    INSTANCE_NAME
    SERVER
    CONNECT_TIMEOUT
    RETRY_COUNT
    RETRY_DELAY
    SSL版本
    SSL_SERVER_DN_MATCH
    SSL_SERVER_CERT_DN

  • 使用自我裝載整合執行階段:

    HOST
    PORT
    通訊協定
    ENABLE
    過期時間
    FAILOVER
    負載平衡
    RECV_BUF_SIZE
    SDU
    SEND_BUF_SIZE
    SOURCE_ROUTE
    服務類型
    COLOCATION_TAG
    CONNECTION_ID_PREFIX
    FAILOVER_MODE
    GLOBAL_NAME
    HS
    INSTANCE_NAME
    泳池邊界
    POOL_CONNECTION_CLASS
    POOL_NAME
    游泳池純度
    RDB數據庫
    SHARDING_KEY
    SHARDING_KEY_ID
    SUPER_SHARDING_KEY
    SERVER
    服務名稱 (SERVICE_NAME)
    SID
    隧道服務名稱
    SSL 用戶端驗證
    SSL_CERTIFICATE_ALIAS
    SSL證書指紋
    SSL版本
    SSL_SERVER_DN_MATCH
    SSL_SERVER_CERT_DN
    錢包位置
    CONNECT_TIMEOUT
    RETRY_COUNT
    RETRY_DELAY
    TRANSPORT_CONNECT_TIMEOUT
    RECV_TIMEOUT
    COMPRESSION
    COMPRESSION_LEVELS

1.0 版

當套用 1.0 版時,Amazon RDS for Oracle 鏈接服務支援下列屬性:

屬性 描述 必要
型別 類型屬性必須設定為 AmazonRdsForOracle 是的
connectionString 指定連線到 Amazon RDS for Oracle Database 執行個體所需的資訊。
您也可以將密碼放在 Azure Key Vault 中,並從連接字串中提取 password 組態。 請參閱下列範例和在 Azure Key Vault 中儲存認證提供的更多詳細資料。

支援的連線類型:您可以使用 Amazon RDS for Oracle SIDAmazon RDS for Oracle 服務名稱來識別您的資料庫:
- 如果您使用 SID:Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;
- 如果您使用服務名稱:Host=<host>;Port=<port>;ServiceName=<servicename>;User Id=<username>;Password=<password>;
針對進階 Amazon RDS for Oracle 原生連線選項,您可以選擇在 Amazon RDS for Oracle 伺服器上的 TNSNAMES.ORA 檔案中新增輸入,並在 Amazon RDS for Oracle 連結服務中選擇使用 Amazon RDS for Oracle 服務名稱連線類型,並設定對應的服務名稱。
是的
connectVia 用來連線到資料存放區的整合執行階段。 深入了解必要條件一節。 如果未指定,則會使用預設的 Azure Integration Runtime。

如果您有多個 Amazon RDS for Oracle 執行個體進行容錯移轉案例,您可以建立 Amazon RDS for Oracle 連結服務,並填入主要主機、連接埠、使用者名稱、密碼等,並以屬性名稱為 和值為 AlternateServers 新增新的(HostName=<secondary host>:PortNumber=<secondary port>:ServiceName=<secondary service name>) - 請勿遺漏括弧,並注意冒號 (:) 為分隔符號。 例如,下列替代伺服器的值會定義兩個替代資料庫伺服器以進行連線容錯移轉:(HostName=AccountingAmazonRdsForOracleServer:PortNumber=1521:SID=Accounting,HostName=255.201.11.24:PortNumber=1522:ServiceName=ABackup.NA.MyCompany)

您可以針對每個案例在連接字串中設定更多連線屬性:

屬性 描述 允許的值
ArraySize 連接器可以在單一網路來回行程中擷取的位元組數目。 例如: ArraySize=‭10485760‬

較大的值可藉由減少跨網路擷取資料的次數增加輸送量。 由於等候伺服器傳輸資料的延遲較少,因此較小的值會增加回應時間。
1 到 4294967296 (4 GB) 之間的整數。 預設值為 60000。 值 1 不會定義位元組數目,但會指出只配置一個資料列的空間。

若要啟用 Amazon RDS for Oracle 連線加密,您有兩個選項:

  • 若要使用三重 DES 加密 (3DES) 和進階加密標準 (AES),請從 Amazon RDS for Oracle 伺服器端,移至 Oracle 進階安全性 (OAS) 並設定加密設定。 如需詳細資訊,請參閱此 Oracle 文件。 Amazon RDS for Oracle 應用程式開發架構 (ADF) 連接器會自動協商加密方法,以使用建立 Amazon RDS for Oracle 連線時,您於 OAS 中設定的方法。

  • 使用 TLS

    1. 取得 TLS/SSL 憑證資訊。 取得 TLS/SSL 憑證的可辨別編碼規則 (DER) 編碼憑證資訊,並將輸出 (----- 開始憑證 … 結束憑證 -----) 儲存為文字檔。

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

      範例:從 DERcert.cer 擷取憑證資訊,接著將輸出儲存到 cert.txt。

      openssl x509 -inform DER -in DERcert.cer -text
      Output:
      -----BEGIN CERTIFICATE-----
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      XXXXXXXXX
      -----END CERTIFICATE-----
      
    2. 建置 keystoretruststore。 下列命令會建立 truststore 檔案,但不一定要使用 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
      

      範例:使用密碼建立名為 MyTrustStoreFile 的 PKCS12 truststore 檔案。

      openssl pkcs12 -in cert.txt -out MyTrustStoreFile -passout pass:ThePWD -nokeys -export  
      
    3. truststore 檔案放在自我裝載 IR 的機器上。 例如,將檔案放在 C:\MyTrustStoreFile。

    4. 在服務中,使用 EncryptionMethod=1 和對應的 TrustStore/TrustStorePassword 值來設定 Amazon RDS for Oracle 連接字串。 例如: Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore=C:\\MyTrustStoreFile;TrustStorePassword=<trust_store_password>

範例︰

{
    "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"
        }
    }
}

範例:在 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"
        }
    }
}

資料集屬性

本節提供 Amazon RDS for Oracle 資料集所支援的屬性清單。 如需定義資料集的區段和屬性完整清單,請參閱資料集

若要從 Amazon RDS for Oracle 複製資料,請將資料集的類型屬性設定為 AmazonRdsForOracleTable。 以下是支援的屬性。

屬性 描述 必要
型別 資料集的類型屬性必須設定為 AmazonRdsForOracleTable 是的
結構描述 結構描述的名稱。
表格 資料表/檢視的名稱。
資料表名稱 具有結構描述的資料表/檢視名稱。 支援此屬性是基於回溯相容性。 對於新的工作負載,請使用 schematable

範例︰

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

複製活動屬性

本節提供 Amazon RDS for Oracle 來源所支援的屬性清單。 如需可用來定義活動的區段和屬性完整清單,請參閱管線

以 Amazon RDS for Oracle 為來源

秘訣

若要使用資料分割有效率地從 Amazon RDS for Oracle 載入資料,請參閱從 Amazon RDS for Oracle 平行複製以深入了解。

若要從 Amazon RDS for Oracle 複製資料,請將複製活動中的來源類型設定為 AmazonRdsForOracleSource。 複製活動的 [來源] 區段支援下列屬性。

屬性 描述 必要
型別 複製活動來源的類型屬性必須設定為 AmazonRdsForOracleSource 是的
oracleReaderQuery 使用自訂 SQL 查詢來讀取資料。 例如 "SELECT * FROM MyTable"。 請注意,查詢不應以分號 (;) 結尾。
當您啟用分割載入時,您必須攔截查詢中任何對應的內建分割區參數。 例如,請參閱從 Amazon RDS for Oracle 平行複製一節。
將小數轉換為整數 Amazon RDS for Oracle NUMBER 類型中具有零或未指定縮放的數值將轉換為對應的整數。 允許的值為 truefalse (預設值)。
如果您使用 Amazon RDS for Oracle 2.0 版,則只有在 supportV1DataTypes 為 true 時,才允許設定此屬性。
分區選項 指定用來從 Amazon RDS for Oracle 載入資料的資料分割選項。
允許的值為:None (預設值)、PhysicalPartitionsOfTableDynamicRange
啟用分割選項後 (即不是 None),從 Amazon RDS for Oracle 資料庫同時載入資料的平行處理程度,會由複製活動的 parallelCopies 設定所控制。
分割設定 指定資料分割的設定群組。
當分割選項不是 None 時套用。
partitionNames 需要複製的實體分割區清單。
當分割選項是 PhysicalPartitionsOfTable 時套用。 如果您使用查詢來取出來源資料,請在 WHERE 子句中加上 ?AdfTabularPartitionName。 如需範例,請參閱從 Amazon RDS for Oracle 平行複製一節。
partitionColumnName 指定整數類型來源資料行的名稱,供平行複製的範圍分割使用。 如果未指定,則會自動偵測資料表的主索引鍵作為分割資料行。
當分割選項是 DynamicRange 時套用。 如果您使用查詢來取出來源資料,請在 WHERE 子句中加上 ?AdfRangePartitionColumnName。 如需範例,請參閱從 Amazon RDS for Oracle 平行複製一節。
partitionUpperBound 從分割資料行複製出資料時的最大值。
當分割選項是 DynamicRange 時套用。 如果您使用查詢來取出來源資料,請在 WHERE 子句中加上 ?AdfRangePartitionUpbound。 如需範例,請參閱從 Amazon RDS for Oracle 平行複製一節。
partitionLowerBound 從分割資料行複製出資料時的最小值。
當分割選項是 DynamicRange 時套用。 如果您使用查詢來取出來源資料,請在 WHERE 子句中加上 ?AdfRangePartitionLowbound。 如需範例,請參閱從 Amazon RDS for Oracle 平行複製一節。
數值精確度 指定有效十進位位數上限。 允許的值範圍從 1 到 256。 如果未指定,則預設為 256。
Amazon RDS for Oracle 2.0 版支援此屬性。 它僅適用於 Oracle 資料庫中未明確定義精確度和縮放比例的 NUMBER 類型。 可以在 supportV1DataTypes 不是 true 時設定。 如果您使用自我裝載整合執行階段,其版本應該是 5.56 或更新版本。
numberScale 指定小數點後的位數。 允許的值範圍介於 0 到 130 之間,且必須小於或等於精確度。 如果未指定,則預設為 130。
Amazon RDS for Oracle 2.0 版支援此屬性。 它僅適用於 Oracle 資料庫中未明確定義精確度和縮放比例的 NUMBER 類型。 可以在 supportV1DataTypes 不是 true 時設定。 如果您使用自我裝載整合執行階段,其版本應該是 5.56 或更新版本。

範例:使用不含分割區的基本查詢來複製資料

"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>"
            }
        }
    }
]

從 Amazon RDS for Oracle 平行複製

Amazon RDS for Oracle 連接器提供內建的資料分割,以平行方式從 Amazon RDS for Oracle 複製資料。 您可以在複製活動的 [來源] 索引標籤上找到資料分割選項。

分割選項的螢幕擷取畫面。

當您啟用分割複本時,服務會平行查詢 Amazon RDS for Oracle 來源,依分割載入資料。 平行程度由複製活動的 parallelCopies 設定所控制。 例如,如果您將 parallelCopies 設定為 4,服務會根據您指定的資料分割選項和設定,同時產生並執行四個查詢,而每個查詢會從 Amazon RDS for Oracle 資料庫取出一部分資料。

建議您啟用平行複製與資料分割,特別是從 Amazon RDS for Oracle 資料庫載入大量資料時。 以下針對各種情節的建議設定。 將資料複製到以檔案為基礎的資料存放區時,建議分成多個檔案來寫入資料夾 (僅指定資料夾名稱),這樣效能會比寫入單一檔案更好。

狀況 建議的設定
使用實體分割區從大型資料表完整載入。 分割選項:資料表的實體分割區。

在執行期間,服務會自動偵測實體分割區,並依分割區複製資料。
從大型資料表完整載入,不含實體分割區,同時在資料分割時包含整數資料行。 分割選項:動態範圍分割。
分割資料行:指定用來分割資料的資料行。 如果未指定,則會使用主索引鍵資料行。
使用自訂查詢載入大量資料,包含實體分割區。 分割選項:資料表的實體分割區。
查詢SELECT * FROM <TABLENAME> PARTITION("?AdfTabularPartitionName") WHERE <your_additional_where_clause>
分割區名稱:指定要從中複製資料的分割區名稱。 如果未指定,服務會自動偵測您在 Amazon RDS for Oracle 資料集中指定之資料表上的實體分割。

在執行期間,服務會以實際的分割名稱取代 ?AdfTabularPartitionName,並傳送至 Amazon RDS for Oracle。
使用自訂查詢載入大量資料,不含實體分割區,同時包含整數資料行用於資料分割。 分割選項:動態範圍分割。
查詢SELECT * FROM <TABLENAME> WHERE ?AdfRangePartitionColumnName <= ?AdfRangePartitionUpbound AND ?AdfRangePartitionColumnName >= ?AdfRangePartitionLowbound AND <your_additional_where_clause>
分割資料行:指定用來分割資料的資料行。 您可以按照整數資料類型的資料行來分割。
分割上限分割下限:指定您是否想要篩選分割資料行,只取出下限範圍和上限範圍之間的資料。

在執行期間,服務會將 ?AdfRangePartitionColumnName?AdfRangePartitionUpbound?AdfRangePartitionLowbound 替換成每個分割的實際資料行名稱和值範圍,並傳送至 Amazon RDS for Oracle。
例如,如果分割資料行 "ID" 已設定下限 1 和上限 80,而平行複製設定為 4,則服務會分成 4 個分割區來取出資料。 識別碼的範圍分別為 [1,20]、[21, 40]、[41, 60] 和 [61, 80]。

秘訣

從非資料分割資料表複製資料時,您可以使用 [動態範圍] 資料分割選項,針對整數資料行進行分割。 如果您的來源資料沒有這類資料行類型,您可以在來源查詢中利用 ORA_HASH 函式來產生資料行,並將其當做資料分割資料行使用。

範例:使用實體分割進行查詢

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

範例:使用動態範圍分割進行查詢

"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>"
    }
}

Amazon RDS for Oracle 的數據類型對應

當您從 Amazon RDS for Oracle 複製資料及將資料複製到該處時,服務內會使用下列過渡資料類型對應。 若要瞭解複製活動如何將來源架構和資料類型映射到匯入端,請參閱 架構和資料類型對應

Amazon RDS for Oracle 資料類型 過渡期服務資料類型 (針對 2.0 版) 過渡期服務資料類型 (1.0 版)
BFILE Byte[] Byte[]
BINARY_FLOAT 單身 單身
BINARY_DOUBLE Double Double
BLOB Byte[] Byte[]
CHAR 繩子 繩子
CLOB 繩子 繩子
日期 Datetime Datetime
FLOAT (P < 16) Double Double
浮點數 (P >= 16) Decimal Double
年至月間隔 Int64 繩子
INTERVAL DAY TO SECOND TimeSpan 繩子
LONG 繩子 繩子
LONG RAW Byte[] Byte[]
NCHAR 繩子 繩子
NCLOB 繩子 繩子
數值(p,s) Int16、Int32、Int64、Double、Single、Decimal 十進位字串 (如果精確度 > 28)
沒有精確度和級別的數字 Decimal Double
NVARCHAR2 繩子 繩子
RAW Byte[] Byte[]
TIMESTAMP Datetime Datetime
具有當地時區的時間戳記 Datetime Datetime
具有時區的時間戳 DateTimeOffset Datetime
VARCHAR2 繩子 繩子
XMLTYPE 繩子 繩子

附註

NUMBER(p,s) 會根據精確度 (p) 和級別 (s) 對應至適當的過渡服務資料類型。

查閱活動屬性

若要了解屬性的詳細資料,請參閱查閱活動

升級 Amazon RDS for Oracle 連接器

以下是可協助您升級 Amazon RDS for Oracle 連接器的步驟:

  1. [編輯鏈接服務 ] 頁面中,選取 2.0 版,並參考 鏈接服務屬性 2.0 版來設定連結服務

    針對驗證相關屬性,包括使用者名稱和密碼,請在 2.0 版的對應欄位中指定原始值。 版本 1.0 中的其他連線屬性 (例如主機、連接埠和 Amazon RDS for Oracle 服務名稱/Amazon RDS for Oracle SID) 現在是版本 2.0 中 server 屬性 的參數。

    例如,如果您設定 1.0 版連結服務,如下所示:

    1.0 版鏈接服務的螢幕快照。

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

    使用 Easy Connect (Plus) Naming 的相同版本 2.0 鏈接服務組態是:

    使用 Easy Connect (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" 
            } 
        } 
    } 
    

    使用 連接器描述元 的相同 2.0 版連結服務組態為:

    使用連接器描述元的連結服務螢幕快照。

    { 
        "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" 
            } 
        } 
    } 
    

    秘訣

    Azure Key Vault 支援 server 屬性。 您可以編輯連結的服務 JSON 以新增 Azure Key Vault 參考,如下所示:
    在伺服器中使用 Azure Key Vault 的螢幕快照。

    請注意:

    • 如果您在 1.0 版中使用 Oracle 服務名稱,您可以使用 Easy Connect (Plus) 命名或連接器描述元作為 2.0 版中的伺服器格式。

    • 如果您在 1.0 版中使用 Oracle SID ,則必須使用 連接器描述元 做為 2.0 版的伺服器格式。

    • 針對 1.0 版中的其他連線屬性,我們在 2.0 版的 屬性中 server 提供替代屬性或參數。 您可以參考下表來升級 1.0 版屬性。

      1.0 版 2.0 版
      加密方法 PROTOCOL (中的 server參數)
      tnsnamesfile TNS_ADMIN (自架整合執行階段支援的環境變數)
      伺服器名稱 伺服器
      enablebulkload
      值:1、0
      enableBulkLoad
      值:true、false
      fetchtswtzastimestamp
      值:1、0
      fetchTswtzAsTimestamp
      值:true、false
      alternateservers DESCRIPTION_LIST (server 中的參數)
      陣列大小 fetchSize
      cachedcursorlimit statementCacheSize
      連線重試次數 RETRY_COUNT (參數在 server中)
      初始化字串 initializationString
      logintimeout CONNECT_TIMEOUT (參數在 server中)
      cryptoprotocolversion SSL_VERSION (參數在 server中)
      truststore WALLET_LOCATION (server 中的參數)

      例如,如果您在 1.0 版中使用 alternateservers ,您可以在 2.0 版的伺服器屬性中設定 DESCRIPTION_LIST 參數:

      使用 alternateservers 的 1.0 版連結服務:

      {
          "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)"
              }
          }
      }
      

      DESCRIPTION_LIST中使用 參數的相同 2.0 版連結服務:

      {
          "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. Amazon RDS for Oracle 連結服務 2.0 版的數據類型映射與 1.0 版的不同。 若要瞭解最新的數據類型對應,請參閱 Amazon RDS for Oracle 的數據類型對應

    2.0 版中的其他連線屬性 supportV1DataTypes 可以減少數據類型變更所造成的升級困難。 設定此屬性以確保 true 2.0 版中的數據類型與 1.0 版保持一致。

Amazon RDS for Oracle 2.0 版和 1.0 版之間的差異

Amazon RDS for Oracle 連接器 2.0 版提供新功能,且與 1.0 版的大部分功能相容。 下表顯示 2.0 版與 1.0 版之間的功能差異。

2.0 版 1.0 版
下列對應用於從 Amazon RDS for Oracle 資料類型到服務內部使用的臨時服務資料類型。

NUMBER(p,s) -> Int16、Int32、Int64、Double、Single、Decimal
FLOAT(p)-> 以精確度為基礎的 Double 或 Decimal
NUMBER -> 十進制
TIMESTAMP WITH TIME ZONE -> DateTimeOffset
年到月的區間 -> Int64
INTERVAL DAY TO SECOND -> TimeSpan
下列對應用於從 Amazon RDS for Oracle 資料類型到服務內部使用的臨時服務資料類型。

NUMBER(p,s) -> 十進位或字串根據其精確度
FLOAT(p)-> Double
NUMBER -> Double
TIMESTAMP WITH TIME ZONE -> DateTime
年至月區間 -> 字串
INTERVAL DAY TO SECOND -> String
supportV1DataTypes 設為 true 時,在複製來源中支援 convertDecimalToInteger。 在複製來源時支援 convertDecimalToInteger 功能。 
支援 TLS 1.3。 不支援 TLS 1.3。

如需複製活動支援作為來源和接收器的資料存放區清單,請參閱支援的資料存放區