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.
Verwenden von Quellfiltern
Sie können Quellfilter verwenden, um Anzahl und Art der Datensätze zu beschränken, die von Ihrer Quelle auf Ihr Ziel übertragen werden. So können Sie beispielsweise festlegen, dass nur die am Hauptsitz ansässigen Angestellten in die Zieldatenbank übertragen werden. Filter sind Teil einer Auswahlregel. Sie wenden Filter auf eine Datenspalte an.
Quellfilter müssen diese Einschränkungen befolgen:
-
Eine Auswahlregel kann keine Filter oder einen oder mehrere Filter haben.
-
Jeder Filter kann eine oder mehrere Filterbedingungen haben.
-
Wenn mehr als ein Filter verwendet wird, wird die Liste der Filter kombiniert, als ob die Filter mit einem UND-Operator verbunden wären.
-
Wenn mehr als eine Filterbedingung in einem einzigen Filter verwendet wird, wird die Liste der Filterbedingungen so kombiniert, als ob die Filterbedingungen mit einem ODER-Operator verbunden wären.
-
Filter werden nur angewendet, wenn
rule-action = 'include'
. -
Filter erfordern einen Spaltennamen und eine Liste von Filterbedingungen. Filterbedingungen müssen einen Filteroperator enthalten, der je nach Operator einem Wert, zwei Werten oder keinem Wert zugeordnet ist.
-
Bei Spaltennamen, Tabellennamen, Ansichtsnamen und Schemanamen wird zwischen Groß- und Kleinschreibung unterschieden. Oracle und Db2 sollten immer GROSSBUCHSTABEN verwenden.
-
Filter unterstützen nur Tabellen mit exakten Namen. Filter unterstützen keine Platzhalter.
Die folgenden Einschränkungen gelten für die Verwendung von Quellfiltern:
-
Filter berechnen keine Spalten mit right-to-left Sprachen.
-
Wenden Sie keine Filter auf LOB-Spalten an.
-
Wenden Sie Filter nur auf unveränderliche Spalten an, die nach der Erstellung nicht aktualisiert werden. Wenn Quellfilter auf veränderliche Spalten angewendet werden, die nach der Erstellung aktualisiert werden können, kann es zu einem unerwünschten Verhalten kommen.
Ein Filter zum Ausschließen oder Einschließen bestimmter Zeilen in einer Spalte schließt die angegebenen Zeilen immer aus bzw. ein, selbst wenn die Zeilen später geändert werden. Angenommen, Sie schließen die Zeilen 1 bis 10 in Spalte A aus oder ein und später werden diese Zeilen geändert und werden zu den Zeilen 11 bis 20. In diesem Fall werden sie weiterhin aus- bzw. eingeschlossen, auch wenn die Daten nicht mehr identisch sind.
Angenommen, eine Zeile außerhalb des Filters wird später aktualisiert (oder aktualisiert und gelöscht) und sollte dann wie vom Filter definiert aus- oder eingeschlossen werden. In diesem Fall erfolgt die Replikation am Ziel.
Bei der Verwendung von Quellfiltern gelten die folgenden zusätzlichen Bedenken:
-
Es wird empfohlen, einen Index mithilfe der in der Filterdefinition enthaltenen Spalten und des Primärschlüssels zu erstellen.
Erstellen von Quellfilterregeln in JSON
Sie können Quellfilter erstellen, indem Sie den JSON-Parameter filters
einer Auswahlregel verwenden. Der filters
-Parameter gibt ein Array von einem oder mehreren JSON-Objekten an. Jedes Objekt verfügt über Parameter, die den Quell-Filtertyp, Spaltennamen und die Filterbedingungen festlegen. Diese Filterbedingungen umfassen einen oder mehrere Filteroperatoren und Filterwerte.
Die folgende Tabelle zeigt die Parameter, die Quellfilterung in einem filters
-Objekt festlegen.
Parameter |
Wert |
---|---|
|
source |
|
Ein Parameter mit dem Namen der Quellspalte, auf die der Filter angewendet werden soll. Der Name berücksichtigt Groß- und Kleinschreibung. |
|
Ein Array von einem oder mehreren Objekten, die einen Parameter filter-operator und null oder mehr zugehörige Wertparameter enthalten, je nach Wert für filter-operator . |
|
Ein Parameter mit einem der folgenden Werte:
|
keine Werte |
Null oder mehr Wertparameter, die mit
|
Die folgenden Beispiele zeigen einige gängige Möglichkeiten zur Nutzung von Quellfiltern.
Beispiel Einzelner Filter
Der folgende Filter repliziert alle Angestellten mit dem Wert empid >=
100
in die Zieldatenbank.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empid", "filter-conditions": [{ "filter-operator": "gte", "value": "50" },{ "filter-operator": "noteq", "value": "100" }] }] }] }
Beispiel Mehrere Filteroperatoren
Die folgenden Filter wenden mehrere Filteroperatoren auf eine einzelne Datenspalte an. Der folgende Filter repliziert alle Angestellten mit dem Wert (empid <=
10)
ODER (empid is between 50 and 75)
ODER (empid
>= 100)
in die Zieldatenbank.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empid", "filter-conditions": [{ "filter-operator": "lte", "value": "10" }, { "filter-operator": "between", "start-value": "50", "end-value": "75" }, { "filter-operator": "gte", "value": "100" }] }] }] }
Beispiel Mehrere Filter
Die folgenden Filter wenden mehrere Filter auf zwei Spalten in einer Tabelle an. Der Filter repliziert alle Angestellten mit dem Wert (empid <= 100)
UND (dept = tech)
in die Zieldatenbank.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empid", "filter-conditions": [{ "filter-operator": "lte", "value": "100" }] }, { "filter-type": "source", "column-name": "dept", "filter-conditions": [{ "filter-operator": "eq", "value": "tech" }] }] }] }
Beispiel Filtern von NULL-Werten
Der folgende Filter zeigt, wie nach leeren Werten gefiltert wird. Er repliziert alle Angestellten mit dem Wert dept = NULL
in die Zieldatenbank.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "dept", "filter-conditions": [{ "filter-operator": "null" }] }] }] }
Beispiel Filtern unter Verwendung von NOT-Operatoren
Einige der Operatoren können in negativer Form verwendet werden. Der folgende Filter repliziert alle Angestellten mit dem Wert (empid is < 50) OR (empid
is > 75)
in die Zieldatenbank.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empid", "filter-conditions": [{ "filter-operator": "notbetween", "start-value": "50", "end-value": "75" }] }] }] }
Beispiel Verwenden von kombinierten Filteroperatoren
Ab AWS DMS Version 3.5.0 können Sie inklusive Operatoren und negative Operatoren mischen.
Der folgende Filter repliziert alle Angestellten mit dem Wert (empid != 50) AND (dept is not
NULL)
in die Zieldatenbank.
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empid", "filter-conditions": [{ "filter-operator": "noteq", "value": "50" }] }, { "filter-type": "source", "column-name": "dept", "filter-conditions": [{ "filter-operator": "notnull" }] }] }] }
Beachten Sie bei Verwendung von null
mit anderen Filteroperatoren Folgendes:
Wenn Sie inklusive und negative Filterbedingungen sowie
null
-Filterbedingungen gemeinsam innerhalb desselben Filters verwenden, werden Datensätze mitNULL
-Werten nicht repliziert.Wenn Sie negative Filterbedingungen und
null
-Filterbedingungen ohne inklusive Filterbedingungen innerhalb desselben Filters verwenden, werden keine Daten repliziert.Bei Verwendung negativer Filterbedingungen ohne explizite Festlegung einer
null
-Filterbedingung werden Datensätze mitNULL
-Werten nicht repliziert.
Filtern nach Zeit und Datum
Bei der Auswahl der zu importierenden Daten können Sie ein Datum oder eine Uhrzeit als Teil Ihrer Filterkriterien angeben. AWS DMS verwendet das Datumsformat YYYY-MM-DD und das Uhrzeitformat YYYY-MM-DD HH:MM:SS zum Filtern. AWS DMS Die Vergleichsfunktionen folgen den SQLite-Konventionen. Weitere Informationen zu SQLite-Datentypen und -Datenvergleichen finden Sie unter Datatypes In SQLite Version 3
Der folgende Filter zeigt, wie Sie nach einem Datum filtern. Er repliziert alle Angestellten mit dem Wert empstartdate >= January 1, 2002
in die Zieldatenbank.
Beispiel Filter für einzelnes Datum
{ "rules": [{ "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "test", "table-name": "employee" }, "rule-action": "include", "filters": [{ "filter-type": "source", "column-name": "empstartdate", "filter-conditions": [{ "filter-operator": "gte", "value": "2002-01-01" }] }] }] }