Filtragem de dados para integrações ETL zero do Aurora com o Amazon Redshift.
É possível usar a filtragem de dados para integrações ETL zero do Aurora para definir o escopo da replicação do cluster de banco de dados de origem do Aurora para o data warehouse de destino do Amazon Redshift. Em vez de replicar todos os dados para o destino, é possível definir um ou mais filtros que incluam ou excluam seletivamente determinadas tabelas da replicação. Somente a filtragem no nível do banco de dados e da tabela está disponível para integrações ETL zero. Não é possível filtrar por colunas ou linhas.
A filtragem de dados pode ser útil quando você deseja:
-
Una determinadas tabelas de dois ou mais clusters de origem diferentes para não precisar de dados completos de nenhum cluster.
-
Economize custos realizando análises usando apenas um subconjunto de tabelas em vez de uma frota inteira de bancos de dados.
-
Filtre informações confidenciais, como números de telefone, endereços ou detalhes do cartão de crédito, de determinadas tabelas.
É possível adicionar filtros de dados a uma integração ETL zero usando o AWS Management Console, a AWS Command Line Interface (AWS CLI) ou a API do Amazon RDS.
Se a integração tiver um cluster provisionado do Amazon Redshift como destino, o cluster deverá estar no patch 180 ou posterior.
nota
No momento, é possível realizar a filtragem de dados somente em integrações que tenham fontes do Aurora MySQL. A versão prévia das integrações ETL zero do Aurora PostgreSQL com o Amazon Redshift não é compatível com a filtragem de dados.
Tópicos
Formato de um filtro de dados
É possível definir vários filtros para uma única integração. Cada filtro inclui ou exclui qualquer tabela de banco de dados existente e futura que corresponda a um dos padrões na expressão do filtro. As integrações ETL zero do Aurora usam a sintaxe de filtro Maxwell
Cada filtro tem os seguintes elementos:
Elemento | Descrição |
---|---|
Tipo de filtro |
Um tipo de filtro |
Expressão de filtro |
Uma lista separada por vírgulas de padrões. As expressões devem usar a sintaxe de filtro Maxwell |
Padrão |
Um padrão de filtro no formato O Aurora permite a filtragem somente no nível do banco de dados e da tabela. Não é possível incluir filtros no nível da coluna ( Uma única integração pode ter um máximo de 99 padrões no total. No console, é possível conter padrões em uma única expressão de filtro ou distribuí-los entre várias expressões. Um único padrão não pode exceder 256 caracteres. |
A imagem a seguir mostra a estrutura dos filtros de dados no console:
![Filtragem de dados para uma Integração ETL zero](images/zero-etl-filter.png)
Importante
Não inclua informações pessoais, confidenciais ou sigilosas em seus padrões de filtragem.
Filtros de dados na AWS CLI
Ao usar a AWS CLI para adicionar um filtro de dados, a sintaxe difere um pouco em comparação com o console. Cada padrão individual deve ser associado ao seu próprio tipo de filtro (Include
ou Exclude
). Não é possível agrupar vários padrões com um único tipo de filtro.
Por exemplo, no console, é possível agrupar os seguintes padrões separados por vírgula em uma única instrução Include
:
mydb
.mytable
,mydb
./table_\d+/
No entanto, ao usar a AWS CLI, o mesmo filtro de dados deve estar no seguinte formato:
'include:
mydb.mytable
, include:mydb./table_\d+/
'
Lógica de filtros
Se você não especificar nenhum filtro de dados na integração, o Aurora assume um filtro padrão de include:*.*
e replica todas as tabelas no data warehouse de destino. No entanto, se você especificar pelo menos um filtro, a lógica começa com um suposto exclude:*.*
, o que significa que todas as tabelas são automaticamente excluídas da replicação. Isso permite que você defina diretamente quais tabelas e bancos de dados incluir.
Por exemplo, se você definir o seguinte filtro:
'include: db.table1, include: db.table2'
O Aurora avaliará o filtro da seguinte forma:
'exclude:*.*, include: db.table1, include: db.table2'
Portanto, somente table1
e table2
do banco de dados denominado db
serão replicados no data warehouse de destino.
Precedência do filtro
O Aurora avalia os filtros de dados na ordem em que são especificados. No AWS Management Console, isso significa que o Aurora avalia expressões de filtro da esquerda para a direita e de cima para baixo. Se você especificar determinado padrão para o primeiro filtro, um segundo filtro ou até mesmo um padrão individual especificado imediatamente após ele poderá substituí-lo.
Por exemplo, o primeiro filtro pode ser Include
books.stephenking
, que inclui uma única tabela chamada stephenking
de dentro do banco de dados books
. No entanto, se você adicionar um segundo filtro de Exclude
books.*
, ele substituirá o filtro Include
definido antes dele. Portanto, nenhuma tabela do índice books
é replicada para o Amazon Redshift.
Se você especificar pelo menos um filtro, a lógica começa com um suposto exclude:*.*
, o que significa que todas as tabelas são automaticamente excluídas da replicação. Portanto, como prática recomendada geral, defina os filtros do mais amplo para o menos amplo. Por exemplo, use uma ou mais instruções Include
para definir todos os dados que você deseja replicar. Depois, comece a adicionar filtros Exclude
para excluir seletivamente determinadas tabelas da replicação.
O mesmo princípio se aplica aos filtros que você define usando a AWS CLI. O Aurora avalia esses padrões de filtro na ordem em que são especificados, portanto, um padrão pode substituir um especificado antes dele.
Exemplos
Os exemplos a seguir demonstram como a filtragem de dados funciona para integrações ETL zero:
-
Inclua todos os bancos de dados e todas as tabelas:
'include: *.*'
-
Inclua todas as tabelas no banco de dados
books
:'include: books.*'
-
Exclua todas as tabelas chamadas
mystery
:'include: *.*, exclude: *.mystery'
-
Inclua duas tabelas específicas no banco de dados
books
:'include: books.stephen_king, include: books.carolyn_keene'
-
Inclua todas as tabelas no banco de dados
books
, exceto aquelas que contêm a substringmystery
:'include: books.*, exclude: books./.*mystery.*/
-
Inclua todas as tabelas no banco de dados
books
, exceto aquelas que começam commystery
:'include: books.*, exclude: books./mystery.*/'
-
Inclua todas as tabelas no banco de dados
books
, exceto aquelas que terminam commystery
:'include: books.*, exclude: books./.*mystery/'
-
Inclua todas as tabelas no banco de dados
books
que começam comtable_
, exceto aquela chamadatable_stephen_king
. Por exemplo,table_movies
outable_books
seria replicada, mas nãotable_stephen_king
.'include: books./table_.*/, exclude: books.table_stephen_king'
Adicionar filtros de dados a uma integração
É possível configurar a filtragem de dados usando o AWS Management Console, a AWS CLI ou a API do Amazon RDS.
Importante
Se você adicionar um filtro depois de criar uma integração, o Aurora reavaliará o filtro como se ele sempre tivesse existido. Ele remove todos os dados que estão atualmente no data warehouse de destino do Amazon Redshift que não correspondem aos novos critérios de filtragem. Essa ação faz com que todas as tabelas afetadas sejam sincronizadas novamente.
No momento, só é possível realizar a filtragem de dados em integrações que tenham fontes do Aurora MySQL. A versão prévia das Integrações ETL zero do Aurora PostgreSQL com o Amazon Redshift não é compatível com a filtragem de dados.
Para adicionar filtros de dados para uma integração ETL zero
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. -
No painel de navegação, escolha Integrações ETL zero. Selecione a integração à qual você deseja adicionar filtros de dados e escolha Modificar.
-
Em Fonte, adicione uma ou mais instruções
Exclude
eInclude
.A imagem a seguir mostra um exemplo de filtros de dados para uma integração:
-
Quando todas as alterações estiverem conforme desejado, escolha Continuar e Salvar alterações.
Para adicionar filtros de dados a uma integração ETL zero usando a AWS CLI, chame o comando modify-integration--data-filter
com uma lista separada por vírgulas dos filtros Maxwell Include
e Exclude
.
O exemplo a seguir adiciona padrões de filtro a my-integration
.
Para Linux, macOS ou Unix:
aws rds modify-integration \ --integration-identifier
my-integration
\ --data-filter'include: foodb.*, exclude: foodb.tbl, exclude: foodb./table_\d+/'
Para Windows:
aws rds modify-integration ^ --integration-identifier
my-integration
^ --data-filter'include: foodb.*, exclude: foodb.tbl, exclude: foodb./table_\d+/'
Para modificar uma integração ETL zero usando a API do RDS, chame a operação ModifyIntegration. Especifica o identificador de integração e fornece uma lista separada por vírgulas de padrões de filtro.
Remover filtros de dados de uma integração
Quando você remove um filtro de dados de uma integração, o Aurora reavalia os filtros restantes como se o filtro removido nunca tivesse existido. Depois, o Aurora replica todos os dados que anteriormente não correspondiam aos critérios de filtragem (mas agora correspondem) no data warehouse de destino do Amazon Redshift.
A remoção de um ou mais filtros de dados faz com que todas as tabelas afetadas sejam sincronizadas novamente.