Datenfilterung für Aurora-Zero-Integrationen mit Amazon Redshift - Amazon Aurora

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.

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 für die Datenfilterung.

Jeder Filter besteht aus den folgenden Elementen:

Element Beschreibung
Typ des Filters

Ein Include Filtertyp umfasst alle Tabellen, die einem der Muster im Filterausdruck entsprechen. Ein Exclude Filtertyp schließt alle Tabellen aus, die einem der Muster entsprechen.

Filterausdruck

Eine durch Kommas getrennte Liste von Mustern. Ausdrücke müssen die Maxwell-Filtersyntax verwenden.

Muster

Ein Filtermuster im Formatdatabase.table. Sie können wörtliche Datenbank- und Tabellennamen (z. B.mydb.mytable) angeben oder Platzhalter (*) verwenden. Sie können auch reguläre Ausdrücke im Datenbank- und Tabellennamen definieren.

Aurora unterstützt das Filtern nur auf Datenbank- und Tabellenebene. Sie können keine Filter auf Spaltenebene (database.table.column) oder Ablehnungslisten einbeziehen

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:

Datenfilter für eine ETL Nullintegration
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 (IncludeoderExclude) 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 Includebooks.stephenking, der eine einzelne Tabelle enthält, die innerhalb stephenking der books Datenbank benannt wurde. Wenn Sie jedoch einen zweiten Filter von hinzufügen Excludebooks.*, ü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 ausmystery:

    '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 Teilzeichenfolge mystery 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 oder table_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
  1. Melden Sie sich an bei AWS Management Console und öffnen Sie die RDS Amazon-Konsole unter https://console.aws.amazon.com/rds/.

  2. 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.

  3. 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:

    Datenfilter für eine ETL Nullintegration in der RDS Konsole
  4. 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 auf. Geben Sie den --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.