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 die 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 ETL Zero-Integration hinzufügen, indem Sie The AWS Management Console, The AWS Command Line Interface (AWS CLI) oder Amazon verwenden RDSAPI.

Wenn die Integration einen bereitgestellten Amazon Redshift Redshift-Cluster als Ziel hat, muss sich der Cluster auf Patch 180 oder höher befinden.

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 hat die folgenden Elemente:

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 Format database.table für Aurora My SQL oder database.schema.table für Aurora Postgre SQL. Sie können Literalnamen angeben oder reguläre Ausdrücke definieren.

Anmerkung

Für Aurora My werden SQL reguläre Ausdrücke sowohl im Datenbank- als auch im Tabellennamen unterstützt. Für Aurora Postgre SQL werden reguläre Ausdrücke nur im Schema- und Tabellennamen unterstützt, nicht im Datenbanknamen.

Sie können keine Filter oder Denylisten 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 SQL Postgre-Quell-DB-Cluster auswählen, müssen Sie mindestens ein Datenfiltermuster angeben. Das Muster muss mindestens eine einzige Datenbank (database-name.*.*) für die Replikation nach Amazon Redshift enthalten.

Die folgende Abbildung zeigt die Struktur der Aurora My SQL 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

Wenn Sie den verwenden 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:

Aurora My SQL

mydb.mytable, mydb./table_\d+/

Aurora Postgret SQL

mydb.myschema.mytable, mydb.myschema./table_\d+/

Wenn Sie den verwenden AWS CLI, muss derselbe Datenfilter jedoch das folgende Format haben:

Aurora My SQL

'include: mydb.mytable, include: mydb./table_\d+/'

Aurora Postgret SQL

'include: mydb.myschema.mytable, include: mydb.myschema./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. In der bedeutet dies AWS Management Console, 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.

Aurora Meine SQL Beispiele

Die folgenden Beispiele zeigen, wie Datenfilterung für Aurora My SQL ETL Zero-Integrations 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'

Aurora Postgre-Beispiele SQL

Die folgenden Beispiele zeigen, wie Datenfilterung für Aurora SQL ETL Postgre-Null-Integrationen funktioniert:

  • Schließt alle Tabellen in die books Datenbank ein:

    'include: books.*.*'
  • Schließt alle mystery in der books Datenbank benannten Tabellen aus:

    'include: books.*.*, exclude: books.*.mystery'
  • Nehmen Sie eine Tabelle innerhalb der books Datenbank in das mystery Schema und eine Tabelle innerhalb der employee Datenbank in das finance Schema auf:

    'include: books.mystery.stephen_king, include: employee.finance.benefits'
  • Schließt alle Tabellen in die books Datenbank und das science_fiction Schema ein, mit Ausnahme derjenigen, die die Teilzeichenfolge king 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 im mystery 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 werden table_movies im fiction Schema und table_books im mystery Schema repliziert, aber table_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 mit dem AWS Management Console AWS CLI, dem oder Amazon konfigurieren 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.

Um Datenfilter zu einer Null-Integration hinzuzufügen ETL
  1. Melden Sie sich bei der an 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 Aurora SQL My-Integration:

    Datenfilter für eine ETL Null-Integration in der RDS Konsole
  4. Wenn alle Änderungen Ihren Wünschen entsprechen, wählen Sie Weiter und Änderungen speichern aus.

Um einer ETL Zero-Integration mithilfe von Datenfilter hinzuzufügen 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.