存储在 AWS S3 中的巨大 CSV 文件的数据屏蔽

Data Masking on huge CSV files stored in AWS S3

我在 aws s3 (s3://bucket1/rawFile.csv) 中有大小约为 15GB 的巨大 csv 文件。假设架构是否如下所示:

cust_id, account_num, paid_date, cust_f_name
1001, 1234567890, 01/01/2001, Jonathan

我正在尝试屏蔽帐号列和客户名称并创建一个新的 maskedFile.csv 并将其存储在另一个 aws s3 存储桶 (s3://bucket2/maskedFile.csv) 中,如下所示:

cust_id, account_num, paid_date, cust_f_name
1001, 123*******, 01/01/2001, Jon*******

只需对付款数据的一个快照完成一次。

我该怎么做?我应该使用什么工具来实现这一目标?请告诉我。

你可以试试FileMasker。 它会屏蔽 S3 存储桶中的 CSV(和 JSON)文件。 您可以 运行 它作为 AWS Lambda 函数,尽管 Lambda 限制会将输入文件大小限制为每个文件几 GB。 如果您可以将输入文件拆分为更小的文件,那么您会没事的。否则,请联系供应商以获取选项。参见 https://www.dataveil.com/filemasker/ 免责声明:我为 DataVeil 工作。

AWS Glue 是 AWS 的托管 ETL 和数据目录工具,它正是为此类任务而设计的。

您将它指向 S3 上的源文件夹,告诉它您希望结果所在的目标文件夹,系统会引导您完成所需的转换。基本上,如果你能写一点 Python,你就可以立即进行简单的掩码转换。

设置完成后,Glue 会自动将您放入源文件夹的任何新文件进行转换,因此您不仅创建了进行屏蔽所需的代码,而且还拥有一个完全自动化的管道 运行 s 新数据到达时。我看到你的案例只调用了一次运行,但是写代码来做一次真的不容易。

要查看使用 Glue 设置简单 ETL 作业的示例,请查看:https://gorillalogic.com/blog/in-search-of-happiness-a-quick-etl-use-case-with-aws-glue-redshift/。还有很多其他教程可以帮助您入门。