翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
テーブルとコレクション設定のルールとオペレーション
テーブル設定を使用して、指定されたオペレーションで選択されたテーブルまたはビューに適用する設定を指定します。エンドポイントと移行の要件に応じてテーブル設定ルールはオプションです。
テーブルやビューを使用する代わりに、MongoDB および Amazon DocumentDB データベースでは、データレコードをドキュメントとしてまとめて[collections](コレクション) 格納します。MongoDB または Amazon DocumentDB エンドポイントの 1 つのデータベースは、データベース名で識別される特定のコレクションセットです。
MongoDB または Amazon DocumentDB ソースから移行する場合、並列ロード設定の操作は少し異なります。この場合、テーブルおよびビューではなく、選択したコレクションに対する並列ロード設定の自動セグメンテーションまたは範囲セグメンテーション タイプを考慮します。
テーブル設定ルールタイプを使用するテーブルマッピングルールの場合、以下のパラメータを適用することができます。
パラメータ | 使用できる値: | 説明 |
---|---|---|
rule-type |
table-settings
|
選択ルールにより指定されたテーブルまたはビューまたはコレクションにルールを適用する値。 |
rule-id |
数値。 | ルールを識別する一意の数値。 |
rule-name |
英数字値。 | ルールを特定する一意な名前。 |
object-locator |
以下のパラメータを使用するオブジェクト。
|
特定のスキーマ、テーブル、ビューの名前、または特定のデータベースとコレクションの名前 (ワイルドカードなし)。 |
parallel-load |
以下のパラメータを使用するオブジェクト。
|
並列ロードの詳細については、「選択したテーブルおよびビューさらにコレクションで並列ロードを使用する」をご参照ください。 |
type |
parallel-load の次のいずれか。
|
並列でロードするテーブルまたはビューまたはコレクションのパーティションまたはサブパーティション、セグメントを識別するメカニズム。 |
number-of-partitions |
(オプション) type が MongoDB または Amazon DocumentDB エンドポイントの指定されたコレクションについて partitions-auto の場合、このパラメータは移行に使用されるパーティション (セグメント) の総数を指定します。デフォルトは 16 です。 |
並列ロードされるパーティションの正確な数を指定します。 |
collection-count-from-metadata |
(オプション) MongoDB または Amazon DocumentDB エンドポイントの指定されたコレクションpartitions-auto に対して type が で、このパラメータが に設定されている場合true 、 はパーティション数を決定するために推定コレクション数 AWS DMS を使用します。このパラメータが に設定されている場合false 、 は実際のコレクション数 AWS DMS を使用します。デフォルト: true 。 |
並列ロードするパーティションの数を計算するために、推定収集回数と実際の収集数のどちらを使用するかを指定します。 |
max-records-skip-per-page |
(オプション) type が MongoDB または Amazon DocumentDB エンドポイントの指定されたコレクションについて partitions-auto の場合、これは各パーティションの境界を決定する際に一度にスキップするレコードの数です。 AWS DMS
は、ページ割りスキップアプローチを使用して、パーティションの最小境界を決定します。デフォルトは 10,000 です。 |
各パーティションの境界を決定するときに一度にスキップするレコード数を指定します。デフォルトより比較的高い値を設定すると、タイムアウトし、タスクが失敗する可能性がある。デフォルトから比較的低い値を設定すると、ページあたりのオペレーションが多くなり、全ロードが遅くなります。 |
batch-size |
(オプション) type が MongoDB または Amazon DocumentDB エンドポイントの指定されたコレクションについて partitions-auto の場合、この整数値により、1 回のラウンドトリップ バッチで返されるドキュメントの数が制限されます。バッチサイズがゼロ (0) の場合、カーソルはサーバー定義の最大バッチサイズを使用します。デフォルトは 0 です。 |
1 つのバッチで返されるドキュメントの最大数を指定します。各バッチには、サーバーへの往復が必要です。 |
partitions |
type が partitions-list の場合、これは並列でロードするパーティションの名前を指定する文字列の配列です。 |
並列ロードするパーティションの名前。 |
subpartitions |
(Oracle エンドポイントのみ) type が partitions-list の場合、これは並列してロードするサブパーティションの名前を指定する文字列の配列です。 |
並列ロードするサブパーティションの名前。 |
columns |
type が ranges の場合、並列ロードする範囲ベースのテーブルセグメントまたはビューセグメントまたはコレクションセグメントを識別する列の名前に設定された文字列の配列です。 |
並列ロードする範囲ベースのテーブルセグメントまたはビューセグメントまたはコレクションセグメントを識別する列の名前。 |
boundaries |
type が ranges の場合、列の値の配列の配列。各列の値の配列には、数量の列値と columns で指定された順序が含まれています。列の値の配列はテーブルセグメントまたはビューセグメントまたはコレクションセグメントの上限の境界を指定します。各追加列値の配列は、1 つの追加テーブルセグメントまたはビューセグメンまたはコレクションセグメントの上限の境界を追加します。このような範囲ベースのテーブルセグメントまたはビューセグメントまたはコレクションセグメントはすべて並列ロードされます。 |
並列ロードする範囲ベースのテーブルパーティションまたはビューパーティションまたはコレクションパーティションを識別する列の値。 |
lob-settings |
以下のパラメータを使用するオブジェクト。
|
object-locator オプションによって識別されるテーブルまたはビューLOBの処理を指定する値。指定されたLOB処理は、このテーブルまたはビューのタスクLOB設定のみを上書きします。LOB 設定パラメータの使用の詳細については、「」を参照してください選択したテーブルまたはビューLOBの設定の指定。 |
mode |
次の値を使用して、指定されたテーブルまたはビューLOBsで の移行処理を指定します。
|
の移行に使用されるメカニズムLOBs。 |
bulk-max-size |
この値の効果は mode によって異なります。 |
キロバイト単位LOBsの の最大サイズ。このオプションは、小さな をレプリケートする必要がある場合、LOBsまたはターゲットエンドポイントが無制限LOBのサイズをサポートしていない場合にのみ指定します。 |
テーブル設定内のワイルドカードの制限
次のとおり、"table-settings"
ルールでのパーセントのワイルドカード ("%"
) の使用は、ソースデータベースではサポートされていません。
{ "rule-type": "table-settings", "rule-id": "8", "rule-name": "8", "object-locator": { "schema-name": "ipipeline-prod", "table-name": "%" }, "parallel-load": { "type": "partitions-auto", "number-of-partitions": 16, "collection-count-from-metadata": "true", "max-records-skip-per-page": 1000000, "batch-size": 50000 } }
次に示すように"table-settings"
ルール"%"
で を使用すると、 は次の例外 AWS DMS を返します。
Error in mapping rules. Rule with ruleId = x failed validation. Exact schema and table name required when using table settings rule.
さらに、 では、 で 1 つのタスクを使用して大量の大規模なコレクションをロードしない AWS ことをお勧めしますparallel-load
。MaxFullLoadSubTasks
タスク設定パラメータ値により、 AWS DMS
はリソース競合と、並行してロードするセグメント数を制限することに注意します。MaxFullLoadSubTasks の最大値は 49 です。
この代わりに各 "schema-name"
と "table-name"
を個別に指定して、最大のコレクションのソースデータベースのすべてのコレクションを指定します。また、移行は適切にスケールアップします。例えば、データベース内の大量のコレクションを処理するのに十分な数のレプリケーションインスタンスで複数のタスクを実行します。
選択したテーブルおよびビューさらにコレクションで並列ロードを使用する
移行を高速化してより効率的にするには、選択したリレーショナルテーブルおよびビューおよびコレクションを並列ロードできます。つまり、数本のスレッドを並列使用し、単一セグメント化テーブルまたはビュー、コレクションを移行できます。そのために、 は全ロードタスクをスレッドに AWS DMS 分割し、各テーブルセグメントを独自のスレッドに割り当てます。
この並列ロードプロセスを使用すると、まず複数スレッドが複数テーブルおよびビューおよびコレクションをソースのエンドポイントから並列アップロードするようにできます。次に、複数のスレッドを移行し、同じテーブルおよびビューおよびコレクションをターゲットエンドポイントに並列ロードすることができます。一部のデータベースエンジンでは、既存のパーティションあるいはサブパーティションを使用してテーブルおよびビューをセグメント化することができます。他のデータベースエンジンでは、特定のパラメータ (自動セグメンテーション) に従ってコレクション AWS DMS を自動的にセグメント化できます。それ以外の場合は、列の値の範囲を指定することで任意のテーブルまたはビュー、コレクションをセグメント化できます。
並列ロードは以下のソースエンドポイントでサポートされています。
-
Oracle
-
Microsoft SQL サーバー
-
マイSQL
-
PostgreSQL
-
IBM Db2 LUW
-
SAP アダプティブサーバーエンタープライズ (ASE)
-
MongoDB (並列全ロードの自動セグメンテーションと範囲セグメンテーション オプションのみサポート)
-
Amazon DocumentDB (並列全ロードの自動セグメンテーションと範囲セグメンテーション オプションのみをサポート)
MongoDB および Amazon DocumentDB エンドポイントの場合、 は並列全ロードの範囲セグメンテーションオプションのパーティションキーである列に対して次のデータ型 AWS DMS をサポートします。
-
倍精度
-
文字列
-
ObjectId
-
32 ビット整数
-
64 ビット整数
テーブル設定ルールで使用する並列ロードは、次のターゲットエンドポイントでサポートされます。
-
Oracle
-
Microsoft SQL サーバー
-
マイSQL
-
PostgreSQL
-
Amazon S3
-
SAP アダプティブサーバーエンタープライズ (ASE)
-
Amazon Redshift
-
MongoDB (並列全ロードの自動セグメンテーションと範囲セグメンテーション オプションのみサポート)
-
Amazon DocumentDB (並列全ロードの自動セグメンテーションと範囲セグメンテーション オプションのみをサポート)
-
Db2 LUW
並行してロードするテーブルとビューの最大数を指定するには、MaxFullLoadSubTasks
タスク設定を使用します。
並列ロードタスクのサポートされるターゲットのテーブルまたはビューごとの最大スレッド数を指定するには、列値の境界を使用してさらに多くのセグメントを定義できます。
重要
MaxFullLoadSubTasks
は、並行してロードするテーブルまたはテーブルのセグメント数を制御します。ParallelLoadThreads
は、ロードを並行して実行するために移行タスクが使用するスレッド数を制御します。上記の設定は乗算です。そのため、フルロードタスクで使用するスレッドの合計数は、ほぼ ParallelLoadThreads
値と MaxFullLoadSubTasks
値を乗算した値になります (ParallelLoadThreads
* MaxFullLoadSubtasks)
)
多数のフルロードサブタスクがあり、多数の並列ロードスレッドがあるタスクを作成すると、タスクがメモリを大量に消費してエラーとなる可能性があります。
Amazon DynamoDB、Amazon Kinesis Data Streams、Apache Kafka、または Amazon Elasticsearch Service のターゲットのテーブルあたりの最大スレッド数を指定するには、ParallelLoadThreads
ターゲットメタデータタスク設定を使用します。
ParallelLoadThreads
を使用する際に並列ロードタスクのバッファサイズを指定するには、ParallelLoadBufferSize
ターゲットメタデータタスク設定を使用します。
ParallelLoadThreads
と ParallelLoadBufferSize
の可用性と設定は、ターゲットエンドポイントによって異なります。
ParallelLoadThreads
と ParallelLoadBufferSize
の設定の詳細については、「ターゲットメタデータのタスク設定」をご参照ください。MaxFullLoadSubTasks
の設定の詳細については、「全ロードタスク設定」をご参照ください。ターゲットエンドポイントに固有の情報については、関連するトピックをご参照ください。
並列ロードを使用するには、parallel-load
オプションを指定した table-settings
タイプのテーブルマッピングルールを作成します。table-settings
ルールでは、並列ロードする単一テーブルまたはビュー、コレクションのセグメント化条件を指定できます。これを行うには、 parallel-load
オプションの type
パラメータの複数のオプションのいずれかに設定します。
これを行う方法は、並行ロード用にテーブルまたはビュー、コレクションのセグメント化方法によって異なります。
-
パーティション (またはセグメント) を使用 -
partitions-auto
タイプを使用して、すべての既存のテーブルまたはビューのパーティション (またはセグメント) をロードします。または、partitions-list
タイプを指定したパーティション配列で使用して、選択したパーティションのみをロードします。MongoDB および Amazon DocumentDB エンドポイントのみ、
partitions-auto
タイプと追加のオプションtable-settings
パラメータを使用して AWS DMS が自動的に計算するセグメントで、すべてのコレクションまたは指定されたコレクションをロードします。 -
(Oracle エンドポイントのみ) サブパーティションを使用 -
subpartitions-auto
タイプを使用してすべての既存のテーブル サブパーティションまたはビューサブパーティションをロードします。または、partitions-list
タイプを指定したsubpartitions
配列で使用して、選択したサブパーティションのみをロードします。 -
定義するセグメントを使用 - 列値の境界を使用して定義したテーブルセグメントまたはビューセグメントまたはコレクションセグメントをロードします。これを行うには、
ranges
タイプを指定したcolumns
配列およびboundaries
配列で使用します。注記
PostgreSQL エンドポイントは、このタイプの並列ロードのみをサポートします。ソースエンドポイントとして MongoDB と Amazon DocumentDB は、全ロードのこの範囲セグメンテーションタイプと並列自動セグメンテーションタイプの両方に対応しています (
partitions-auto
)。
並列でロードする追加のテーブルまたはビュー、コレクションを識別するには、追加の table-settings
オブジェクトを parallel-load
オプションで指定します。
次の手順では、並列ロードタイプJSONごとに、最も単純なものから複雑なものまでコーディングする方法を説明します。
すべてのテーブルまたはビューあるいはコレクション パーティション、またはすべてのテーブルまたはビューまたはコレクションのサブパーティションを指定するには
-
partitions-auto
タイプまたはsubpartitions-auto
タイプのいずれか (両方は使用できません) を指定してparallel-load
を指定します。各テーブルまたはビューまたはコレクションのパーティション (セグメント) またはサブパーティションは、自己スレッドに自動割り当てされます。
エンドポイントによっては、並列ロードには、テーブルまたはビューですでに定義されている場合のみ、パーティションあるいはサブパーティションが含まれます。MongoDB および Amazon DocumentDB ソースエンドポイントの場合、 はオプションの追加のパラメータに基づいてパーティション (またはセグメント) AWS DMS を自動的に計算できます。例えば、
number-of-partitions
、collection-count-from-metadata
、max-records-skip-per-page
、batch-size
などです。
選択したテーブルまたはビューのパーティション、サブパーティション、またはその両方を指定するには
-
partitions-list
タイプでparallel-load
を指定します。 -
(オプション) パーティション名の配列を
partitions
の値として指定したパーティションが含まれます。指定されたパーティションがそれぞれ独自のスレッドに割り当てられます。
重要
Oracle エンドポイントの場合、並列ロード用にパーティションとサブパーティションを選択するときに、パーティションとサブパーティションが重複しないようにします。重複するパーティションとサブパーティションを使用してデータを並列ロードすると、エントリが複製されるか、プライマリ キーの重複違反により失敗します。
-
(オプション)、Oracle エンドポイントのみ、サブパーティションを
subpartitions
の値として指定したサブパーティション名の配列を指定してインクルードします。指定されたサブパーティションがそれぞれ独自のスレッドに割り当てられます。
注記
並列ロードには、テーブルまたはビューですでに定義されている場合に、パーティションあるいはサブパーティションが含まれます。
テーブルセグメントまたはビューセグメントを列値の範囲として指定することができます。その場合、次の列の特性について注意してください。
-
インデックス化された列を指定するとパフォーマンスが大幅に向上します。
-
最大 10 個の列を指定できます。
-
列を使用して、、DOUBLE、FLOAT、CLOB、および BLOB AWS DMS のデータ型でセグメント境界を定義することはできません。 NCLOB
-
Null 値のレコードはレプリケートされません。
テーブルセグメントまたはビューセグメント、コレクションセグメントを列値の範囲として指定するには
-
ranges
タイプでparallel-load
を指定します。 -
columns
の値として列名の配列を指定して、テーブルまたはビューのセグメント間の境界を定義します。テーブルまたはビューのセグメント間で境界を定義するすべての列でこれを行います。列の順序は重要です。次に説明するように、各境界を定義するうえで最初の列がもっとも重要であり最後の列は最も重要度が低くなります。
-
boundaries
の値として境界配列を指定して、すべてのテーブルまたはビューのセグメントでデータ範囲を定義します。境界配列は列値の配列の配列です。これを行うには、次のステップを実行します。-
列と値の配列の各要素を各列に対応する値として指定します。列と値の配列は、定義する各テーブルまたはビューのセグメントの上限の境界を表します。
columns
配列の列で指定したものと同じ順序で各列を指定します。ソースでサポートされている形式でDATE列の値を入力します。
-
各列と値の配列を、テーブルまたはビューの下部からセグメントまでの next-to-top各セグメントの上限として順番に指定します。指定した上限の上にテーブルの行が存在する場合、これらの行はテーブルまたはビューの一番上のセグメントを形成します。そのため、範囲ベースのセグメントの数は、境界配列のセグメント境界の数より 1 つ多くなることがあります。このような範囲ベースのセグメントはそれぞれ個別のスレッドに割り当てられます。
データテーブル内のすべての列のデータ範囲を定義しない場合でも、null 以外のすべてのテーブルまたはビューのデータがレプリケートされます。
例えば、列 COL1、、COL2および に 3 つの列と値の配列をCOL3次のように定義するとします。
COL1 COL2 COL3 10 30 105 20 20 120 100 12 99 3 つのセグメントの境界を定義したことで、合計で 4 つのセグメントができることがあります。
各セグメントでレプリケートする行の範囲を識別するため、レプリケーションインスタンスは 4 つのセグメントごとにこれらの 3 つの列で検索を適用します。検索は次のようになります。
- セグメント 1
-
以下の条件が true であるすべての行をレプリケートします。最初の 2 列の値が、対応する セグメント 1 の上限値以下です。また、3 番目の列の値は、セグメント 1 の上限値より小さくなります。
- セグメント 2
-
以下の条件が true であるすべての行(セグメント 1 行を除く)をレプリケートします。最初の 2 列の値が、対応する セグメント 2 の上限値以下です。また、3 番目の列の値は、セグメント 2 の上限値より小さくなります。
- セグメント 3
-
以下の条件が true であるすべての行(セグメント 2 行を除く)をレプリケートします。最初の 2 列の値が、対応する セグメント 3 の上限値以下です。また、3 番目の列の値は、セグメント 3 の上限値より小さくなります。
- セグメント 4
-
残りのすべての行 (セグメント 1、2、3 の行を除く) をレプリケートします。
この場合、レプリケーションインスタンスが次のように
WHERE
句を作成して各セグメントをロードします。- セグメント 1
-
((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 = 10) AND (COL2 = 30) AND (COL3 < 105)))
- セグメント 2
-
NOT ((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 = 10) AND (COL2 = 30) AND (COL3 < 105))) AND ((COL1 < 20) OR ((COL1 = 20) AND (COL2 < 20)) OR ((COL1 = 20) AND (COL2 = 20) AND (COL3 < 120)))
- セグメント 3
-
NOT ((COL1 < 20) OR ((COL1 = 20) AND (COL2 < 20)) OR ((COL1 = 20) AND (COL2 = 20) AND (COL3 < 120))) AND ((COL1 < 100) OR ((COL1 = 100) AND (COL2 < 12)) OR ((COL1 = 100) AND (COL2 = 12) AND (COL3 < 99)))
- セグメント 4
-
NOT ((COL1 < 100) OR ((COL1 = 100) AND (COL2 < 12)) OR ((COL1 = 100) AND (COL2 = 12) AND (COL3 < 99)))
-
選択したテーブルまたはビューLOBの設定の指定
1 つ以上のtable-settings
オブジェクトの lob-settings
オプションtable-settings
を使用して タイプのテーブルマッピングルールを作成することで、1 つ以上のテーブルのタスクLOB設定を行うことができます。
選択したテーブルまたはビューLOBの設定の指定は、次のソースエンドポイントでサポートされています。
-
Oracle
-
Microsoft SQL サーバー
-
マイSQL
-
PostgreSQL
-
IBM Db2、
mode
およびbulk-max-size
設定に応じて、以下で説明します。 -
SAP 以下に説明するように、
mode
およびbulk-max-size
設定に応じて、Adaptive Server Enterprise (ASE)
選択したテーブルまたはビューLOBの設定の指定は、次のターゲットエンドポイントでサポートされています。
-
Oracle
-
Microsoft SQL サーバー
-
マイSQL
-
PostgreSQL
-
SAP 以下で説明するようにASE、
mode
とbulk-max-size
の設定に応じて 。
注記
LOB データ型は、プライマリキーを含むテーブルとビューでのみ使用できます。
選択したテーブルまたはビューLOBの設定を使用するには、 lob-settings
オプションtable-settings
を使用して タイプのテーブルマッピングルールを作成します。これにより、 object-locator
オプションで識別されるテーブルまたはビューLOBの処理が指定されます。table-settings
ルール内で、以下のパラメータを使用して lob-settings
オブジェクトを指定できます。
-
mode
– 選択したテーブルまたはビューのLOB移行を処理するメカニズムを次のように指定します。-
limited
– デフォルトの制限LOBモードは、最も高速で効率的なモードです。このモードは、すべての が小さい (サイズLOBsが 100 MB 以内) か、ターゲットエンドポイントが無制限LOBのサイズをサポートしていない場合にのみ使用します。また、 を使用する場合limited
、すべて LOBs に設定したサイズ内である必要がありますbulk-max-size
。全ロードタスクのこのモードでは、レプリケーションインスタンスはメインテーブルまたはビューストレージの一部として、すべてのLOBsインラインを他の列データ型とともに移行します。ただし、インスタンスは、
bulk-max-size
値LOBより大きい移行された を指定されたサイズに切り捨てます。変更データキャプチャ (CDC) ロードタスクの場合、インスタンスは、標準フルLOBモードのように、ソーステーブルルックアップLOBsを使用してすべて移行します (以下を参照)。注記
全ロードタスクに対してのみビューを移行できます。
-
unlimited
– フルLOBモードの移行メカニズムは、bulk-max-size
次のように に設定した値によって異なります。-
標準フルLOBモード –
bulk-max-size
を 0 に設定すると、レプリケーションインスタンスは標準フルLOBモードLOBsを使用してすべて移行します。このモードでは、サイズに関係なくLOB、すべての を移行するためにソーステーブルまたはビューでルックアップが必要です。このアプローチでは、通常、制限付きLOBモードよりも移行がはるかに遅くなります。このモードLOBsは、 のすべてまたは大部分が大きい (1 GB 以上) 場合にのみ使用します。 -
組み合わせフルLOBモード – をゼロ以外の値
bulk-max-size
に設定すると、このフルLOBモードは制限LOBモードと標準フルLOBモードの組み合わせを使用します。つまり、全ロードタスクの場合、LOBサイズがbulk-max-size
の値内にあると、インスタンスは制限LOBモードのようにLOBインラインを移行します。LOB サイズがこの値より大きい場合、インスタンスはソーステーブルまたはビュールックアップLOBを使用して、標準フルLOBモードのように を移行します。変更データキャプチャ (CDC) ロードタスクの場合、インスタンスは、標準フルLOBモードのように、ソーステーブルルックアップLOBsを使用してすべて移行します (以下を参照)。これは、LOBサイズに関係なく行われます。注記
全ロードタスクに対してのみビューを移行できます。
このモードでは、移行速度が速くなり、高速で制限されたLOBモードと低速で標準のフルLOBモードが損なわれます。このモードは、小さい と大きい が混在していてLOBs、ほとんどの LOBsが小さい場合にのみ使用します。
この組み合わせフルLOBモードは、次のエンドポイントでのみ使用できます。
-
IBM ソースとしての Db2
-
SAP ASE ソースまたはターゲットとしての
-
unlimited
モードに指定したメカニズムに関係なく、インスタンスはすべて切り捨てることなくLOBs完全に移行されます。 -
-
none
– レプリケーションインスタンスは、タスクLOB設定を使用して、選択したテーブルまたはビューLOBsに移行します。このオプションを使用すると、選択したテーブルまたはビューLOBの設定の有無にかかわらず、移行結果を比較できます。
指定したテーブルまたはビューがレプリケーションLOBsに含まれている場合は、
limited
LOB モードを使用するtrue
場合にのみBatchApplyEnabled
タスク設定を に設定できます。場合によっては、
BatchApplyEnabled
をtrue
に、また、BatchApplyPreserveTransaction
をfalse
に設定できます。このような場合、テーブルまたはビューに があり、ソースLOBsエンドポイントとターゲットエンドポイントが Oracletrue
である場合、インスタンスはBatchApplyPreserveTransaction
を に設定します。 -
-
bulk-max-size
- 前の項目で説明したmode
に応じて、この値を 0 または 0 以外の値 (KB) に設定します。limited
モードでは、このパラメータにゼロ以外の値を設定する必要があります。インスタンスはバイナリ形式に変換LOBsされます。したがって、レプリケートLOBする必要がある最大値を指定するには、そのサイズに 3 を掛けます。たとえば、最大値LOBが 2 MB の場合、
bulk-max-size
を 6,000 (6 MB) に設定します。
テーブル設定の例
テーブル設定を使用する説明の例を次に示します。
例 パーティションでセグメント化されたテーブルのロード
次の例では、すべてのパーティションに基づいて並列でロードすることで、ソース内の SALES
テーブルを効率的にロードします。
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "partitions-auto" } } ] }
例 サブパーティションでセグメント化されたテーブルのロード
次の例では、すべてのサブパーティションに基づいて並列でロードすることで、Oracle ソース内の SALES
テーブルを効率的にロードします。
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "subpartitions-auto" } } ] }
例 パーティションのリストでセグメント化されたテーブルのロード
次の例では、特定のパーティションのリストに基づいて並列でロードすることで、ソース内の SALES
テーブルをロードします。ここで、指定されたパーティションは ABCD
やEFGH
などアルファベットの一部で始まる値に命名されます。
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "partitions-list", "partitions": [ "ABCD", "EFGH", "IJKL", "MNOP", "QRST", "UVWXYZ" ] } } ] }
例 選択されたパーティションおよびサブパーティションのリストでセグメント化された Oracle テーブルのロード
次の例では、選択されたパーティションおよびサブパーティションのリストを使用して並列でロードすることで、Oracle ソースの SALES
テーブルをロードします。ここで、指定されたパーティションは ABCD
やEFGH
などアルファベットの一部で始まる値に命名されます。指定されたサブパーティションは、数字で始まる値を取って命名されます。たとえば、01234
や 56789
などです。
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "partitions-list", "partitions": [ "ABCD", "EFGH", "IJKL", "MNOP", "QRST", "UVWXYZ" ], "subpartitions": [ "01234", "56789" ] } } ] }
例 列の値の範囲でセグメント化されたテーブルのロード
次の例では、SALES_NO
および REGION
列の値の範囲で指定されたセグメントを使用して並列でロードすることで、ソース内の SALES
テーブルをロードします。
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "ranges", "columns": [ "SALES_NO", "REGION" ], "boundaries": [ [ "1000", "NORTH" ], [ "3000", "WEST" ] ] } } ] }
ここで、2 つの列は、SALES_NO
および REGION
という名前でセグメント範囲に指定されます。2 つの境界は 2 セットの列の値 (["1000","NORTH"]
および ["3000","WEST"]
) で指定されます。
したがって、これら 2 つの境界によって、並列でロードされる次の 3 つのテーブルセグメントが識別されます。
- セグメント 1
-
1,000
SALES_NO
以下かつNORTHREGION
「」未満の行。つまり、 EASTリージョンで 1,000 までの販売番号です。 - セグメント 2
-
セグメント 1 以外の行で、3,000
SALES_NO
以下かつWESTREGION
「」以下。つまり、 NORTHおよび SOUTHリージョンで 1,000~3,000 を超える販売番号です。 - セグメント 3
-
セグメント 1 および セグメント 2 以外の残りすべての行。つまり、「」リージョンの 3,000 を超える販売番号WESTです。
例 1 つは範囲でセグメント化され、もう 1 つはパーティションでセグメント化された 2 つのテーブルのロード
次の例では、SALES
テーブルを識別したセグメント境界で並列にロードします。また、前の例と同様に、ORDERS
テーブルをすべてのパーティションで並列にロードします。
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "HR", "table-name": "SALES" }, "parallel-load": { "type": "ranges", "columns": [ "SALES_NO", "REGION" ], "boundaries": [ [ "1000", "NORTH" ], [ "3000", "WEST" ] ] } }, { "rule-type": "table-settings", "rule-id": "3", "rule-name": "3", "object-locator": { "schema-name": "HR", "table-name": "ORDERS" }, "parallel-load": { "type": "partitions-auto" } } ] }
例 タスクLOB設定LOBsを使用して でテーブルをロードする
次の例では、タスクLOB設定を使用して、すべての を含む LOBsITEMS
テーブルをソースにロードします。100 MB の bulk-max-size
設定は無視され、limited
または unlimited
モードにクイックリセットするためにのみ残されます。
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "mode": "none", "bulk-max-size": "100000" } } ] }
例 制限LOBモードLOBsを使用して でテーブルをロードする
次の例では、制限LOBモード (デフォルト) を使用して、ソースLOBsに を含む ITEMS
テーブルをロードし、切り捨てられていない最大サイズは 100 MB です。このサイズLOBsより大きい はすべて 100 MB に切り捨てられます。すべての LOBsは、他のすべての列データ型とインラインでロードされます。
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "bulk-max-size": "100000" } } ] }
例 標準フルLOBモードLOBsを使用して でテーブルをロードする
次の例では、標準のフルLOBモードを使用して、切り捨てLOBsのないすべてのテーブルを含む ITEMS
テーブルをソースにロードします。すべての はLOBs、サイズに関係なく、ソーステーブルLOB内の各 のルックアップを使用して、他のデータ型とは別にロードされます。
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "mode": "unlimited", "bulk-max-size": "0" } } ] }
例 組み合わせフルLOBモードLOBsを使用して でテーブルをロードする
次の例では、組み合わせフルLOBモードを使用して、切り捨てLOBsのないすべてのテーブルを含む ITEMS
テーブルをソースにロードします。サイズが 100 MB LOBs以内のすべての は、制限LOBモードのように、他のデータ型とともにインラインでロードされます。サイズが 100 MB LOBsを超えるすべての は、他のデータ型とは別にロードされます。この個別のロードでは、標準フルLOBモードのように、ソーステーブルLOB内の各 の検索を使用します。
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "%", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "table-settings", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "INV", "table-name": "ITEMS" }, "lob-settings": { "mode": "unlimited", "bulk-max-size": "100000" } } ] }