

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# テーブルとコレクション設定のルールとオペレーション
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings"></a>

テーブル設定を使用して、指定されたオペレーションで選択されたテーブルまたはビューに適用する設定を指定します。エンドポイントと移行の要件に応じてテーブル設定ルールはオプションです。

テーブルやビューを使用する代わりに、MongoDB および Amazon DocumentDB データベースでは、データレコードをドキュメントとしてまとめて*[collections]*(コレクション) 格納します。MongoDB または Amazon DocumentDB エンドポイントの 1 つのデータベースは、データベース名で識別される特定のコレクションセットです。

MongoDB または Amazon DocumentDB ソースから移行する場合、並列ロード設定の操作は少し異なります。この場合、テーブルおよびビューではなく、選択したコレクションに対する並列ロード設定の自動セグメンテーションまたは範囲セグメンテーション タイプを考慮します。

**Topics**
+ [テーブル設定内のワイルドカードの制限](#CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.Wildcards)
+ [選択したテーブルおよびビューさらにコレクションで並列ロードを使用する](#CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.ParallelLoad)
+ [選択したテーブルまたはビューの LOB 設定を指定](#CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.LOB)
+ [テーブル設定の例](#CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.Examples)

テーブル設定ルールタイプを使用するテーブルマッピングルールの場合、以下のパラメータを適用することができます。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.html)

## テーブル設定内のワイルドカードの制限
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.Wildcards"></a>

次のとおり、`"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"` を個別に指定して、最大のコレクションのソースデータベースのすべてのコレクションを指定します。また、移行は適切にスケールアップします。例えば、データベース内の大量のコレクションを処理するのに十分な数のレプリケーションインスタンスで複数のタスクを実行します。

## 選択したテーブルおよびビューさらにコレクションで並列ロードを使用する
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.ParallelLoad"></a>

移行を高速化してより効率的にするには、選択したリレーショナルテーブルおよびビューおよびコレクションを並列ロードできます。つまり、数本のスレッドを並列使用し、単一セグメント化テーブルまたはビュー、コレクションを移行できます。これを行うには、 はフルロードタスクをスレッドに AWS DMS 分割し、各テーブルセグメントを独自のスレッドに割り当てます。

この並列ロードプロセスを使用すると、まず複数スレッドが複数テーブルおよびビューおよびコレクションをソースのエンドポイントから並列アップロードするようにできます。次に、複数のスレッドを移行し、同じテーブルおよびビューおよびコレクションをターゲットエンドポイントに並列ロードすることができます。一部のデータベースエンジンでは、既存のパーティションあるいはサブパーティションを使用してテーブルおよびビューをセグメント化することができます。他のデータベースエンジンでは、特定のパラメータ (自動セグメンテーション) に従ってコレクション AWS DMS を自動的にセグメント化できます。それ以外の場合は、列の値の範囲を指定することで任意のテーブルまたはビュー、コレクションをセグメント化できます。

並列ロードは以下のソースエンドポイントでサポートされています。
+ Oracle
+ Microsoft SQL Server
+ MySQL
+ [PostgreSQL]
+ IBM Db2 LUW
+ SAP Adaptive Server Enterprise (ASE)
+ MongoDB (並列全ロードの自動セグメンテーションと範囲セグメンテーション オプションのみサポート)
+ Amazon DocumentDB (並列全ロードの自動セグメンテーションと範囲セグメンテーション オプションのみをサポート)

MongoDB および Amazon DocumentDB エンドポイントの場合、 は並列全ロードの範囲セグメンテーションオプションのパーティションキーである列に対して次のデータ型 AWS DMS をサポートします。
+ Double
+ String
+ ObjectId
+ 32 ビット整数
+ 64 ビット整数

テーブル設定ルールで使用する並列ロードは、次のターゲットエンドポイントでサポートされます。
+ Oracle
+ Microsoft SQL Server
+ MySQL
+ [PostgreSQL]
+ Amazon S3
+ SAP Adaptive Server Enterprise (ASE)
+ Amazon Redshift
+ MongoDB (並列全ロードの自動セグメンテーションと範囲セグメンテーション オプションのみサポート)
+ Amazon DocumentDB (並列全ロードの自動セグメンテーションと範囲セグメンテーション オプションのみをサポート)
+ Db2 LUW

並行してロードするテーブルとビューの最大数を指定するには、`MaxFullLoadSubTasks` タスク設定を使用します。

並列ロードタスクのサポートされるターゲットのテーブルまたはビューごとの最大スレッド数を指定するには、列値の境界を使用してさらに多くのセグメントを定義できます。

**重要**  
`MaxFullLoadSubTasks` は、並行してロードするテーブルまたはテーブルのセグメント数を制御します。`ParallelLoadThreads` は、ロードを並行して実行するために移行タスクが使用するスレッド数を制御します。**上記の設定は乗算です。そのため、フルロードタスクで使用するスレッドの合計数は、ほぼ `ParallelLoadThreads `値と `MaxFullLoadSubTasks` 値を乗算した値になります (`ParallelLoadThreads` **\$1** `MaxFullLoadSubtasks)`)  
多数のフルロードサブタスクがあり、多数の並列ロードスレッドがあるタスクを作成すると、タスクがメモリを大量に消費してエラーとなる可能性があります。

Amazon DynamoDB、Amazon Kinesis Data Streams、Apache Kafka、または Amazon Elasticsearch Service のターゲットのテーブルあたりの最大スレッド数を指定するには、`ParallelLoadThreads` ターゲットメタデータタスク設定を使用します。

`ParallelLoadThreads` を使用する際に並列ロードタスクのバッファサイズを指定するには、`ParallelLoadBufferSize` ターゲットメタデータタスク設定を使用します。

`ParallelLoadThreads` と `ParallelLoadBufferSize` の可用性と設定は、ターゲットエンドポイントによって異なります。

`ParallelLoadThreads` と `ParallelLoadBufferSize` の設定の詳細については、「[ターゲットメタデータのタスク設定](CHAP_Tasks.CustomizingTasks.TaskSettings.TargetMetadata.md)」をご参照ください。`MaxFullLoadSubTasks` の設定の詳細については、「[全ロードタスク設定](CHAP_Tasks.CustomizingTasks.TaskSettings.FullLoad.md)」をご参照ください。ターゲットエンドポイントに固有の情報については、関連するトピックをご参照ください。

並列ロードを使用するには、`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` などです。

**選択したテーブルまたはビューのパーティション、サブパーティション、またはその両方を指定するには**

1. `partitions-list` タイプで `parallel-load` を指定します。

1. (オプション) パーティション名の配列を `partitions` の値として指定したパーティションが含まれます。

   指定されたパーティションがそれぞれ独自のスレッドに割り当てられます。
**重要**  
Oracle エンドポイントの場合、並列ロード用にパーティションとサブパーティションを選択するときに、パーティションとサブパーティションが重複しないようにします。重複するパーティションとサブパーティションを使用してデータを並列ロードすると、エントリが複製されるか、プライマリ キーの重複違反により失敗します。

1. (オプション)、Oracle エンドポイントのみ、サブパーティションを `subpartitions` の値として指定したサブパーティション名の配列を指定してインクルードします。

   指定されたサブパーティションがそれぞれ独自のスレッドに割り当てられます。
**注記**  
並列ロードには、テーブルまたはビューですでに定義されている場合に、パーティションあるいはサブパーティションが含まれます。

テーブルセグメントまたはビューセグメントを列値の範囲として指定することができます。その場合、次の列の特性について注意してください。
+ インデックス化された列を指定するとパフォーマンスが大幅に向上します。
+ 最大 10 個の列を指定できます。
+ 列を使用して、DOUBLE、FLOAT、BLOB、CLOB、NCLOB の各 AWS DMS データ型でセグメント境界を定義することはできません。
+ Null 値のレコードはレプリケートされません。

**テーブルセグメントまたはビューセグメント、コレクションセグメントを列値の範囲として指定するには**

1. `ranges` タイプで `parallel-load` を指定します。

1. `columns` の値として列名の配列を指定して、テーブルまたはビューのセグメント間の境界を定義します。テーブルまたはビューのセグメント間で境界を定義するすべての列でこれを行います。

   列の順序は重要です。次に説明するように、各境界を定義するうえで最初の列がもっとも重要であり最後の列は最も重要度が低くなります。

1. `boundaries` の値として境界配列を指定して、すべてのテーブルまたはビューのセグメントでデータ範囲を定義します。*境界配列*は列値の配列の配列です。これを行うには、次のステップを実行します。

   1. 列と値の配列の各要素を各列に対応する値として指定します。*列と値の配列*は、定義する各テーブルまたはビューのセグメントの上限の境界を表します。`columns` 配列の列で指定したものと同じ順序で各列を指定します。

      DATE 列の値を、ソースでサポートされる形式で入力します。

   1. 列と値の配列をそれぞれ上限の境界として指定します。テーブルまたはビューの一番下のセグメントから、上から 2 番目のセグメントまで、順番に各セグメントを指定します。指定した上限の上にテーブルの行が存在する場合、これらの行はテーブルまたはビューの一番上のセグメントを形成します。そのため、範囲ベースのセグメントの数は、境界配列のセグメント境界の数より 1 つ多くなることがあります。このような範囲ベースのセグメントはそれぞれ個別のスレッドに割り当てられます。

      データテーブル内のすべての列のデータ範囲を定義しない場合でも、null 以外のすべてのテーブルまたはビューのデータがレプリケートされます。

   例えば、次のように COL1、COL2、 COL 3 に 3 つの列・値の配列を定義したとします。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.html)

   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 設定を指定
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.LOB"></a>

1 つ以上の `table-settings` オブジェクトで `lob-settings` オプションを使用してタイプ `table-settings` のテーブルマッピングルールを作成すると、1 つ以上のテーブルに LOB 設定のタスクを設定できます。

選択したテーブルへの LOB 設定の指定は、次のソースエンドポイントでサポートされています。
+ Oracle
+ Microsoft SQL Server
+ MySQL
+ [PostgreSQL]
+ IBM Db2 (以下で説明するように、`mode` および `bulk-max-size` 設定に応じます)
+ SAP Adaptive Server Enterprise (ASE) (以下で説明するように、`mode` および `bulk-max-size` 設定に応じます)

選択したテーブルまたはビューへの LOB 設定の指定は、次のターゲットエンドポイントでサポートされています。
+ Oracle
+ Microsoft SQL Server
+ MySQL
+ [PostgreSQL]
+ SAP ASE (以下で説明するように、`mode` および `bulk-max-size` 設定に応じます)

**注記**  
LOB データタイプはプライマリキーが含まれるテーブルおよびビューのみで使用できます。

選択したテーブルまたはビューの LOB 設定を使用するには、`lob-settings` オプションを指定して `table-settings` タイプのテーブルマッピングルールを作成します。これにより、`object-locator` オプションで識別されたテーブルまたはビューの LOB 処理が指定されます。`table-settings` ルール内で、以下のパラメータを使用して `lob-settings` オブジェクトを指定できます。
+ `mode` - 選択したテーブルまたはビューの LOB 移行処理のメカニズムを次のように指定します：
  + `limited` - デフォルトの制限付き LOB モードは最速で効率的なモードです。すべての LOB が小さいか、またはターゲットのエンドポイントで未制限の LOB サイズがサポートされていない場合のみ、このモードを使用します。また、`limited` を使用する場合、すべての LOB は `bulk-max-size` で設定したサイズ内にする必要があります。

    完全ロードタスクにおけるこのモードでは、レプリケーションインスタンスはすべての LOB を他の列のデータ型と一緒にメインテーブルストレージまたはメインビューストレージの一部としてインラインで移行します。ただし、`bulk-max-size` 値より大きい LOB はすべて、インスタンスによって指定のサイズに切り捨てられます。変更データキャプチャ (CDC) のロードの場合、インスタンスはすべての LOB をソーステーブルの参照を使用して移行します。これは標準の完全 LOB モードと同様です (以下を参照)。
**注記**  
全ロードタスクに対してのみビューを移行できます。
  + `unlimited` - 完全 LOB モードの移行メカニズムは、次のように `bulk-max-size` に設定した値によって異なります:
    + **[Standard full LOB mode]**(標準の完全 LOB モード) - `bulk-max-size` をゼロに設定すると、レプリケーション インスタンスは標準の完全 LOB モードを使用してすべての LOB を移行します。このモードでは、サイズにかかわらずすべての LOB を移行でソーステーブルまたはソースビューを参照する必要があります。このアプローチでは通常、制限付き LOB モードよりもはるかに低速で移行されます。すべてまたはほとんどの LOB が大きい (1 GB 以上) の場合にのみ、このモードを使用します。
    + **[Combination full LOB mode]**(組み合わせ完全 LOB モード) - `bulk-max-size` をゼロ以外の値に設定すると、この完全 LOB モードは制限付き LOB モードと標準完全 LOB モードを組み合わせて使用します。これは完全ロードタスク向けであり、LOB サイズが `bulk-max-size` 値以内の場合、インスタンスは制限付き LOB モードのようにインラインで LOB を移行します。LOB のサイズがこの値より大きい場合は、インスタンスは標準の完全 LOB モードのようにソーステーブルまたはソースビューの参照を使用して LOB を移行します。変更データキャプチャ (CDC) のロードの場合、インスタンスはすべての LOB をソーステーブルの参照を使用して移行します。これは標準の完全 LOB モードと同様です (以下を参照)。これは、LOB に関係なく行われます。
**注記**  
全ロードタスクに対してのみビューを移行できます。

      このモードにより、移行速度はより高速な制限付き LOB モードと低速な標準の完全 LOB モードの中間になります。このモードは、小さい LOB と大きい LOB が混在しており、ほとんどの LOB が小さい場合にのみ使用します。

      この組み合わせ完全 LOB モードは、つぎのエンドポイントのみで使用できます。
      + IBM Db2 (ソースとして) 
      + SAP ASE (ソースあるいはターゲットとして)

    `unlimited` モードに指定するメカニズムに関わらず、インスタンスはすべての LOB を完全に移行し、切り捨ては行われません。
  + `none` - レプリケーション インスタンスはタスク LOB 設定を使用して、選択されたテーブルまたはビューの LOB を移行します。このオプションを使用すると、選択されたテーブルまたはビューで LOB 設定を使用した場合と使用しない場合の移行結果を比較できます。

  指定したテーブルまたはビューにレプリケーションに含まれる LOB があるときには、`limited` LOB モードを使用する場合のみ `BatchApplyEnabled` タスクを `true` に設定できます。

  場合によっては、`BatchApplyEnabled` を `true` に、また、`BatchApplyPreserveTransaction` を `false` に設定できます。このようなケースでは、テーブルまたはビューに LOB があり、ソースおよびターゲットのエンドポイントが Oracle である場合に、インスタンスは `BatchApplyPreserveTransaction` を `true` に設定します。
+ `bulk-max-size` - 前の項目で説明した `mode` に応じて、この値を 0 または 0 以外の値 (KB) に設定します。`limited` モードでは、このパラメータにゼロ以外の値を設定する必要があります。

  インスタンスは LOB をバイナリ形式に変換します。したがって、レプリケートする必要がある最大の LOB を指定するには、サイズを 3 倍します。たとえば、最大の LOB が 2 MB の場合、`bulk-max-size` を 6000 (6 MB) に設定します。

## テーブル設定の例
<a name="CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.Examples"></a>

テーブル設定を使用する説明の例を次に示します。

**Example パーティションでセグメント化されたテーブルのロード**  
次の例では、すべてのパーティションに基づいて並列でロードすることで、ソース内の `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"
            }
        }
     ]
}
```

**Example サブパーティションでセグメント化されたテーブルのロード**  
次の例では、すべてのサブパーティションに基づいて並列でロードすることで、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"
            }
        }
     ]
}
```

**Example パーティションのリストでセグメント化されたテーブルのロード**  
次の例では、特定のパーティションのリストに基づいて並列でロードすることで、ソース内の `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"
                ]
            }
        }
    ]
}
```

**Example 選択されたパーティションおよびサブパーティションのリストでセグメント化された 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"
                ]
            }
        }
    ]
}
```

**Example 列の値の範囲でセグメント化されたテーブルのロード**  
次の例では、`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  
`SALES_NO` が 1000 以下であり `REGION` が "NORTH" 未満である行。つまり、EAST リージョンで販売数が最大 1000 まで。  
セグメント 2  
**セグメント 1** 以外で `SALES_NO` が 3000 以下であり `REGION` が "WEST" 未満である行。つまり、NORTH および SOUTH リージョンで販売数が 1,000 を超え 3,000 まで。  
セグメント 3  
**セグメント 1** および **セグメント 2** 以外の残りすべての行。つまり、「WEST」リージョンで販売数が 3000 超。

**Example 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" 
            }
        }
    ]
}
```

**Example タスク LOB 設定を使用した LOB を含むテーブルのロード**  
次の例では、タスク LOB 設定を使用して、すべての LOB を含め、ソースの `ITEMS` テーブルをロードします。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"
            }
        }
     ]
}
```

**Example 制限付き LOB モードを使用した LOB を含むテーブルのロード**  
次の例では、ソース内の LOB を含む `ITEMS` テーブルを、切り捨てられない最大サイズが 100 MB の制限付き LOB モード（デフォルト）を使用してロードします。このサイズよりも大きい LOB はすべて 100 MB に切り捨てられます。すべての 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": {
                "bulk-max-size": "100000"
            }
        }
     ]
}
```

**Example 標準の完全 LOB モードを使用したテーブルのロード**  
次の例では、標準の完全 LOB モードを使用して、すべての LOB を切り捨てずに、ソースの `ITEMS` テーブルをロードします。サイズを問わずすべての 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": "0"
            }
        }
     ]
}
```

**Example 組み合わせ完全 LOB モードを使用した LOB を含むテーブルのロード**  
次の例では、組み合わせ完全 LOB モードを使用して、すべての LOB を切り捨てずに、ソースの `ITEMS` テーブルをロードします。サイズが 100 MB 以内のすべての LOB は他のデータ型とともにインラインでロードされます。制限付き LOB モードと同様です。サイズが 100 MB を超えるすべての LOB は、他のデータ型とは別にロードされます。この個別のロードでは、標準の完全 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"
            }
        }
     ]
}
```