

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
<a name="CHAP_Tasks.CustomizingTasks.Filters"></a>

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
<a name="CHAP_Tasks.CustomizingTasks.Filters.Applying"></a>

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  | 
| --- | --- | 
|   `filter-type`   | source | 
|  `column-name`  |  Ein Parameter mit dem Namen der Quellspalte, auf die der Filter angewendet werden soll. Der Name berücksichtigt Groß- und Kleinschreibung.  | 
|  `filter-conditions`  | 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. | 
|  `filter-operator`  |  Ein Parameter mit einem der folgenden Werte: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.Filters.html)  | 
|  `value` oder `start-value` und `end-value` oder keine Werte  |  Null oder mehr Wertparameter, die mit `filter-operator` verknüpft sind: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.Filters.html)  | 

Die folgenden Beispiele zeigen einige gängige Möglichkeiten zur Nutzung von Quellfiltern.

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

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

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

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

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

**Example 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 mit `NULL`-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 mit `NULL`-Werten nicht repliziert.

## Filtern nach Zeit und Datum
<a name="CHAP_Tasks.CustomizingTasks.Filters.Dates"></a>

Bei der Auswahl der zu importierenden Daten können Sie ein Datum oder eine Uhrzeit als Teil Ihrer Filterkriterien angeben. AWS DMS verwendet das Datums YYYY-MM-DD - und das Uhrzeitformat YYYY-MM-DD HH:MM:SS.SSS zum Filtern. Die Vergleichsfunktionen folgen den Konventionen. AWS DMS SQLite Weitere Informationen zu SQLite Datentypen und Datumsvergleichen finden Sie in der Dokumentation unter [Datentypen in SQLite Version 3.](https://sqlite.org/datatype3.html) SQLite 

Der folgende Filter zeigt, wie Sie nach einem Datum filtern. Er repliziert alle Angestellten mit dem Wert `empstartdate >= January 1, 2002` in die Zieldatenbank.

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