Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Mit den Tabelleneinstellungen können Sie alle Einstellungen angeben, die Sie auf die ausgewählte Tabelle oder Ansicht für eine bestimmte Operation anwenden möchten. Regeln für Tabelleneinstellungen sind optional, je nach Endpunkt- und Migrationsanforderungen.
Anstelle des Konzepts von Tabellen und Ansichten speichern MongoDB- und Amazon-DocumentDB-Datenbanken Datensätze als Dokumente, die in Sammlungen zusammengefasst werden. Eine einzelne Datenbank für einen MongoDB- oder Amazon-DocumentDB-Endpunkt ist ein bestimmter Satz von Sammlungen, die durch den Datenbanknamen identifiziert werden.
Bei der Migration von einer MongoDB- oder Amazon-DocumentDB-Quelle arbeiten Sie etwas anders mit den Einstellungen für paralleles Laden. In diesem Fall sollten Sie den Typ „Autosegmentierung“ oder „Bereichssegmentierung“ der Einstellungen für paralleles Laden für ausgewählte Sammlungen und nicht für Tabellen und Ansichten in Betracht ziehen.
Themen
Für Termersetzungsregeln, die den Tabelleneinstellungsregeltyp geändert haben, können Sie die folgenden Parameter verwenden.
Parameter | Mögliche Werte | Beschreibung |
---|---|---|
rule-type |
table-settings
|
Ein Wert, der die Regel auf die von der Auswahlregel festgelegte Tabelle, Ansicht oder Sammlung anwendet. |
rule-id |
Ein numerischer Wert. | Ein eindeutiger numerischer Wert zur Identifizierung der Regel. |
rule-name |
Ein alphanumerischer Wert. | Ein eindeutiger Name zur Identifizierung der Regel. |
object-locator |
Ein Objekt mit den folgenden Parametern:
|
Der Name eines bestimmten Schemas und einer bestimmten Tabelle oder Ansicht oder der Name einer bestimmten Datenbank und Sammlung (keine Platzhalter). |
parallel-load |
Ein Objekt mit den folgenden Parametern:
|
Ein Wert, der eine parallele (Multithread-) Ladeoperation auf der von der Option
Weitere Informationen zum parallelen Laden finden Sie unter Verwendung des parallelen Ladens für ausgewählte Tabellen und Ansichten. |
type |
Es gilt eine der folgenden Situationen für parallel-load :
|
Der Mechanismus zum Identifizieren der Tabellen-, Ansichts- oder Sammlungspartitionen, Unterpartitionen oder Segmente, die parallel geladen werden. |
number-of-partitions |
(Optional) Wenn type für bestimmte Sammlungen eines MongoDB- oder Amazon-Endpunkts partitions-auto ist, gibt dieser Parameter die Gesamtzahl der Partitionen (Segmente) an, die für die Migration verwendet werden. Der Standardwert ist 16. |
Gibt die Namen der Partitionen an, die parallel geladen werden. |
collection-count-from-metadata |
(Optional) Wenn type gilt partitions-auto für bestimmte Sammlungen eines MongoDB- oder Amazon DocumentDB DocumentDB-Endpunkts und dieser Parameter auf gesetzt isttrue , AWS DMS verwendet eine geschätzte Sammlungsanzahl, um die Anzahl der Partitionen zu bestimmen. Wenn dieser Parameter auf gesetzt istfalse , wird die tatsächliche AWS DMS Anzahl der Sammlungen verwendet. Der Standardwert ist true . |
Gibt an, ob eine geschätzte Sammlungsanzahl oder die tatsächliche Sammlungsanzahl verwendet werden soll, um die Anzahl der Partitionen zu berechnen, die parallel geladen werden sollen. |
max-records-skip-per-page |
(Optional) Wenn type für bestimmte Sammlungen eines MongoDB- oder Amazon-DocumentDB-Endpunkts partitions-auto ist, ist dies Anzahl der Datensätze, die bei der Ermittlung der Grenzen für jede Partition gleichzeitig übersprungen werden sollen. AWS DMS
verwendet einen Ansatz zum seitenweisen Überspringen, um die Mindestgrenze für eine Partition zu bestimmen. Der Standardwert ist 10 000. |
Gibt die Anzahl der Datensätze an, die bei der Festlegung der Grenzen für jede Partition gleichzeitig übersprungen werden sollen. Das Festlegen eines relativ großen Werts vom Standard aus kann zu Cursor-Timeouts und Aufgabenfehlern führen. Das Festlegen eines relativ niedrigen Werts vom Standard aus führt zu mehr Operationen pro Seite und zu einem langsameren vollständigen Laden. |
batch-size |
(Optional) Wenn type für bestimmte Sammlungen eines MongoDB- oder Amazon-Endpunkts partitions-auto ist, begrenzt dieser Ganzzahlwert die Anzahl der Dokumente, die in einem Round-Trip-Stapel zurückgegeben werden. Wenn die Stapelgröße Null (0) ist, verwendet der Cursor die vom Server definierte maximale Stapelgröße. Der Standardwert ist 0. |
Gibt die maximale Anzahl von Dokumenten an, die in einem Stapel zurückgegeben werden. Für jeden Stapel ist ein Roundtrip zum Server erforderlich. |
partitions |
Wenn type partitions-list ist, handelt es sich um ein Array von Zeichenfolgen, die die Namen der parallel zu ladenden Partitionen angeben. |
Die Namen der Partitionen, die parallel geladen werden. |
subpartitions |
(Nur Oracle-Endpunkte) Wenn type partitions-list ist, handelt es sich um ein Array von Zeichenfolgen, die die Namen der parallel zu ladenden Unterpartitionen angeben. |
Die Namen der Unterpartitionen, die parallel geladen werden. |
columns |
Wenn type ranges ist, handelt es sich um ein Array von Zeichenfolgen, die die Ansicht der bereichsbasierten Tabellen-, Ansichts- oder Sammlungssegmente identifiziert, die parallel geladen werden sollen. |
Die Namen der Spalten, die bereichsbasierte Tabellen-, Ansichts- oder Sammlungssegmente angeben, die parallel geladen werden sollen. |
boundaries |
Wenn type ranges ist, handelt es sich um ein Array mit Spalte-Wert-Arrays. Jedes Spalte-Wert-Array enthält Spaltenwerte in der von columns angegebenen Menge und Reihenfolge. Ein Spalte-Wert-Array gibt die obere Grenze eines Tabellen-, Ansichts- oder Sammlungssegments an. Jedes zusätzliche Spalte-Wert-Array fügt die obere Grenze für ein zusätzliches Tabellen-, Ansichts- oder Sammlungssegment hinzu. Alle derartigen bereichsbasierten Tabellen-, Ansichts- oder Sammlungssegmente werden parallel geladen. |
Spaltenwerte, die bereichsbasierte Tabellen-, Ansichts- oder Sammlungspartitionen identifizieren, die parallel geladen werden sollen. |
lob-settings |
Ein Objekt mit den folgenden Parametern:
|
Ein Wert, der die LOB Behandlung für die Tabelle oder Ansicht angibt, die durch die object-locator Option identifiziert wird. Die angegebene LOB Behandlung überschreibt alle LOB Aufgabeneinstellungen nur für diese Tabelle oder Ansicht. Weitere Informationen zur Verwendung der LOB Einstellungsparameter finden Sie unterAngeben von LOB Einstellungen für eine ausgewählte Tabelle oder Ansicht. |
mode |
Gibt die Migrationsbehandlung für LOBs in der angegebenen Tabelle oder Ansicht anhand der folgenden Werte an:
|
Der für die Migration verwendete MechanismusLOBs. |
bulk-max-size |
Der Effekt dieses Werts hängt vom mode ab. |
Die maximale Größe von LOBs in Kilobyte-Schritten. Geben Sie diese Option nur an, wenn Sie klein replizieren müssen LOBs oder wenn der Zielendpunkt keine unbegrenzte Größe unterstützt. LOB |
Platzhalter in Tabelleneinstellungen sind eingeschränkt
Die Verwendung des Prozent-Platzhalters ("%"
) in-"table-settings"
Regeln wird für Quelldatenbanken nicht unterstützt, wie im Folgenden dargestellt.
{
"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
}
}
Wenn Sie die "table-settings"
Regeln wie abgebildet verwenden"%"
, wird die folgende Ausnahme AWS DMS zurückgegeben.
Error in mapping rules. Rule with ruleId = x failed validation. Exact
schema and table name required when using table settings rule.
AWS Empfiehlt außerdem, nicht eine große Anzahl großer Sammlungen mithilfe einer einzigen Aufgabe mit zu ladenparallel-load
. Beachten Sie, dass von AWS DMS
der Ressourcenkonflikt sowie die Anzahl der parallel geladenen Segmente um den Wert des Parameters MaxFullLoadSubTasks
für die Aufgabeneinstellungen begrenzt wird, wobei der Höchstwert 49 beträgt.
Geben Sie stattdessen alle Sammlungen für Ihre Quelldatenbank für die größten Sammlungen an, indem Sie sie "schema-name"
und "table-name"
einzeln angeben. Skalieren Sie Ihre Migration außerdem korrekt. Führen Sie beispielsweise mehrere Aufgaben auf einer ausreichenden Anzahl von Replikations-Instances aus, um eine große Anzahl großer Sammlungen in Ihrer Datenbank zu verwalten.
Verwendung des parallelen Ladens für ausgewählte Tabellen und Ansichten
Um die Migration zu beschleunigen und effizienter zu gestalten, können Sie für ausgewählte Tabellen, Ansichten und Sammlungen die parallele Ladung verwenden. Mit anderen Worten: Sie können eine einzelne segmentierte Tabelle, Ansicht oder Sammlung mit mehreren Threads parallel migrieren. Zu diesem Zweck AWS DMS teilt eine Vollladeaufgabe in Threads auf, wobei jedes Tabellensegment einem eigenen Thread zugewiesen wird.
Mit diesem parallelen Ladevorgang können mehrere Threads mehrere Tabellen, Ansichten und Sammlungen vom Quellendpunkt entladen. Anschließend können Sie mehrere Threads migrieren und die gleichen Tabellen, Ansichten und Sammlungen parallel auf den Zielendpunkt laden. Bei einigen Datenbank-Engines können Sie die Tabellen und Ansichten nach vorhandenen Partitionen oder Unterpartitionen aufteilen. Für andere Datenbank-Engines können Sie Sammlungen AWS DMS automatisch nach bestimmten Parametern segmentieren lassen (Autosegmentierung). Andernfalls können Sie jede Tabelle, Ansicht oder Sammlung nach den von Ihnen angegebenen Spaltenwertbereichen segmentieren.
Paralleles Laden wird für die folgenden Quellendpunkte unterstützt:
-
Oracle
-
SQLMicrosoft-Server
-
Mein SQL
-
Postgret SQL
-
IBMDb2 LUW
-
SAPAdaptiver Server für Unternehmen () ASE
-
MongoDB (unterstützt nur die Optionen Autosegmentierung und Bereichssegmentierung einer parallelen Volllast)
-
Amazon DocumentDB (unterstützt nur die Optionen Autosegmentierung und Bereichssegmentierung einer parallel Volllast)
AWS DMS Unterstützt für MongoDB- und Amazon DocumentDB DocumentDB-Endpoints die folgenden Datentypen für Spalten, die Partitionsschlüssel für die Bereichssegmentierungsoption einer parallel Volllast sind.
-
Double
-
String
-
ObjectId
-
32-Bit-Ganzzahl
-
64-Bit-Ganzzahl
Das parallele Laden zur Verwendung mit Tabelleneinstellungsregeln wird für die folgenden Zielendpunkte unterstützt:
-
Oracle
-
SQLMicrosoft-Server
-
Mein SQL
-
Postgret SQL
-
Amazon S3
-
SAPAdaptiver Server für Unternehmen () ASE
-
Amazon-Redshift
-
MongoDB (unterstützt nur die Optionen Autosegmentierung und Bereichssegmentierung einer parallelen Volllast)
-
Amazon DocumentDB (unterstützt nur die Optionen Autosegmentierung und Bereichssegmentierung einer parallel Volllast)
-
Db2 LUW
Verwenden Sie die MaxFullLoadSubTasks
-Aufgabeneinstellung, um die maximale Anzahl an Tabellen und Ansichten anzugeben, die parallel geladen werden.
Um die maximale Anzahl von Threads pro Tabelle oder Ansicht für die unterstützten Ziele einer Aufgabe zum parallelen Laden anzugeben, definieren Sie mehr Segmente mithilfe von Spaltenwertgrenzen.
Wichtig
MaxFullLoadSubTasks
steuert die Anzahl der Tabellen oder Tabellensegmente, die parallel geladen werden sollen. ParallelLoadThreads
steuert die Anzahl der Threads, die von einer Migrationsaufgabe verwendet werden, um die Lasten parallel auszuführen. Diese Einstellungen sind multiplikativ. Daher ist die Gesamtzahl der Threads, die während einer Vollast-Aufgabe verwendet werden, ungefähr das Ergebnis des Werts ParallelLoadThreads
multipliziert mit dem Wert von MaxFullLoadSubTasks
(ParallelLoadThreads
* MaxFullLoadSubtasks)
.
Wenn Sie Aufgaben mit einer hohen Anzahl von Volllast-Unteraufgaben und einer hohen Anzahl von parallelen Lade-Threads erstellen, kann Ihre Aufgabe zu viel Speicher verbrauchen und fehlschlagen.
Um die maximale Anzahl von Threads pro Tabelle für Amazon DynamoDB-, Amazon-Kinesis-Data-Streams-, Apache-Kafka- oder Amazon-Elasticsearch-Ziele anzugeben, verwenden Sie die Zielmetadaten-Aufgabeneinstellung ParallelLoadThreads
.
Sie geben die Puffergröße für eine Aufgabe zum parallelen Laden bei Verwendung von ParallelLoadThreads
mithilfe der Zielmetadaten-Aufgabeneinstellung ParallelLoadBufferSize
an.
Die Verfügbarkeit von ParallelLoadThreads
und ParallelLoadBufferSize
sowie deren Einstellungen hängen vom Ziel-Endpunkt ab.
Weitere Informationen zu den Einstellungen ParallelLoadThreads
und ParallelLoadBufferSize
finden Sie unter Ziel-Metadaten-Aufgabeneinstellungen. Weitere Informationen zur MaxFullLoadSubTasks
-Einstellung finden Sie unter Aufgabeneinstellungen für vollständiges Laden. Weitere Informationen zu den Zielendpunkten finden Sie unter den entsprechenden Themen.
Wenn Sie paralleles Laden verwenden möchten, können Sie mit der parallel-load
-Option eine Tabellenzuweisungsregel des Typs table-settings
angeben. In der table-settings
-Regel können Sie die Segmentierungskriterien für eine einzelne Tabelle, Ansicht oder Sammlung, die parallel geladen werden soll, angeben. Um dies zu tun, setzen Sie den type
-Parameter der parallel-load
-Option auf eine der verschiedenen Optionen.
Wie Sie dies tun, hängt davon ab, wie Sie die Tabelle, Ansicht oder Sammlung für das parallele Laden segmentieren möchten.
-
Nach Partitionen (oder Segmenten) – Alle vorhandenen Tabellen- oder Ansichtspartitionen (oder Segmente) werden mithilfe des
partitions-auto
-Typs geladen. Oder Laden nur ausgewählter Partitionen mithilfe despartitions-list
-Typs mit einem angegebenen Partitionen-Array.Nur für MongoDB- und Amazon DocumentDB DocumentDB-Endpoints laden Sie alle oder bestimmte Sammlungen nach Segmenten, die AWS DMS automatisch auch unter Verwendung des
partitions-auto
Typs und zusätzlicher optionaler Parameter berechnet werden.table-settings
-
(Nur Oracle-Endpunkte) Nach Unterpartitionen – Laden alle vorhandenen Tabellen- oder Ansichtsunterpartitionen mithilfe des
subpartitions-auto
-Typs. Oder Laden nur ausgewählter Unterpartitionen mithilfe despartitions-list
-Typs mit einemsubpartitions
-Array. -
Nach Segmenten, die Sie definieren – Laden von Ihnen definierter Tabellen-, Ansichts- oder Sammlungssegmente mithilfe von Spalte-Wert-Grenzen. Um dies zu tun, verwenden Sie den
ranges
-Typ mit angegebenencolumns
- undboundaries
-Arrays.Anmerkung
SQLPostgre-Endpunkte unterstützen nur diese Art von parallel Laden. MongoDB und Amazon DocumentDB als Quellendpunkte unterstützen sowohl diesen Bereichssegmentierungstyp als auch den Autosegmentierungstyp einer parallelen Volllast (
partitions-auto
).
Um weitere Tabellen, Ansichten oder Sammlungen zum parallelen Laden zu identifizieren, geben Sie zusätzliche table-settings
-Objekte mit parallel-load
-Optionen an.
In den folgenden Verfahren erfahren Sie, wie Sie JSON für jeden Parallelladetyp programmieren, vom einfachsten bis zum komplexesten.
So geben Sie alle Tabellen-, Ansichts- oder Sammlungspartitionen oder alle Tabellen- oder Ansichts-Unterpartitionen an
-
Geben Sie
parallel-load
entweder mit dempartitions-auto
-Typ oder demsubpartitions-auto
-Typ an (aber nicht mit beiden).Jede Tabellen-, Ansichts- oder Sammlungspartition oder -unterpartition wird dann automatisch einem eigenen Thread zugeordnet.
Bei manchen Endpunkten beinhaltet das parallele Laden nur dann Partitionen oder Unterpartitionen nur, wenn sie bereits für die Tabelle oder Ansicht definiert sind. Für MongoDB- und Amazon DocumentDB DocumentDB-Quellendpunkte können Sie die Partitionen (oder Segmente) anhand optionaler zusätzlicher Parameter AWS DMS automatisch berechnen lassen. Dies sind beispielsweise
number-of-partitions
,collection-count-from-metadata
,max-records-skip-per-page
undbatch-size
.
So geben Sie ausgewählte Tabellen- oder Ansichtspartitionen, -unterpartitionen oder beides an:
-
Geben Sie
parallel-load
mit dempartitions-list
-Typ an. -
(Optional) Fügen Sie Partitionen ein, indem Sie ein Array von Partitionsnamen als den Wert für
partitions
angeben.Jede angegebene Partition wird dann einem eigenen Thread zugeordnet.
Wichtig
Stellen Sie bei Oracle-Endpunkten sicher, dass sich Partitionen und Unterpartitionen nicht überlappen, wenn Sie sie für das parallele Laden auswählen. Wenn Sie überlappende Partitionen und Unterpartitionen verwenden, um Daten parallel zu laden, werden Einträge dupliziert oder der Vorgang schlägt aufgrund einer Verletzung der Primärschlüssel-Duplikat-Regel fehl.
-
(Optional, nur für Oracle-Endpunkte) Fügen Sie Unterpartitionen ein, indem Sie ein Array von Unterpartitionsnamen als den Wert für
subpartitions
angeben.Jede angegebene Unterpartition wird dann einem eigenen Thread zugeordnet.
Anmerkung
Paralleles Laden enthält Partitionen oder Unterpartitionen nur, wenn sie bereits für die Tabelle oder Ansicht definiert sind.
Sie können Tabellen- oder Ansichtssegmente als Bereiche von Spaltenwerten angeben. Wenn Sie dies tun, achten Sie auf diese Spalteneigenschaften:
-
Die Angabe indizierter Spalten verbessert die Leistung erheblich.
-
Sie können bis zu 10 Spalten angeben.
-
Sie können keine Spalten verwenden, um Segmentgrenzen mit den folgenden AWS DMS Datentypen zu definieren:DOUBLE,,FLOAT, und BLOB CLOB NCLOB
-
Datensätze mit Nullwerten werden nicht repliziert.
So geben Sie Tabellen-, Ansichts- oder Sammlungssegmente als Bereiche von Spaltenwerten an
-
Geben Sie
parallel-load
mit demranges
-Typ an. -
Definieren Sie eine Begrenzung zwischen Tabellen- oder Ansichtssegmenten, indem Sie ein Array von Tabellenspaltennamen als den Wert für
columns
angeben. Wiederholen Sie diese Schritte für jede Spalte, für die Sie eine Begrenzung zwischen Tabellen- oder Ansichtssegmenten definieren möchten.Beachten Sie, dass die Reihenfolge der Spalten von Bedeutung ist. Dabei ist die erste Spalte bei der Definition jeder Begrenzung am wichtigsten und die letzte Spalte ist am unwichtigsten. Einzelheiten dazu finden Sie in den folgenden Schritten und Abschnitten.
-
Definieren Sie die Datenbereiche für alle Tabellen- oder Ansichtssegmente durch Angabe eines Begrenzungsarrays als Wert für
boundaries
. Bei einem Begrenzungsarray handelt es sich um ein Array mit Spalte-Wert-Arrays. Führen Sie dazu die folgenden Schritte aus:-
Geben Sie jedes Element eines Spalte-Wert-Arrays als Wert an, der jeder Spalte entspricht. Dabei stellt jedes Spalte-Wert-Array die obere Grenze für jedes Tabellen- oder Ansichtssegment dar, das Sie definieren möchten: Geben Sie jede Spalte in der gleichen Reihenfolge an, in der Sie diese Spalte in dem
columns
-Array angegeben haben.Geben Sie Werte für DATE Spalten in dem von der Quelle unterstützten Format ein.
-
Geben Sie jedes Array mit Spaltenwerten in der Reihenfolge als obere Grenze für jedes Segment von unten bis zum next-to-top Segment der Tabelle oder Ansicht an. Wenn Zeilen oberhalb der von Ihnen angegebenen oberen Grenze vorhanden sind, stellend diese Zeilen die oberen Segment der Tabelle oder Ansicht dar. Damit ist die Anzahl der bereichsbasierten Segmente potentiell eins höher, als die Anzahl der Segmentgrenzen im Grenz-Array. Jedes dieser bereichsbasierten Segmente wird einem eigenen Thread zugeordnet.
Alle Tabellendaten, die nicht Null sind, werden repliziert. Dies gilt auch, wenn Sie nicht für alle Spalten in der Tabelle oder Ansicht Datenbereiche definieren.
Nehmen wir beispielsweise an, Sie definieren drei Spaltenwert-Arrays für SpaltenCOL1,, COL2 und wie folgt. COL3
COL1 COL2 COL3 10 30 105 20 20 120 100 12 99 Sie haben drei Segmentgrenzen für einen möglichen Gesamtwert von vier Segmenten definiert.
Um die Bereiche der für jedes Segment zu replizierenden Zeilen zu identifizieren, wendet die Replikations-Instance einen Suchalgorithmus auf diese drei Spalten für jedes der vier Segmente an. Die Suche sieht wie folgt aus:
- Segment 1
-
Replizieren Sie alle Zeilen, in denen Folgendes zutrifft: Die ersten Werte mit zwei Spalten sind kleiner oder gleich den entsprechenden Werten für die Obergrenze für Segment 1. Außerdem sind die Werte der dritten Spalte kleiner als der Wert der Obergrenze für Segment 1 .
- Segment 2
-
Replizieren Sie alle Zeilen (außer Segment 1-Zeilen), wobei Folgendes zutrifft: Die ersten Werte mit zwei Spalten sind kleiner oder gleich den entsprechenden Werten für die Obergrenze für Segment 2. Außerdem sind die Werte der dritten Spalte kleiner als der Wert der Obergrenze für Segment 2 .
- Segment 3
-
Replizieren Sie alle Zeilen (außer Segment 2-Zeilen), wobei Folgendes zutrifft: Die ersten Werte mit zwei Spalten sind kleiner oder gleich den entsprechenden Werten für die Obergrenze für Segment 3. Außerdem sind die Werte der dritten Spalte kleiner als der Wert für den oberen Grenzwert für Segment 3 .
- Segment 4
-
Replizieren Sie alle verbleibenden Zeilen (außer den Zeilen Segment 1, 2 und 3).
In diesem Fall erstellt die Replikations-Instance wie folgt eine
WHERE
-Klausel zum Laden jedes Segment:- Segment 1
-
((COL1 < 10) OR ((COL1 = 10) AND (COL2 < 30)) OR ((COL1 = 10) AND (COL2 = 30) AND (COL3 < 105)))
- Segment 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)))
- Segment 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)))
- Segment 4
-
NOT ((COL1 < 100) OR ((COL1 = 100) AND (COL2 < 12)) OR ((COL1 = 100) AND (COL2 = 12) AND (COL3 < 99)))
-
Angeben von LOB Einstellungen für eine ausgewählte Tabelle oder Ansicht
Sie können LOB Aufgabeneinstellungen für eine oder mehrere Tabellen festlegen, indem Sie eine Tabellenzuordnungsregel table-settings
mit der lob-settings
Option für ein oder mehrere table-settings
Objekte erstellen.
Das Angeben von LOB Einstellungen für ausgewählte Tabellen oder Ansichten wird für die folgenden Quellendpunkte unterstützt:
-
Oracle
-
SQLMicrosoft-Server
-
Mein SQL
-
Postgret SQL
-
IBMDb2, abhängig von den
bulk-max-size
Einstellungenmode
und, wird im Folgenden beschrieben -
SAPAdaptive Server Enterprise (ASE), abhängig von den
bulk-max-size
Einstellungenmode
und, wie im Folgenden beschrieben
Das Angeben von LOB Einstellungen für ausgewählte Tabellen oder Ansichten wird für die folgenden Zielendpunkte unterstützt:
-
Oracle
-
SQLMicrosoft-Server
-
Mein SQL
-
Postgret SQL
-
SAPASE, abhängig von den
bulk-max-size
Einstellungenmode
und, wie im Folgenden beschrieben
Anmerkung
Sie können LOB Datentypen nur mit Tabellen und Ansichten verwenden, die einen Primärschlüssel enthalten.
Um LOB Einstellungen für eine ausgewählte Tabelle oder Ansicht zu verwenden, erstellen Sie eine Tabellenzuordnungsregel vom Typ table-settings
mit der lob-settings
Option. Dadurch wird die LOB Behandlung für die Tabelle oder Ansicht festgelegt, die durch die object-locator
Option identifiziert wird. In der table-settings
-Regel können Sie mit den folgenden Parametern ein lob-settings
-Objekt angeben:
-
mode
— Gibt den Mechanismus für die Handhabung der LOB Migration für die ausgewählte Tabelle oder Ansicht wie folgt an:-
limited
— Der eingeschränkte LOB Standardmodus ist der schnellste und effizienteste Modus. Verwenden Sie diesen Modus nur, wenn Sie alle klein LOBs sind (innerhalb von 100 MB) oder wenn der Zielendpunkt keine unbegrenzte LOB Größe unterstützt. Auch wenn Sie ihn verwendenlimited
, LOBs müssen alle innerhalb der von Ihnen festgelegten Größe liegenbulk-max-size
.In diesem Modus migriert die Replikationsinstanz bei einer Aufgabe mit vollständigem Laden alle LOBs Inline-Daten zusammen mit anderen Spaltendatentypen als Teil des Haupttabellen- oder View-Speichers. Die Instanz kürzt jedoch alle migrierten Daten, die LOB größer als Ihr
bulk-max-size
Wert sind, auf die angegebene Größe. Bei einer Change Data Capture (CDC) -Ladeaufgabe migriert die Instanz alle Daten LOBs mithilfe einer Quelltabellensuche, wie im vollständigen LOB Standardmodus (siehe unten).Anmerkung
Sie können Ansichten nur für Full-Load-Aufgaben migrieren.
-
unlimited
— Der Migrationsmechanismus für den LOB Vollmodus hängt von dem Wert ab, den Siebulk-max-size
wie folgt festgelegt haben:-
Vollständiger LOB Standardmodus — Wenn Sie den Wert
bulk-max-size
auf Null setzen, migriert die Replikationsinstanz alles im LOBs LOB Standard-Vollmodus. Dieser Modus erfordert eine Suche in der Quelltabelle oder -ansicht, um alle zu migrierenLOB, unabhängig von ihrer Größe. Dieser Ansatz führt in der Regel zu einer viel langsameren Migration als LOB im eingeschränkten Modus. Verwenden Sie diesen Modus nur, wenn alle oder die meisten von Ihnen groß LOBs sind (1 GB oder mehr). -
Kombinierter LOB Vollmodus — Wenn Sie einen Wert ungleich Null angeben, verwendet dieser LOB Vollmodus eine Kombination aus eingeschränktem LOB Modus und LOB Standard-Vollmodus.
bulk-max-size
Das bedeutet, dass bei einer Vollladeaufgabe, wenn eine LOB Größe innerhalb Ihresbulk-max-size
Werts liegt, die LOB Inline wie im eingeschränkten LOB Modus migriert. Wenn die LOB Größe größer als dieser Wert ist, migriert die Instanz die Suche LOB mithilfe einer Quelltabelle oder Ansicht wie im LOB Standard-Vollmodus. Bei einer Aufgabe zum Laden von Change Data Capture (CDC) migriert die Instanz alle Daten LOBs mithilfe einer Quelltabellensuche, wie im standardmäßigen LOB Vollmodus (siehe unten). Dies geschieht unabhängig von der LOB Größe.Anmerkung
Sie können Ansichten nur für Full-Load-Aufgaben migrieren.
Dieser Modus führt zu einer Migrationsgeschwindigkeit, die einen Kompromiss zwischen dem schnelleren, eingeschränkten LOB Modus und dem langsameren LOB Standard-Vollmodus darstellt. Verwenden Sie diesen Modus nur, wenn Sie eine Mischung aus Klein und Groß LOBs haben und die meisten davon klein LOBs sind.
Diese Kombination aus LOB Vollmodus ist nur für die folgenden Endgeräte verfügbar:
-
IBMDb2 als Quelle
-
SAPASEals Quelle oder Ziel
-
Unabhängig vom Mechanismus, den Sie für den
unlimited
Modus angeben, migriert die Instanz LOBs vollständig, ohne Kürzung. -
-
none
— Die Replikationsinstanz migriert LOBs in der ausgewählten Tabelle oder Ansicht mithilfe Ihrer Task-Einstellungen. LOB Verwenden Sie diese Option, um Migrationsergebnisse mit und ohne LOB Einstellungen für die ausgewählte Tabelle oder Ansicht zu vergleichen.
Wenn die angegebene Tabelle oder Ansicht in der Replikation LOBs enthalten ist, können Sie die
BatchApplyEnabled
Task-Einstellung auf „true
Nur bei Verwendung deslimited
LOB Modus“ festlegen.In einigen Fällen könnten Sie
BatchApplyEnabled
auftrue
undBatchApplyPreserveTransaction
auffalse
setzen. In diesen Fällen wird für die Instanz festgelegt,true
obBatchApplyPreserveTransaction
es sich bei der Tabelle oder Ansicht um Oracle handelt LOBs und ob es sich bei den Quell- und Zielendpunkten um Oracle handelt. -
-
bulk-max-size
– Legen Sie diesen Wert in Kilobyte auf Null oder ungleich Null fest. Dies ist, wie bereits für vorherige Elemente beschrieben, vommode
abhängig. Imlimited
-Modus müssen Sie für diesen Parameter einen Wert ungleich Null setzen.Die Instanz wird in das Binärformat LOBs konvertiert. Um den größten Wert anzugeben, den LOB Sie replizieren müssen, multiplizieren Sie daher dessen Größe mit drei. Wenn Ihre größte Größe beispielsweise 2 MB LOB beträgt, legen Sie
bulk-max-size
sie auf 6.000 (6 MB) fest.
Beispiele für Tabelleneinstellungen
Im Folgenden finden Sie einige Beispiele, die die Verwendung der Tabelleneinstellungen illustrieren.
Beispiel Laden einer nach Partitionen segmentierten Tabelle
Im folgenden Beispiel wird eine SALES
-Tabelle effizienter in Ihre Quelle geladen, indem basierend auf allen Partitionen sie parallel geladen wird.
{
"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"
}
}
]
}
Beispiel Laden einer nach Unterpartitionen segmentierten Tabelle
Im folgenden Beispiel wird eine SALES
-Tabelle effizienter in Ihre Oracle-Quelle geladen, indem sie auf allen Unterpartitionen parallel geladen wird.
{
"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"
}
}
]
}
Beispiel Laden einer segmentierten Tabelle entsprechend einer Partitionsliste
Im folgenden Beispiel wird eine SALES
-Tabelle in Ihre Quelle geladen, indem sie entsprechend einer bestimmten Partitionsliste parallel geladen wird. Hier werden die angegebenen Partitionen nach Werten benannt, beginnend mit Teilen des englischen Alphabets, z. B. ABCD
, EFGH
usw.
{
"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"
]
}
}
]
}
Beispiel Laden einer segmentierten Oracle-Tabelle entsprechend einer ausgewählten Liste mit Partitionen und Unterpartitionen
Im folgenden Beispiel wird eine SALES
-Tabelle in Ihre Oracle-Quelle geladen, indem sie entsprechend einer ausgewählten Liste mit Partitionen und Unterpartitionen parallel geladen wird. Hier werden die angegebenen Partitionen nach Werten benannt, beginnend mit Teilen des englischen Alphabets, z. B. ABCD
, EFGH
usw. Die angegebenen Unterpartitionen sind nach mit Zahlen beginnenden Werten benannt, z. B. 01234
und 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"
]
}
}
]
}
Beispiel Laden einer durch Spaltenwertbereiche segmentierten Tabelle
Im folgenden Beispiel wird eine SALES
-Tabelle in Ihre Quelle geladen, indem sie nach den durch Bereich der SALES_NO
- und REGION
-Spaltenwerte angegebenen Segmente parallel geladen wird.
{
"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"
]
]
}
}
]
}
Hier werden zwei Spalten für die Segmentbereiche mit den Namen SALES_NO
und REGION
angegeben. Es werden zwei Grenzen mit den beiden Spaltenwertsätzen ["1000","NORTH"]
und ["3000","WEST"]
angegeben.
Diese beiden Grenzen identifizieren somit die folgenden drei Tabellensegmente, die parallel geladen werden:
- Segment 1
-
Zeilen mit
SALES_NO
weniger als oder gleich 1.000 undREGION
weniger als "NORTH“. Mit anderen Worten, die Verkaufszahlen in der EAST Region belaufen sich auf bis zu 1.000. - Segment 2
-
Andere Zeilen als Segment 1 mit
SALES_NO
weniger als oder gleich 3.000 undREGION
weniger als "WEST“. Mit anderen Worten, die Verkaufszahlen liegen in den SOUTH Regionen NORTH und über 1.000 bis 3.000. - Segment 3
-
Alle verbleibenden Zeilen außer Segment 1 und Segment 2. Mit anderen Worten, Verkaufszahlen über 3.000 in der Region WEST "".
Beispiel Laden von zwei Tabellen: Eine segmentiert nach Bereichen, die andere nach Partitionen
Das folgende Beispiel lädt eine SALES
-Tabelle parallel nach Segmentgrenzen, die Sie identifizieren. Es lädt außerdem eine ORDERS
-Tabelle parallel nach allen ihren Partitionen, wie in früheren Beispielen.
{
"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"
}
}
]
}
Beispiel Laden Sie eine Tabelle LOBs mithilfe der LOB Aufgabeneinstellungen
Im folgenden Beispiel wird eine ITEMS
Tabelle in Ihre Quelle geladen, einschließlich aller TabellenLOBs, unter Verwendung der zugehörigen LOB Taskeinstellungen. Die bulk-max-size
-Einstellung von 100 MB wird ignoriert und nur für ein schnelles Zurücksetzen auf den limited
- oder unlimited
-Modus beibehalten.
{
"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"
}
}
]
}
Beispiel Eine Tabelle im eingeschränkten LOBs LOB Modus laden
Im folgenden Beispiel wird eine ITEMS
Tabelle aus Ihrer Quelle LOBs im eingeschränkten LOB Modus (Standard) mit einer maximalen Größe von 100 MB ohne Kürzung geladen. AlleLOBs, die diese Größe überschreiten, werden auf 100 MB gekürzt. Alle LOBs werden zusammen mit allen anderen Spaltendatentypen geladen.
{
"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"
}
}
]
}
Beispiel Laden Sie eine Tabelle im LOBs LOB Standard-Vollmodus
Im folgenden Beispiel wird eine ITEMS
Tabelle in Ihre Quelle geladen, einschließlich aller Tabellen LOBs ohne Kürzung, im LOB Standardvollmodus. AlleLOBs, unabhängig von ihrer Größe, werden getrennt von anderen Datentypen geladen, wobei für jeden Datentyp eine Suche LOB in der Quelltabelle durchgeführt wird.
{
"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"
}
}
]
}
Beispiel Laden Sie eine Tabelle LOBs mithilfe der Kombination LOB im Vollmodus
Im folgenden Beispiel wird eine ITEMS
Tabelle in Ihre Quelle geladen, einschließlich aller Tabellen LOBs ohne Kürzung, im kombinierten LOB Vollmodus. Alle Daten mit LOBs einer Größe von bis zu 100 MB werden zusammen mit anderen Datentypen inline geladen, wie im eingeschränkten LOB Modus. Alle Daten mit einer Größe von LOBs mehr als 100 MB werden getrennt von anderen Datentypen geladen. Bei diesem separaten Ladevorgang wird, wie LOB im LOB Standard-Vollmodus, jeweils eine Suche in der Quelltabelle durchgeführt.
{
"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"
}
}
]
}