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.
Datenfilterung für Aurora-Zero-Integrationen mit Amazon Redshift
Sie können Datenfilterung für Aurora-Zero-Integrationen verwenden, um den Umfang der Replikation vom Aurora-DB-Cluster der zum Amazon Redshift-Ziel-Data Warehouse zu definieren. Anstatt alle Daten auf das Ziel zu replizieren, können Sie einen oder mehrere Filter definieren, die bestimmte Tabellen selektiv einbeziehen oder von der Replikation ausschließen. Für Null-Integrationen ist nur das Filtern auf Datenbank- und Tabellenebene verfügbar. ETL Sie können nicht nach Spalten oder Zeilen filtern.
Datenfilterung kann nützlich sein, wenn Sie:
-
Wenn Sie bestimmte Tabellen aus zwei oder mehr verschiedenen verbinden, benötigen Sie 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 Null-Integration hinzufügen, indem Sie ETL AWS Management Console, der AWS Command Line Interface (AWS CLI) oder der Amazon RDSAPI.
Wenn die Integration einen bereitgestellten Amazon Redshift Redshift-Cluster als Ziel hat, muss sich der Cluster auf Patch 180 oder höher befinden.
Anmerkung
Derzeit können Sie Datenfilterung nur für Integrationen durchführen, die Aurora SQL My-Quellen haben. Die Vorabversion von Aurora Postgre SQL Zero ETL Integrations with Amazon Redshift unterstützt keine Datenfilterung.
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 Integrations 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 Aurora unterstützt das Filtern nur auf Datenbank- und Tabellenebene. Sie können keine Filter auf Spaltenebene ( Eine einzelne Integration kann insgesamt maximal 99 Muster haben. In der Konsole können Sie Muster in einem einzigen Filterausdruck enthalten 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 Datenfilter in der Konsole:
Wichtig
Nehmen Sie keine personenbezogenen, vertraulichen oder sensiblen Informationen in Ihre Filtermuster auf.
Datenfilter im AWS CLI
Bei der Verwendung des AWS CLI um einen Datenfilter hinzuzufügen, unterscheidet sich die Syntax geringfügig von der der Konsole. Jedes einzelne Muster muss einem eigenen Filtertyp (Include
oderExclude
) zugeordnet werden. Sie können nicht mehrere Muster mit einem einzigen Filtertyp gruppieren.
In der Konsole können Sie beispielsweise die folgenden durch Kommas getrennten Muster in einer einzigen Include
Anweisung gruppieren:
mydb
.mytable
,mydb
./table_\d+/
Bei der Verwendung von AWS CLI, derselbe Datenfilter muss das folgende Format haben:
'include:
mydb.mytable
, include:mydb./table_\d+/
'
Filterlogik
Wenn Sie in Ihrer Integration keine Datenfilter angeben, geht Aurora von einem Standardfilter für aus include:*.*
und repliziert alle Tabellen in das Ziel-Data Warehouse. Wenn Sie jedoch mindestens einen Filter angeben, beginnt die Logik mit einem angenommenen Wertexclude:*.*
, was bedeutet, dass alle Tabellen automatisch von der Replikation ausgeschlossen werden. Auf diese Weise können Sie direkt definieren, welche Tabellen und Datenbanken eingeschlossen 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 db
werden nur table1
und table2
aus der genannten Datenbank in das Ziel-Data Warehouse repliziert.
Priorität filtern
Aurora wertet Datenfilter in der Reihenfolge aus, in der sie angegeben sind. Im AWS Management Console, das bedeutet, dass Aurora Filterausdrücke von links nach rechts und von oben nach unten auswertet. Wenn Sie ein bestimmtes Muster für den ersten Filter angeben, kann ein zweiter Filter oder sogar ein einzelnes Muster, das unmittelbar danach angegeben wird, dieses überschreiben.
Dies könnte beispielsweise Ihr erster Filter sein Include
books.stephenking
, der eine einzelne Tabelle enthält, die innerhalb stephenking
der books
Datenbank benannt wurde. Wenn Sie jedoch einen zweiten Filter von hinzufügen Exclude
books.*
, überschreibt dieser den zuvor definierten Include
Filter. Somit werden keine Tabellen aus dem books
Index nach Amazon Redshift repliziert.
Wenn Sie mindestens einen Filter angeben, beginnt die Logik mit einem angenommenen Wertexclude:*.*
, was bedeutet, dass alle Tabellen automatisch von der Replikation ausgeschlossen werden. Es hat sich daher bewährt, Ihre Filter vom breitesten bis zum am wenigsten breiten Filter zu definieren. Verwenden Sie beispielsweise eine oder mehrere Include
Anweisungen, um alle Daten zu definieren, die Sie replizieren möchten. Beginnen Sie dann mit dem Hinzufügen von Exclude
Filtern, um bestimmte Tabellen selektiv von der Replikation auszuschließen.
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 angegeben wurden, sodass ein Muster eines zuvor angegebenen überschreiben kann.
Beispiele
Die folgenden Beispiele zeigen, wie Datenfilterung für ETL Null-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 mit dem konfigurieren AWS Management Console, der AWS CLI, oder der Amazon RDSAPI.
Wichtig
Wenn Sie nach dem Erstellen einer Integration einen Filter hinzufügen, bewertet Aurora den Filter neu, als ob er schon immer existiert hätte. Es entfernt alle Daten, die sich derzeit im Amazon Redshift Redshift-Ziel-Data Warehouse befinden und nicht den neuen Filterkriterien entsprechen. Diese Aktion bewirkt, dass alle betroffenen Tabellen erneut synchronisiert werden.
Derzeit können Sie nur Datenfilterung für Integrationen mit Aurora SQL My-Quellen durchführen. Die Vorabversion von Aurora Postgre SQL Zero ETL Integrations with Amazon Redshift unterstützt keine Datenfilterung.
Um Datenfilter zu einer ETL Zero-Integration hinzuzufügen
Melden Sie sich an bei AWS Management Console und öffnen Sie die RDS Amazon-Konsole unter https://console.aws.amazon.com/rds/
. -
Wählen Sie im Navigationsbereich Zero- ETL Integrations 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 Integration:
-
Wenn alle Änderungen Ihren Wünschen entsprechen, wählen Sie Weiter und Änderungen speichern aus.
Um Datenfilter zu einer ETL Zero-Integration hinzuzufügen, verwenden Sie 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 ETL Nullintegration mit dem zu ändern RDSAPI, rufen Sie die ModifyIntegrationOperation auf. 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. Aurora repliziert dann alle Daten, die zuvor nicht den Filterkriterien entsprachen (dies aber jetzt tun), in das Amazon Redshift Redshift-Ziel-Data Warehouse.
Durch das Entfernen eines oder mehrerer Datenfilter werden alle betroffenen Tabellen erneut synchronisiert.