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.
Aurora Zero-ETL-Integrationen unterstützen Datenfilterung, sodass Sie kontrollieren können, welche Daten aus Ihrem Aurora-DB-Cluster der 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. Aurora 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 AnmerkungFür Aurora MySQL werden reguläre Ausdrücke sowohl im Datenbank- als auch im Tabellennamen unterstützt. Für Aurora PostgreSQL werden reguläre Ausdrücke nur im Schema- und Tabellennamen unterstützt, nicht im Datenbanknamen. 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. |
Wichtig
Wenn Sie einen Aurora PostgreSQL-Quell-DB-Cluster auswählen, müssen Sie mindestens ein Datenfiltermuster angeben. Das Muster muss mindestens eine einzige Datenbank (
) für die Replikation nach Amazon Redshift enthalten.database-name
.*.*
Die folgende Abbildung zeigt die Struktur der Aurora MySQL-Datenfilter 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:
Aurora MySQL
mydb
.mytable
,mydb
./table_\d+/
Aurora PostgreSQL
mydb
.myschema
.mytable
,mydb
.myschema
./table_\d+/
Wenn Sie den verwenden AWS CLI, muss derselbe Datenfilter jedoch das folgende Format haben:
Aurora MySQL
'include:
mydb.mytable
, include:mydb./table_\d+/
'
Aurora PostgreSQL
'include:
mydb.myschema.mytable
, include:mydb.myschema./table_\d+/
'
Filterlogik
Wenn Sie in Ihrer Integration keine Datenfilter angeben, geht Aurora 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'
Aurora bewertet den Filter wie folgt:
'exclude:*.*, include: db.table1, include: db.table2'
Daher repliziert Aurora nur table1
und table2
von der angegebenen Datenbank in db
das Ziel-Data Warehouse.
Priorität filtern
Aurora 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 CLI Aurora 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.
Aurora MySQL Beispiele
Die folgenden Beispiele zeigen, wie Datenfilterung für Aurora MySQL 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'
Aurora PostgreSQL-Beispiele
Die folgenden Beispiele zeigen, wie Datenfilterung für Aurora PostgreSQL Zero-ETL-Integrationen funktioniert:
-
Schließt alle Tabellen in die Datenbank ein:
books
'include: books.*.*'
-
Schließt alle
mystery
in derbooks
Datenbank benannten Tabellen aus:'include: books.*.*, exclude: books.*.mystery'
-
Nehmen Sie eine Tabelle innerhalb der
books
Datenbank in dasmystery
Schema und eine Tabelle innerhalb deremployee
Datenbank in dasfinance
Schema auf:'include: books.mystery.stephen_king, include: employee.finance.benefits'
-
Schließt alle Tabellen in die
books
Datenbank und dasscience_fiction
Schema ein, mit Ausnahme derjenigen, die die Teilzeichenfolgeking
enthalten:'include: books.science_fiction.*, exclude: books.*./.*king.*/
-
Schließt alle Tabellen in die
books
Datenbank ein, außer denen, deren Schemaname beginnt mitsci
:'include: books.*.*, exclude: books./sci.*/.*'
-
Schließt alle Tabellen in der
books
Datenbank ein, mit Ausnahme der Tabellen immystery
Schema, die auf Folgendes endenking
:'include: books.*.*, exclude: books.mystery./.*king/'
-
Schließt alle Tabellen in der
books
Datenbank ein, die mit beginnentable_
, mit Ausnahme der benanntentable_stephen_king
. Zum Beispiel werdentable_movies
imfiction
Schema undtable_books
immystery
Schema repliziert, abertable_stephen_king
in keinem der Schemas:'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 Aurora 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 Aurora 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.