本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 | 描述 |
---|---|
過濾器類型 |
|
篩選條件表達式 |
以逗號分隔的模式清單。運算式必須使用麥克斯韋篩選語法 |
模式 |
格式中的過濾器模式 Amazon RDS 僅支援在資料庫和資料表層級進行篩選。您無法包含資料行層級篩選器 ( 單一整合最多可以有 99 個總模式。在主控台中,您可以在單一篩選運算式中包含模式,或將它們分散在多個運算式中。單一樣式的長度不能超過 256 個字元。 |
下圖顯示了控制台中數據過濾器的結構:
重要
請勿在篩選模式中包含個人識別資訊、機密或敏感資訊。
中的資料篩選 AWS CLI
使用時 AWS CLI 要添加數據過濾器,與控制台相比,語法略有不同。每個個別樣式都必須與其自己的篩選類型 (Include
或Exclude
) 相關聯。您無法將多個圖樣與單一篩選器類型分組。
例如,在主控台中,您可以在單一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'
因此,只有table1
和table2
從名為的資料庫db
會複寫到目標資料倉儲。
篩選優先權
Amazon RDS 會依照資料篩選器的指定順序評估資料篩選器。在 AWS Management Console,這表示 Amazon RDS 會從左到右、從上到下評估篩選器運算式。如果您為第一個濾鏡指定特定樣式,則第二個濾鏡,甚至是在其後立即指定的個別樣式可以取代它。
例如,您的第一個篩選器可能是 Include
books.stephenking
,其中包含stephenking
從books
資料庫內命名的單一資料表。但是,如果您加入的第二個篩選 Exclude
books.*
,它會取代之前定義的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_movies
或table_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整合
登入 AWS Management Console 並在打開 Amazon RDS 控制台https://console.aws.amazon.com/rds/
。 -
在功能窗格中,選擇 [零ETL整合]。選取您要新增資料篩選器的整合,然後選擇 [修改]。
-
在「來源」下,新增一或多個
Include
ANDExclude
陳述式。下圖顯示了用於整合的資料篩選範例:
-
當所有變更都符合您的需求時,請選擇「繼續」和「儲存變更」。
若要使用將資料篩選新增至零ETL整合 AWS CLI,呼叫修改整合指令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+/'
若要使用修改零ETL整合 RDSAPI,請呼叫ModifyIntegration作業。指定整合識別碼,並提供以逗號分隔的篩選器模式清單。
從整合移除資料篩選
當您從整合中移除資料篩選器時,Amazon RDS 會重新評估剩餘的篩選器,就好像移除的篩選器從未存在一樣。然後,Amazon RDS 會將先前與篩選準則 (但現在不符合) 的任何資料複寫到目標 Amazon Redshift 資料倉儲中。
移除一或多個資料篩選會導致所有受影響的資料表重新同步處理。