適用対象: Azure Data Factory
Azure Synapse Analytics
ヒント
企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法についてはこちらでご確認ください。
この記事では、Azure Data Factory のコピー アクティビティを使用して、Amazon RDS for Oracle データベースからデータをコピーする方法について説明します。 これは、コピー アクティビティの概要に関する記事に基づいています。
Von Bedeutung
Amazon RDS for Oracle コネクタ バージョン 2.0 では、ネイティブ Amazon RDS for Oracle のサポートが強化されています。 ソリューションで Amazon RDS for Oracle コネクタ バージョン 1.0 を使用している場合は、2025 年 10 月 31 日より前に Amazon RDS for Oracle コネクタをアップグレードしてください。 バージョン 2.0 とバージョン 1.0 の違いについて詳しくは、こちらのセクションをご覧ください。
サポートされる機能
この Amazon RDS for Oracle コネクタは、次の機能でサポートされます。
サポートされる機能 | IR |
---|---|
Copy アクティビティ (ソース/-) | (1) (2) |
Lookup アクティビティ | (1) (2) |
① Azure 統合ランタイム ② セルフホステッド統合ランタイム
コピー アクティビティによってソースまたはシンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストアに関する記事の表をご覧ください。
具体的には、この Amazon RDS for Oracle コネクタでは以下がサポートされています。
- バージョン 2.0 の Amazon RDS for Oracle データベースの次のバージョン:
- Amazon RDS for Oracle 19c 以降
- バージョン 1.0 の Amazon RDS for Oracle データベースの次のバージョン:
- 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 プロキシ サーバーはサポートされていません。
前提条件
データ ストアがオンプレ ミスネットワーク、Azure 仮想ネットワーク、または Amazon Virtual Private Cloud 内にある場合は、それに接続するようセルフホステッド統合ランタイムを構成する必要があります。
データ ストアがマネージド クラウド データ サービスである場合は、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 portal UI で Amazon RDS for Oracle のリンク サービスを作成します。
Azure Data Factory または Synapse ワークスペースの [管理] タブに移動し、[リンクされたサービス] を選択して、[新規] をクリックします。
- Azureデータファクトリー
- Azure Synapse
Amazon RDS for Oracle を検索し、Amazon RDS for Oracle コネクタを選択します。
サービスの詳細を構成し、接続をテストして、新しいリンク サービスを作成します。
コネクタの構成の詳細
以下のセクションでは、Amazon RDS for Oracle コネクタに固有のエンティティの定義に使用されるプロパティについて詳しく説明します。
リンクされたサービスのプロパティ
Amazon RDS for Oracle コネクタ バージョン 2.0 では、TLS 1.3 がサポートされています。 Amazon RDS for Oracle コネクタのバージョンをバージョン 1.0 からアップグレードするには、この セクション を参照してください。 プロパティの詳細については、対応するセクションを参照してください。
バージョン 2.0
Amazon RDS for Oracle のリンクされたサービスでは、バージョン 2.0 を適用すると、次のプロパティがサポートされます。
プロパティ | 内容 | 必須 |
---|---|---|
種類 | type プロパティは、AmazonRdsForOracle に設定する必要があります。 | はい |
バージョン | 指定するバージョン。 値は 2.0 です。 |
はい |
サーバー | 接続する Amazon RDS for Oracle データベースの場所。 サーバー プロパティの構成を参照して指定できます。 | はい |
認証タイプ | Amazon RDS for Oracle データベースに接続するための認証の種類。 現在、 Basic 認証のみがサポートされています。 | はい |
ユーザー名 | Amazon RDS for Oracle データベースのユーザー名。 | はい |
パスワード | Amazon RDS for Oracle データベースのパスワード。 安全に保存するには、このフィールドを SecureString としてマークします。 また、Azure Key Vault に格納されているシークレットを参照することもできます。 | はい |
connectVia (接続ビア) | データ ストアに接続するために使用される統合ランタイム。 詳細については、「前提条件」セクションを参照してください。 指定されていない場合は、既定の Azure Integration Runtime が使用されます。 | いいえ |
ケースごとにリンクされたサービスで設定できるその他の接続プロパティ:
プロパティ | 内容 | 必須 | 既定値 |
---|---|---|---|
暗号化クライアント | 暗号化クライアントの動作を指定します。 サポートされている値は、 accepted 、 rejected 、 requested 、または required です。 型: string |
いいえ | required |
暗号化タイプクライアント (encryptionTypesClient) | クライアントが使用できる暗号化アルゴリズムを指定します。 サポートされる値は、 AES128 、 AES192 、 AES256 、 3DES112 、 3DES168 です。 型: string |
いいえ | (AES256) |
cryptoChecksumクライアント | このクライアントがサーバーに接続するときに必要なデータ整合性の動作を指定します。 サポートされている値は、 accepted 、 rejected 、 requested 、または required です。 型: string |
いいえ | required |
cryptoChecksumTypesクライアント | クライアントが使用できる暗号チェックサム アルゴリズムを指定します。 サポートされる値は、 SHA1 、 SHA256 、 SHA384 、 SHA512 です。 型: string |
いいえ | (SHA512) |
initialLobFetchSize | ソースが LOB 列に対して最初にフェッチする量を指定します。 型: int | いいえ | 0 |
fetchSize | ドライバーが 1 つのデータベース ラウンド トリップでデータをフェッチするために割り当てるバイト数を指定します。 型: int | いいえ | 10 MB |
ステートメントキャッシュサイズ (statementCacheSize) | データベース接続ごとにキャッシュするカーソルまたはステートメントの数を指定します。 型: int | いいえ | 0 |
initializationString | セッション設定を管理するためにデータベースに接続した直後に発行されるコマンドを指定します。 型: string | いいえ | 無効 |
一括読み込みを有効にする | データをデータベースに読み込むときに、一括コピーまたはバッチ挿入のどちらを使用するかを指定します。 型: ブール値 | いいえ | ほんとう |
supportV1DataTypes | バージョン 1.0 のデータ型マッピングを使用するかどうかを指定します。 バージョン 1.0 のデータ型マッピングとの下位互換性を維持する場合を除き、これを true に設定しないでください。 型: ブール値 | いいえ。このプロパティは下位互換性のみを目的としています | 偽り |
fetchTswtzAsTimestamp(タイムスタンプとして Tswtz を取得) | ドライバーが DATETime または文字列として TIMESTAMP WITH TIME ZONE データ型の列値を返すかどうかを指定します。 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
プロパティの場合は、次の 3 つの形式のいずれかで指定できます。
フォーマット | 例 |
---|---|
接続記述子 | (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 Alias) (セルフホステッド統合ランタイムの場合のみ) | 売上 |
次の一覧は、 server
で使用されるサポートされているパラメーターを示しています。 次の一覧にないパラメーターを使用すると、接続は失敗します。
Azure 統合ランタイムを使用する場合:
ホスト
ポート
プロトコル
SERVICE_NAME
SID
INSTANCE_NAME
サーバー
CONNECT_TIMEOUT
リトライ回数
リトライ遅延
SSLバージョン
SSL_SERVER_DN_MATCH
SSL_SERVER_CERT_DNセルフホステッド統合ランタイムを使用する場合:
ホスト
ポート
プロトコル
エネーブル
有効期限時間
フェールオーバー
LOAD_BALANCE
RECV_BUF_SIZE
SDU
SEND_BUF_SIZE
SOURCE_ROUTE
サービスの種類
COLOCATION_TAG
CONNECTION_ID_PREFIX
FAILOVER_MODE
GLOBAL_NAME
HS
INSTANCE_NAME
プールの境界
POOL_CONNECTION_CLASS
プール名
プールの純度
RDBデータベース
SHARDING_KEY
SHARDING_KEY_ID
SUPER_SHARDING_KEY
サーバー
SERVICE_NAME
SID
TUNNEL_SERVICE_NAME
SSLクライアント認証
SSL_CERTIFICATE_ALIAS
SSL_CERTIFICATE_THUMBPRINT
SSLバージョン
SSL_SERVER_DN_MATCH
SSL_SERVER_CERT_DN
財布の位置
CONNECT_TIMEOUT
リトライ回数
リトライ遅延
TRANSPORT_CONNECT_TIMEOUT
RECV_TIMEOUT
圧縮
圧縮レベル
バージョン 1.0
Amazon RDS for Oracle のリンクされたサービスでは、バージョン 1.0 を適用すると、次のプロパティがサポートされます。
プロパティ | 内容 | 必須 |
---|---|---|
種類 | type プロパティは、AmazonRdsForOracle に設定する必要があります。 | はい |
コネクションストリング | Amazon RDS for Oracle Database インスタンスに接続するために必要な情報を指定します。 パスワードを Azure Key Vault に格納して、接続文字列から password 構成をプルすることもできます。 詳細については、下記の例と、「Azure Key Vault への資格情報の格納」を参照してください。 サポートされる接続の種類: Amazon RDS for Oracle SID または Amazon 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>)
" を追加できます。値には角かっこを忘れずに入力し、区切り文字としてコロン (:
) を使用することに注意してください。 以下の例では、代替サーバーの値により、接続フェールオーバー用の代替データベース サーバーが 2 台定義されます。(HostName=AccountingAmazonRdsForOracleServer:PortNumber=1521:SID=Accounting,HostName=255.201.11.24:PortNumber=1522:ServiceName=ABackup.NA.MyCompany)
接続文字列には他にも、ケースに応じてさまざまな接続プロパティを設定できます。それらのプロパティを次に示します。
プロパティ | 内容 | 使用できる値 |
---|---|---|
配列サイズ | 1 回のネットワーク ラウンド トリップでコネクタがフェッチできるバイト数。 たとえば、「 ArraySize=10485760 」のように入力します。値を大きくすると、ネットワーク経由でデータをフェッチする回数が減り、スループットが向上します。 値を小さくすると、サーバーがデータを転送する際の待ち時間がわずかにあるため、応答時間が長くなります。 |
1 から 4294967296 (4 GB) の整数。 既定値は 60000 です。 この値が 1 である場合、バイト数は定義されません。ちょうど 1 行分のデータの領域を割り当てることを意味します。 |
Amazon RDS for Oracle の接続で暗号化を有効にする場合、2 つのオプションがあります。
Triple-DES Encryption (3DES) と Advanced Encryption Standard (AES) を使用するには、Amazon RDS for Oracle サーバー側で Oracle Advanced Security (OAS) に移動し、暗号化設定を構成します。 詳細については、こちらの Oracle のドキュメントを参照してください。 Amazon RDS for Oracle Application Development Framework (ADF) コネクタは暗号化方法を自動的にネゴシエートし、Amazon RDS for Oracle への接続を確立するときにユーザーが OAS で構成した方法を使用します。
TLS を使用するには以下の手順に従ってください。
TLS/SSL 証明書情報を取得します。 TLS/SSL 証明書の Distinguished Encoding Rules (DER) でエンコードされた証明書情報を取得し、出力 (----- Begin Certificate … End Certificate -----) をテキスト ファイルとして保存します。
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-----
keystore
またはtruststore
をビルドします。 次のコマンドでは、PKCS-12 形式のパスワード含まれる、または含まれない、truststore
ファイルが作成されます。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
セルフホステッド IR マシンに
truststore
ファイルを配置します。 たとえば、C:\MyTrustStoreFile にファイルを配置します。サービスで、
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 からデータをコピーするには、データセットの type プロパティを AmazonRdsForOracleTable
に設定します。 次のプロパティがサポートされています。
プロパティ | 内容 | 必須 |
---|---|---|
種類 | データセットの type プロパティは AmazonRdsForOracleTable に設定する必要があります。 |
はい |
スキーマ | スキーマの名前。 | いいえ |
テーブル / 表 | テーブル/ビューの名前。 | いいえ |
テーブル名 | スキーマがあるテーブル/ビューの名前。 このプロパティは下位互換性のためにサポートされています。 新しいワークロードでは、schema と table を使用します。 |
いいえ |
例:
{
"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
に設定します。 コピー アクティビティの source セクションでは、次のプロパティがサポートされます。
プロパティ | 内容 | 必須 |
---|---|---|
種類 | コピー アクティビティのソースの type プロパティは AmazonRdsForOracleSource に設定する必要があります。 |
はい |
oracleReaderQuery | カスタム SQL クエリを使用してデータを読み取ります。 たとえば "SELECT * FROM MyTable" です。パーティション分割された読み込みを有効にするときは、クエリ内で対応する組み込みのパーティション パラメーターをすべてフックする必要があります。 例については、「Amazon RDS for Oracle からの並列コピー」を参照してください。 |
いいえ |
小数を整数に変換する | スケールが 0 または指定されていない Amazon RDS for Oracle NUMBER 型は、対応する整数に変換されます。 使用できる値は true と false (既定値) です。 Amazon RDS for Oracle バージョン 2.0 を使用している場合、このプロパティは supportV1DataTypes が true の場合にのみ設定できます。 |
いいえ |
パーティションオプション | Amazon RDS for Oracle からのデータの読み込みに使用されるデータ パーティション分割オプションを指定します。 使用できる値は、以下のとおりです。None (既定値)、PhysicalPartitionsOfTable、および DynamicRange。 パーティション オプションが有効になっている場合 (つまり、 None ではない場合)、Amazon RDS for Oracle データベースから同時にデータを読み込む並列処理の次数は、コピー アクティビティの parallelCopies 設定によって制御されます。 |
いいえ |
パーティション設定 | データ パーティション分割の設定のグループを指定します。 パーティション オプションが None でない場合に適用されます。 |
いいえ |
partitionNames | コピーする必要がある物理パーティションのリスト。 パーティション オプションが PhysicalPartitionsOfTable である場合に適用されます。 クエリを使用してソース データを取得する場合は、WHERE 句で ?AdfTabularPartitionName をフックします。 例については、「Amazon RDS for Oracle からの並列コピー」を参照してください。 |
いいえ |
パーティションカラム名 | 並列コピーの範囲パーティション分割で使用される整数型のソース列の名前を指定します。 指定されていない場合は、テーブルの主キーが自動検出され、パーティション列として使用されます。 パーティション オプションが DynamicRange である場合に適用されます。 クエリを使用してソース データを取得する場合は、WHERE 句で ?AdfRangePartitionColumnName をフックします。 例については、「Amazon RDS for Oracle からの並列コピー」を参照してください。 |
いいえ |
パーティション境界上限 | データをコピーするパーティション列の最大値。 パーティション オプションが DynamicRange である場合に適用されます。 クエリを使用してソース データを取得する場合は、WHERE 句で ?AdfRangePartitionUpbound をフックします。 例については、「Amazon RDS for Oracle からの並列コピー」を参照してください。 |
いいえ |
partitionLowerBound | データをコピーするパーティション列の最小値。 パーティション オプションが DynamicRange である場合に適用されます。 クエリを使用してソース データを取得する場合は、WHERE 句で ?AdfRangePartitionLowbound をフックします。 例については、「Amazon RDS for Oracle からの並列コピー」を参照してください。 |
いいえ |
例: パーティションなしで基本的なクエリを使用してデータをコピーする
"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 に設定した場合、指定したパーティション オプションと設定に基づいて 4 つのクエリが同時に生成され、実行されます。各クエリでは、Amazon RDS for Oracle データベースからデータの一部を取得します。
特に、Amazon RDS for Oracle データベースから大量のデータを読み込む場合は、データ パーティション分割を使用した並列コピーを有効にすることをお勧めします。 さまざまなシナリオの推奨構成を以下に示します。 ファイルベースのデータ ストアにデータをコピーする場合は、複数のファイルとしてフォルダーに書き込む (フォルダー名のみを指定する) ことをお勧めします。この場合、1 つのファイルに書き込むよりもパフォーマンスが優れています。
シナリオ | 推奨設定 |
---|---|
物理パーティションに分割された大きなテーブル全体から読み込む。 |
パーティション オプション: テーブルの物理パーティション。 実行中に、サービスによって物理パーティションが自動的に検出され、パーティションごとにデータがコピーされます。 |
物理パーティションがなく、データ パーティション分割用の整数列がある大きなテーブル全体から読み込む。 |
パーティション オプション: 動的範囲パーティション。 パーティション列: データのパーティション分割に使用される列を指定します。 指定されていない場合は、主キー列が使用されます。 |
カスタム クエリを使用して大量のデータを読み込む (物理パーティションがある場合)。 |
パーティション オプション: テーブルの物理パーティション。 クエリ: 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 つのパーティションでデータを取得します。 これらの ID の範囲はそれぞれ [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_DOUBLE | ダブル | ダブル |
ブロッブ | Byte[] | Byte[] |
チャー | 糸 | 糸 |
CLOB | 糸 | 糸 |
日付 | 日付と時間 | 日付と時間 |
FLOAT (P < 16) | ダブル | ダブル |
FLOAT (P >= 16) | 小数 | ダブル |
年から月への間隔 | Int64 | 糸 |
INTERVAL DAY TO SECOND | タイムスパン | 糸 |
長い | 糸 | 糸 |
LONG RAW | Byte[] | Byte[] |
NCHAR | 糸 | 糸 |
NCLOB | 糸 | 糸 |
NUMBER (p,s) | Int16、Int32、Int64、Double、Single、Decimal | Decimal、String (p > 28 の場合) |
有効桁数と小数点以下桁数がない NUMBER | 小数 | ダブル |
NVARCHAR2 | 糸 | 糸 |
未加工 | Byte[] | Byte[] |
タイムスタンプ | 日付と時間 | 日付と時間 |
ローカル タイム ゾーンを含むタイムスタンプ | 日付と時間 | 日付と時間 |
タイム ゾーンを含むタイムスタンプ | DateTimeOffset (日付と時刻のオフセット) | 日付と時間 |
VARCHAR2 | 糸 | 糸 |
XMLTYPE | 糸 | 糸 |
注意
NUMBER(p,s) は、有効桁数 (p) と小数点以下桁数 (s) に応じて、適切な中間サービス データ型にマッピングされます。
Lookup アクティビティのプロパティ
プロパティの詳細については、Lookup アクティビティに関するページを参照してください。
Amazon RDS for Oracle コネクタをアップグレードする
Amazon RDS for Oracle コネクタのアップグレードに役立つ手順を次に示します。
[ リンクされたサービスの編集] ページで、バージョン 2.0 を選択し、リンクされたサービス プロパティバージョン 2.0 を参照してリンクされたサービスを構成します。
ユーザー名とパスワードを含む認証関連のプロパティについては、バージョン 2.0 の対応するフィールドに元の値を指定します。 バージョン 1.0 のホスト、ポート、Amazon RDS for Oracle サービス名/Amazon RDS for Oracle SID などのその他の接続プロパティが、バージョン 2.0 の
server
プロパティのパラメーターになりました。たとえば、次に示すようにバージョン 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) の名前付けを使用する同じバージョン 2.0 のリンクされたサービス構成は次のとおりです。
{ "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 参照を追加できます。
次の点に注意してください。
バージョン 1.0 で Oracle サービス名 を使用する場合は、バージョン 2.0 のサーバー形式として Easy Connect (Plus) の名前付け または コネクタ記述子 を使用できます。
バージョン 1.0 で Oracle SID を使用する場合は、バージョン 2.0 のサーバー形式として コネクタ記述子 を使用する必要があります。
バージョン 1.0 の追加の接続プロパティについては、バージョン 2.0 の
server
プロパティで代替プロパティまたはパラメーターを提供します。 バージョン 1.0 のプロパティをアップグレードするには、次の表を参照してください。バージョン 1.0 バージョン 2.0 暗号化方法 PROTOCOL ( server
のパラメーター)tnsnamesfile TNS_ADMIN (セルフホステッド統合ランタイムでサポートされる環境変数) サーバー名 サーバー 一括ロードを有効にする
値: 1、0enableBulkLoad
値: true、falsefetchtswtzastimestamp
値: 1、0fetchTswtzAsTimestamp
値: true、false代替サーバー DESCRIPTION_LIST ( server
のパラメーター)配列サイズ fetchSize cachedcursorlimit ステートメントキャッシュサイズ (statementCacheSize) 接続再試行回数 RETRY_COUNT ( server
のパラメーター)イニシャライゼーションストリング initializationString ログインタイムアウト CONNECT_TIMEOUT ( server
のパラメーター)暗号プロトコルバージョン 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>" } } }
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 -> 10進数 TIMESTAMP WITH TIME ZONE -> DateTimeOffset 年月間隔 -> Int64 日付から秒までの間隔 -> タイムスパン |
Amazon RDS for Oracle データ型から、サービスが内部的に使用する中間サービス データ型へのマッピングを次に示します。 NUMBER (p,s) -> その有効桁数に応じて Decimal または String FLOAT(p)-> Double NUMBER -> Double TIMESTAMP WITH TIME ZONE -> DateTime 年から月への間隔 -> 文字列 日付から秒までの間隔 -> 文字列 |
supportV1DataTypes が true に設定されている場合、コピー ソースで convertDecimalToInteger をサポートします。 |
コピー ソースで convertDecimalToInteger をサポートします。 |
TLS 1.3 をサポートします。 | TLS 1.3 はサポートされません。 |
関連するコンテンツ
コピー アクティビティによってソース、シンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストアに関するセクションを参照してください。