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.
Amazon RDS Zero-ETL-Integrationen unterstützen Datenfilterung, sodass Sie kontrollieren können, welche Daten aus Ihrem Warehouse repliziert werden. Anstatt die gesamte Datenbank zu replizieren, können Sie einen oder mehrere Filter anwenden, um bestimmte Tabellen selektiv ein- oder auszuschließen. Auf diese Weise können Sie die Speicher- und Abfrageleistung optimieren, indem sichergestellt wird, dass nur relevante Daten übertragen werden. Derzeit ist die Filterung auf Datenbank- und Tabellenebene beschränkt. Das Filtern auf Spalten- und Zeilenebene wird nicht unterstützt.
Datenfilterung kann nützlich sein, wenn Sie:
-
Verbinden Sie bestimmte Tabellen aus zwei oder mehr verschiedenen , und Sie benötigen keine vollständigen Daten aus einem der .
-
Sparen Sie Kosten, indem Sie Analysen nur mit einer Teilmenge von Tabellen und nicht mit einer ganzen Flotte von Datenbanken durchführen.
-
Filtern Sie vertrauliche Informationen wie Telefonnummern, Adressen oder Kreditkarteninformationen aus bestimmten Tabellen heraus.
Sie können Datenfilter zu einer Zero-ETL-Integration hinzufügen AWS Management Console, indem Sie die AWS Command Line Interface (AWS CLI) oder die Amazon RDS-API verwenden.
Wenn die Integration einen bereitgestellten Amazon Redshift Redshift-Cluster als Ziel hat, muss sich der Cluster auf Patch 180 oder höher befinden, um Datenfilterung verwenden zu können.
Themen
Format eines Datenfilters
Sie können mehrere Filter für eine einzelne Integration definieren. Jeder Filter schließt alle vorhandenen und future Datenbanktabellen ein oder schließt sie aus, die einem der Muster im Filterausdruck entsprechen. Amazon RDS Zero-ETL-Integrationen verwenden die Maxwell-Filtersyntax
Jeder Filter besteht aus den folgenden Elementen:
Element | Beschreibung |
---|---|
Typ des Filters |
Ein |
Filterausdruck |
Eine durch Kommas getrennte Liste von Mustern. Ausdrücke müssen die Maxwell-Filtersyntax |
Muster |
Ein Filtermuster im Format Sie können keine Filter oder Ablehnungslisten auf Spaltenebene einbeziehen. Eine einzelne Integration kann insgesamt maximal 99 Muster haben. In der Konsole können Sie Muster innerhalb eines einzelnen Filterausdrucks eingeben oder sie auf mehrere Ausdrücke verteilen. Ein einzelnes Muster darf nicht länger als 256 Zeichen sein. |
Die folgende Abbildung zeigt die Struktur der in der Konsole:

Wichtig
Nehmen Sie keine personenbezogenen, vertraulichen oder sensiblen Informationen in Ihre Filtermuster auf.
Datenfilter im AWS CLI
Wenn Sie den verwenden AWS CLI , um einen Datenfilter hinzuzufügen, unterscheidet sich die Syntax geringfügig von der der Konsole. Sie müssen jedem Muster einzeln einen Filtertyp (Include
oderExclude
) zuweisen, sodass Sie nicht mehrere Muster unter einem Filtertyp gruppieren können.
In der Konsole können Sie beispielsweise die folgenden durch Kommas getrennten Muster unter einer einzigen Include
Anweisung gruppieren:
mydb
.mytable
,mydb
./table_\d+/
Wenn Sie den verwenden AWS CLI, muss derselbe Datenfilter jedoch das folgende Format haben:
'include:
mydb.mytable
, include:mydb./table_\d+/
'
Filterlogik
Wenn Sie in Ihrer Integration keine Datenfilter angeben, geht Amazon RDS von einem Standardfilter von ausinclude:*.*
, der alle Tabellen in das Ziel-Data Warehouse repliziert. Wenn Sie jedoch mindestens einen Filter hinzufügen, wechselt die Standardlogik zuexclude:*.*
, wodurch standardmäßig alle Tabellen ausgeschlossen werden. Auf diese Weise können Sie explizit definieren, welche Datenbanken und Tabellen in die Replikation einbezogen werden sollen.
Wenn Sie beispielsweise den folgenden Filter definieren:
'include: db.table1, include: db.table2'
Amazon RDS bewertet den Filter wie folgt:
'exclude:*.*, include: db.table1, include: db.table2'
Daher repliziert Amazon RDS nur table1
und table2
von der angegebenen Datenbank in db
das Ziel-Data Warehouse.
Priorität filtern
Amazon RDS wertet Datenfilter in der von Ihnen angegebenen Reihenfolge aus. In der AWS Management Console verarbeitet es Filterausdrücke von links nach rechts und von oben nach unten. Ein zweiter Filter oder ein individuelles Muster, das dem ersten folgt, kann ihn überschreiben.
Wenn der erste Filter beispielsweise aktiviert istInclude books.stephenking
, schließt er nur die stephenking
Tabelle aus der books
Datenbank ein. Wenn Sie jedoch einen zweiten Filter hinzufügenExclude books.*
, überschreibt dieser den ersten Filter. Dadurch wird verhindert, dass Tabellen aus dem books
Index nach Amazon Redshift repliziert werden.
Wenn Sie mindestens einen Filter angeben, beginnt die Logik mit der Standardannahme, wodurch automatisch alle Tabellen exclude:*.*
von der Replikation ausgeschlossen werden. Es hat sich bewährt, Filter vom breitesten bis zum spezifischsten Filter zu definieren. Beginnen Sie mit einer oder mehreren Include
Anweisungen, um die zu replizierenden Daten anzugeben, und fügen Sie dann Exclude
Filter hinzu, um bestimmte Tabellen selektiv zu entfernen.
Das gleiche Prinzip gilt für Filter, die Sie mit dem definieren. AWS CLIAmazon RDS wertet diese Filtermuster in der Reihenfolge aus, in der Sie sie angeben, sodass ein Muster möglicherweise ein Muster überschreibt, das Sie zuvor angegeben haben.
Beispiele
Die folgenden Beispiele zeigen, wie Datenfilterung für Zero-ETL-Integrationen funktioniert:
-
Schließt alle Datenbanken und alle Tabellen ein:
'include: *.*'
-
Schließt alle Tabellen in die
books
Datenbank ein:'include: books.*'
-
Schließt alle Tabellen mit den folgenden Namen aus
mystery
:'include: *.*, exclude: *.mystery'
-
Schließt zwei spezifische Tabellen in die
books
Datenbank ein:'include: books.stephen_king, include: books.carolyn_keene'
-
Schließt alle Tabellen in die
books
Datenbank ein, außer denen, die die Teilzeichenfolgemystery
enthalten:'include: books.*, exclude: books./.*mystery.*/'
-
Schließt alle Tabellen in die
books
Datenbank ein, außer denen, die beginnen mitmystery
:'include: books.*, exclude: books./mystery.*/'
-
Schließt alle Tabellen in die
books
Datenbank ein, mit Ausnahme der Tabellen, die wie folgt endenmystery
:'include: books.*, exclude: books./.*mystery/'
-
Schließt alle Tabellen in der
books
Datenbank ein, die mit beginnentable_
, mit Ausnahme der benanntentable_stephen_king
. Zum Beispiel,table_movies
odertable_books
würde repliziert werden, aber nichttable_stephen_king
.'include: books./table_.*/, exclude: books.table_stephen_king'
Hinzufügen von Datenfiltern zu einer Integration
Sie können die Datenfilterung mithilfe der AWS Management Console AWS CLI, der oder der Amazon RDS-API konfigurieren.
Wichtig
Wenn Sie einen Filter hinzufügen, nachdem Sie eine Integration erstellt haben, behandelt Amazon RDS ihn so, als ob er schon immer existiert hätte. Es entfernt alle Daten im Amazon Redshift Redshift-Ziel-Data Warehouse, die nicht den neuen Filterkriterien entsprechen, und synchronisiert alle betroffenen Tabellen erneut.
Um Datenfilter zu einer Zero-ETL-Integration hinzuzufügen
Melden Sie sich bei der an AWS Management Console und öffnen Sie die Amazon RDS-Konsole unter https://console.aws.amazon.com/rds/
. -
Wählen Sie im Navigationsbereich Zero-ETL-Integrationen aus. Wählen Sie die Integration aus, zu der Sie Datenfilter hinzufügen möchten, und klicken Sie dann auf Ändern.
-
Fügen Sie unter Quelle eine oder mehrere
Include
Exclude
AND-Anweisungen hinzu.Die folgende Abbildung zeigt ein Beispiel für Datenfilter für eine MySQL-Integration:
-
Wenn Sie mit den Änderungen zufrieden sind, wählen Sie Weiter und Änderungen speichern.
Um einer Zero-ETL-Integration mithilfe von Datenfilter hinzuzufügen AWS CLI, rufen Sie den Befehl modify-integration--data-filter
Parameter zusätzlich zur Integrations-ID mit einer kommagetrennten Liste von und Maxwell-Filtern an. Include
Exclude
Im folgenden Beispiel werden Filtermuster zu hinzugefügt. my-integration
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:
aws rds modify-integration \ --integration-identifier
my-integration
\ --data-filter'include: foodb.*, exclude: foodb.tbl, exclude: foodb./table_\d+/'
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:
aws rds modify-integration ^ --integration-identifier
my-integration
^ --data-filter'include: foodb.*, exclude: foodb.tbl, exclude: foodb./table_\d+/'
Um eine Zero-ETL-Integration mithilfe der RDS-API zu ändern, rufen Sie den Vorgang auf ModifyIntegration. Geben Sie die Integrations-ID an und stellen Sie eine durch Kommas getrennte Liste von Filtermustern bereit.
Datenfilter aus einer Integration entfernen
Wenn Sie einen Datenfilter aus einer Integration entfernen, bewertet Amazon RDS die verbleibenden Filter neu, als ob der entfernte Filter nie existiert hätte. Anschließend repliziert es alle zuvor ausgeschlossenen Daten, die jetzt die Kriterien erfüllen, in das Amazon Redshift Redshift-Ziel-Data Warehouse. Dadurch wird eine Neusynchronisierung aller betroffenen Tabellen ausgelöst.