Amazon RDS 與亞馬 Amazon Redshift 零ETL集成的數據過濾 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon RDS 與亞馬 Amazon Redshift 零ETL集成的數據過濾

您可以使用 Amazon RDS 零ETL整合的資料篩選,定義從來源 Amazon 資料RDS庫 Aurora 資料庫到目標 Amazon Redshift 資料倉儲的複寫範圍。您不必將所有資料複製到目標,而是定義一或多個篩選,選擇性地包括或排除特定表格,以避免複製特定表格。僅在資料庫和資料表層級篩選可用於零ETL整合。您無法依欄或列進行篩選。

當您想要執行下列作業時,資料篩選可能很有用

  • 從兩個或多個不同的源數據集聯接某些表,你不需要從任何一個數據的完整數據。

  • 僅使用資料表子集而非使用整個資料庫叢集來執行分析,以節省成本。

  • 從特定表格中篩選出敏感資訊,例如電話號碼、地址或信用卡詳細資料。

您可以使用將資料篩選器新增至零ETL整合 AWS Management Console,該 AWS Command Line Interface (AWS CLI),或 Amazon RDS API。

如果整合以佈建的 Amazon Redshift 叢集做為其目標,則該叢集必須位於 180 或更高版本的修補程式上。

資料篩選的格式

您可以為單一整合定義多個篩選器。每個篩選器都包含或排除符合篩選器運算式中其中一個模式的任何現有和 future 資料庫表格。Amazon RDS 零ETL整合使用麥克斯韋篩選器語法進行資料篩選。

每個過濾器都具有以下元素:

Element 描述
過濾器類型

Include篩選器類型包括符合篩選器運算式中其中一個模式的所有表格。Exclude篩選器類型會排除符合其中一個模式的所有表格。

篩選條件表達式

以逗號分隔的模式清單。運算式必須使用麥克斯韋篩選語法

模式

格式中的過濾器模式database.table。您可以指定常值資料庫和資料表名稱 (例如mydb.mytable,或使用萬用字元 (*)。您也可以在資料庫和資料表名稱中定義規則運算式。

Amazon RDS 僅支援在資料庫和資料表層級進行篩選。您無法包含資料行層級篩選器 (database.table.column) 或拒絕清單

單一整合最多可以有 99 個總模式。在主控台中,您可以在單一篩選運算式中包含模式,或將它們分散在多個運算式中。單一樣式的長度不能超過 256 個字元。

下圖顯示了控制台中數據過濾器的結構:

用於零ETL整合的資料篩選器
重要

請勿在篩選模式中包含個人識別資訊、機密或敏感資訊。

中的資料篩選 AWS CLI

使用時 AWS CLI 要添加數據過濾器,與控制台相比,語法略有不同。每個個別樣式都必須與其自己的篩選類型 (IncludeExclude) 相關聯。您無法將多個圖樣與單一篩選器類型分組。

例如,在主控台中,您可以在單一Include陳述式中將下列逗號分隔模式分組:

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

但是,當使用 AWS CLI,相同的資料篩選器必須採用下列格式:

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

篩選條件邏輯

如果您未在整合中指定任何資料篩選器,Amazon RDS 會假設所有表格的預設篩選器,include:*.*並將所有表格複寫到目標資料倉儲。但是,如果您指定至少一個篩選器,邏輯會以假設的開頭exclude:*.*,表示所有表格都會自動從複寫中排除。這可讓您直接定義要包含的資料表和資料庫。

例如,如果您定義下列篩選器:

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

Amazon RDS 評估過濾器如下:

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

因此,只有table1table2從名為的資料庫db會複寫到目標資料倉儲。

篩選優先權

Amazon RDS 會依照資料篩選器的指定順序評估資料篩選器。在 AWS Management Console,這表示 Amazon RDS 會從左到右、從上到下評估篩選器運算式。如果您為第一個濾鏡指定特定樣式,則第二個濾鏡,甚至是在其後立即指定的個別樣式可以取代它。

例如,您的第一個篩選器可能是 Includebooks.stephenking,其中包含stephenkingbooks資料庫內命名的單一資料表。但是,如果您加入的第二個篩選 Excludebooks.*,它會取代之前定義的Include篩選。因此,books索引中的任何表都不會複寫到 Amazon Redshift。

如果您指定至少一個篩選器,邏輯會以假設的開頭exclude:*.*,表示所有表格都會自動從複寫中排除。因此,一般而言,您可以從最廣泛到最不廣泛地定義您的篩選器。例如,使用一或多個Include陳述式來定義您要複寫的所有資料。然後,開始新增Exclude篩選器,選擇性地將某些表格排除在複製之外。

同樣的原則也適用於您使用 AWS CLI。 Amazon RDS 會依照指定的順序評估這些篩選器模式,因此模式可能會覆寫之前指定的模式。

範例

下列範例示範資料篩選如何針對零ETL整合運作:

  • 包括所有數據庫和所有表:

    'include: *.*'
  • 包括books數據庫中的所有表:

    'include: books.*'
  • 排除任何名為的表格mystery

    'include: *.*, exclude: *.mystery'
  • books資料庫中包含兩個特定的表格:

    'include: books.stephen_king, include: books.carolyn_keene'
  • 包括books數據庫中的所有表,但包含子字符串mystery的表除外:

    'include: books.*, exclude: books./.*mystery.*/'
  • 包括books數據庫中的所有表,除了以下開頭的表mystery

    'include: books.*, exclude: books./mystery.*/'
  • 包括books數據庫中的所有表,除了以下結尾的表mystery

    'include: books.*, exclude: books./.*mystery/'
  • 包括books資料庫中以開頭的所有表格table_,但具名的表格除外table_stephen_king。例如,table_moviestable_books將被複製,但不會table_stephen_king

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

將資料篩選器新增至整合

您可以使用 AWS Management Console,該 AWS CLI,或 Amazon RDS API。

重要

如果您在建立整合後新增篩選器,Amazon RDS 會重新評估篩選器,就像它一直存在一樣。它會移除目標 Amazon Redshift 資料倉儲中目前不符合新篩選準則的任何資料。此動作會導致所有受影響的資料表重新同步處理。

若要將資料篩選新增至零ETL整合
  1. 登入 AWS Management Console 並在打開 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 在功能窗格中,選擇 [零ETL整合]。選取您要新增資料篩選器的整合,然後選擇 [修改]。

  3. 在「來源」下,新增一或多個 Include AND Exclude 陳述式。

    下圖顯示了用於整合的資料篩選範例:

    用於RDS控制台中零ETL集成的數據過濾器
  4. 當所有變更都符合您的需求時,請選擇「繼續」和「儲存變更」。

若要使用將資料篩選新增至零ETL整合 AWS CLI,呼叫修改整合指令。除了整合識別碼之外,請使用逗號分隔清單IncludeExclude 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+/'

若要使用修改零ETL整合 RDSAPI,請呼叫ModifyIntegration作業。指定整合識別碼,並提供以逗號分隔的篩選器模式清單。

從整合移除資料篩選

當您從整合中移除資料篩選器時,Amazon RDS 會重新評估剩餘的篩選器,就好像移除的篩選器從未存在一樣。然後,Amazon RDS 會將先前與篩選準則 (但現在不符合) 的任何資料複寫到目標 Amazon Redshift 資料倉儲中。

移除一或多個資料篩選會導致所有受影響的資料表重新同步處理。