Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

Amazon Redshift との Aurora ゼロ ETL 統合でのデータフィルタリング - Amazon Aurora

Amazon Redshift との Aurora ゼロ ETL 統合でのデータフィルタリング

Aurora ゼロ ETL 統合でのデータフィルタリングを使用して、ソースの Aurora DB クラスターからターゲットの Amazon Redshift データウェアハウスへのレプリケーションの範囲を定義できます。すべてのデータをターゲットにレプリケートするのではなく、単一または複数のフィルターを定義して、特定のテーブルを選択的にレプリケーションの対象に含めたり除外したりできます。ゼロ ETL 統合の場合、フィルタリングはデータベースレベルとテーブルレベルでのみ使用できます。列や行でのフィルタリングはできません。

データフィルタリングは、次のような場合に便利です。

  • 2 つ以上の異なるソースクラスターの特定のテーブルを結合し、いずれのクラスターのデータ全体は必要ない場合。

  • データベース全体ではなく、テーブルのサブセットのみを使用して分析を行うことで、コストを節約する場合。

  • 電話番号、住所、クレジットカード情報などの機密情報を特定のテーブルから除外する場合。

ゼロ ETL 統合には、AWS Management Console、AWS Command Line Interface (AWS CLI)、または RDS API を使用して、データフィルターを追加できます。

統合でプロビジョンした Amazon Redshift クラスターをターゲットとして使用している場合、クラスターは パッチ 180 以降である必要があります。

データフィルターの形式

1 つの統合に対して複数のフィルターを定義できます。各フィルターは、フィルター式のパターンのいずれかに一致する既存および今後利用するデータベーステーブルを含めるまたは除外します。Aurora ゼロ ETL 統合では、データフィルタリングに Maxwell フィルター構文を使用します。

各フィルターには以下の要素が含まれます。

要素 説明
フィルタータイプ

Include フィルタータイプは、フィルター式のパターンのいずれかに一致するすべてのテーブルを含めます。Exclude フィルタータイプは、いずれかのパターンに一致するすべてのテーブルを除外します。

フィルター式

コンマ区切りのパターンのリスト。式では Maxwell フィルター構文を使用する必要があります。

パターン

フィルターパターンの形式は database.table (Aurora MySQL の場合) または database.schema.table (Aurora PostgreSQL の場合) リテラル名を指定するか、正規表現を定義できます。

注記

Aurora MySQL の場合、正規表現はデータベース名とテーブル名の両方でサポートされています。Aurora PostgreSQL の場合、正規表現はスキーマ名とテーブル名でのみサポートされ、データベース名ではサポートされていません。

列レベルのフィルターや拒否リストを含めることはできません。

1 つの統合に含めることができるパターンの合計数は、最大 99 個です。コンソールでは、パターンを 1 つのフィルター式に含めることも、複数の式に分散することもできます。1 つのパターンの長さは 256 文字を超えることはできません。

重要

Aurora PostgreSQL ソース DB クラスターを選択する場合は、少なくとも 1 つのデータフィルターパターンを指定する必要があります。このパターンには、Amazon Redshift へのレプリケーション用のデータベース (database-name.*.*) が少なくとも 1 つ含まれている必要があります。

次の図は、コンソールでの Aurora MySQL データフィルターの構造を示しています。

ゼロ ETL 統合のデータフィルター
重要

フィルターパターンには、個人を特定する情報、または機密情報を含めないでください。

AWS CLI のデータフィルター

AWS CLI を使用してデータフィルターを追加する場合、構文はコンソールと少し異なります。各パターンには、それぞれ独自のフィルタータイプ (Include または Exclude) を関連付ける必要があります。複数のパターンを 1 つのフィルタータイプにグループ化することはできません。

例えば、コンソールでは、以下のカンマで区切られたパターンを 1 つの Include ステートメントにまとめることができます。

Aurora MySQL

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

Aurora PostgreSQL

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

ただし AWS CLI を使用する際は、データフィルターを次のように記述する必要があります。

Aurora MySQL

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

Aurora PostgreSQL

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

フィルター論理

統合でデータフィルターを指定しない場合、Aurorainclude:*.* をデフォルトのフィルターと見なし、すべてのテーブルをターゲットデータウェアハウスに複製します。ただし、1 つまたは複数のフィルターを指定すると、ロジックは exclude:*.* を前提として開始されます。そのため、すべてのテーブルが自動的にレプリケーションから除外されます。これにより、どのテーブルとデータベースを含めるかを直接定義できます。

例えば、次のフィルターを定義する場合、

'include: db.table1, include: db.table2'

Aurora は、フィルターを次のように解釈します。

'exclude:*.*, include: db.table1, include: db.table2'

結果として、db という名前のデータベースから table1table2 のみがターゲットデータウェアハウスにレプリケートされます。

フィルターの優先順位

Aurora は、指定された順番にデータフィルターを適用します。AWS Management Console では、これは Aurora がフィルター式を左から右、上から下に適用することを意味します。1 つ目のフィルターに特定のパターンを指定しても、2 つ目のフィルターや、その直後に指定された個別のパターンでそのパターンを上書きできます。

例えば、1 つ目のフィルターが Include books.stephenking で、books データベース内の stephenking という名前のテーブルが 1 つ含まれているとします。ただし、2 つ目のフィルター Exclude books.* を追加すると、その前に定義されている Include フィルターが上書きされます。結果として、books インデックスのテーブルは Amazon Redshift に複製されません。

1 つまたは複数のフィルターを指定すると、ロジックは exclude:*.* を前提として開始されます。そのため、すべてのテーブルが自動的にレプリケーションから除外されます。そのため、一般的なベストプラクティスとしては、最も範囲の広いフィルターから最も範囲の狭いフィルターの順番で定義します。例えば、1 つまたは複数の Include ステートメントを使用して、複製するデータをすべて定義します。次に、特定のテーブルを複製から選択的に除外する Exclude フィルターを追加します。

AWS CLI を使用して定義するフィルターにも同じ原則が適用されます。Aurora は、これらのフィルターパターンを指定された順番で適用するため、あるパターンによってその前に指定されたフィルターパターンが上書きされる場合があります。

Aurora MySQL の例

以下の例は、Aurora MySQL ゼロ ETL 統合でのデータフィルタリングの仕組みを示しています。

  • すべてのデータベースとすべてのテーブルを含める。

    'include: *.*'
  • books データベース内のすべてのテーブルを含める。

    'include: books.*'
  • mystery という名前のすべてのテーブルを除外します。

    'include: *.*, exclude: *.mystery'
  • books データベース内の 2 つの特定のテーブルを含める。

    'include: books.stephen_king, include: books.carolyn_keene'
  • サブストリング mystery を含んでいるものを除き、books データベース内のすべてのテーブルを含めます。

    'include: books.*, exclude: books./.*mystery.*/'
  • mystery で始まるものを除き、books データベース内のすべてのテーブルを含めます。

    'include: books.*, exclude: books./mystery.*/'
  • mystery で終わるものを除き、books データベース内のすべてのテーブルを含めます。

    'include: books.*, exclude: books./.*mystery/'
  • table_stephen_king という名前のテーブルを除き、table_ で始まる books データベース内の すべてのテーブルを含めます。例えば、table_moviestable_books はレプリケートされますが、table_stephen_king はレプリケートされません。

    'include: books./table_.*/, exclude: books.table_stephen_king'

Aurora PostgreSQL の例

以下の例は、Aurora PostgreSQL ゼロ ETL 統合でのデータフィルタリングの仕組みを示しています。

  • books データベース内のすべてのテーブルを含めます。

    'include: books.*.*'
  • books データベース内の mystery という名前のテーブルをすべて除外します。

    'include: books.*.*, exclude: books.*.mystery'
  • books データベース内の mystery スキーマの 1 つのテーブルを含め、employee データベース内の finance スキーマの 1 つのテーブルを含めます。

    'include: books.mystery.stephen_king, include: employee.finance.benefits'
  • サブストリング king を含むテーブルを除き、books データベースおよび science_fiction スキーマ内のすべてのテーブルを含めます。

    'include: books.science_fiction.*, exclude: books.*./.*king.*/
  • sci で始まるスキーマ名を持つテーブルを除き、books データベース内のすべてのテーブルを含めます。

    'include: books.*.*, exclude: books./sci.*/.*'
  • mystery スキーマ内の king で終わるテーブルを除き、books データベース内のすべてのテーブルを含めます。

    'include: books.*.*, exclude: books.mystery./.*king/'
  • table_stephen_king という名前のテーブルを除き、table_ で始まる books データベース内のすべてのテーブルを含めます。例えば、fiction スキーマの table_moviesmystery スキーマの table_books はレプリケートされますが、どちらのスキーマでも table_stephen_king はレプリケートされません。

    'include: books.*./table_.*/, exclude: books.*.table_stephen_king'

統合へのデータフィルターの追加

AWS Management Console、AWS CLI、または Amazon RDS API を使用してデータフィルタリングを設定できます。

重要

統合の作成後にフィルターを追加すると、Aurora はフィルターがもともと存在していたものであるかのようにフィルターを適用し始めます。ターゲットの Amazon Redshift データウェアハウスに現在あるデータのうち、新しいフィルタリング条件に一致しないものは削除されます。このアクションにより、影響を受けるすべてのテーブルが再同期されます。

ゼロ ETL 統合にデータフィルターを追加するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/ を開きます。

  2. ナビゲーションペインから、[ゼロ ETL 統合] を選択します。データフィルターを追加する統合を選択して [変更] を選択します。

  3. [ソース] で、1 つまたは複数の Include ステートメントと Exclude ステートメントを追加します。

    次の図は、Aurora MySQL 統合のデータフィルターの例を示しています。

    RDS コンソールでのゼロ ETL 統合のデータフィルター
  4. すべての変更を完了したら、[続行][変更を保存] と選択します。

RDS コンソール

ゼロ ETL 統合にデータフィルターを追加するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/ を開きます。

  2. ナビゲーションペインから、[ゼロ ETL 統合] を選択します。データフィルターを追加する統合を選択して [変更] を選択します。

  3. [ソース] で、1 つまたは複数の Include ステートメントと Exclude ステートメントを追加します。

    次の図は、Aurora MySQL 統合のデータフィルターの例を示しています。

    RDS コンソールでのゼロ ETL 統合のデータフィルター
  4. すべての変更を完了したら、[続行][変更を保存] と選択します。

AWS CLI を使用してゼロ ETL 統合にデータフィルターを追加するには、modify-integration コマンドを呼び出します。統合 ID に加えて、Include および Exclude の Maxwell フィルターのカンマ区切りリストで --data-filter パラメーターを指定します。

次の例は、my-integration にフィルターパターンを追加します。

Linux、macOS、Unix の場合:

aws rds modify-integration \ --integration-identifier my-integration \ --data-filter 'include: foodb.*, exclude: foodb.tbl, exclude: foodb./table_\d+/'

Windows の場合:

aws rds modify-integration ^ --integration-identifier my-integration ^ --data-filter 'include: foodb.*, exclude: foodb.tbl, exclude: foodb./table_\d+/'

AWS CLI を使用してゼロ ETL 統合にデータフィルターを追加するには、modify-integration コマンドを呼び出します。統合 ID に加えて、Include および Exclude の Maxwell フィルターのカンマ区切りリストで --data-filter パラメーターを指定します。

次の例は、my-integration にフィルターパターンを追加します。

Linux、macOS、Unix の場合:

aws rds modify-integration \ --integration-identifier my-integration \ --data-filter 'include: foodb.*, exclude: foodb.tbl, exclude: foodb./table_\d+/'

Windows の場合:

aws rds modify-integration ^ --integration-identifier my-integration ^ --data-filter 'include: foodb.*, exclude: foodb.tbl, exclude: foodb./table_\d+/'

RDS API を使用してゼロ ETL 統合を変更するには、ModifyIntegration オペレーションを呼び出します。統合 ID を指定し、フィルターパターンのカンマ区切りリストを指定します。

RDS API を使用してゼロ ETL 統合を変更するには、ModifyIntegration オペレーションを呼び出します。統合 ID を指定し、フィルターパターンのカンマ区切りリストを指定します。

統合からのデータフィルターの削除

統合からデータフィルターを削除すると、Aurora は削除したフィルターが存在しなかったかのようにそれ以外のフィルターを適用し始めます。その後、Aurora は、以前はフィルタリング条件に一致しなかったが現在は一致しているすべてのデータをターゲットの Amazon Redshift データウェアハウスに複製します。

1 つ以上のデータフィルターを削除すると、影響を受けるすべてのテーブルが再同期されます。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.