对存储在 AWS S3 中的大型 CSV 文件进行数据屏蔽
Posted
技术标签:
【中文标题】对存储在 AWS S3 中的大型 CSV 文件进行数据屏蔽【英文标题】:Data Masking on huge CSV files stored in AWS S3 【发布时间】:2018-09-27 20:05:44 【问题描述】:我在 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*******
只需使用支付数据的一个快照完成一次。
我该怎么做?我应该使用什么工具来实现这一目标?请告诉我。
【问题讨论】:
【参考方案1】:AWS Glue 是 AWS 的托管 ETL 和数据目录工具,专为此类任务而设计。
您将它指向 S3 上的源文件夹,告诉它您希望结果到达的目标文件夹,然后引导您完成所需的转换。基本上,如果你能写一点 Python,你就可以立即进行简单的掩码转换。
设置完成后,Glue 会自动转换您放入源文件夹的任何新文件,因此您不仅创建了执行屏蔽所需的代码,而且还拥有一个在新数据到达时运行的完全自动化的管道。我看到您的案例只要求它运行一次,但是编写代码来执行一次确实并不容易。
要查看使用 Glue 设置简单 ETL 作业的示例,请查看:https://gorillalogic.com/blog/in-search-of-happiness-a-quick-etl-use-case-with-aws-glue-redshift/。还有很多其他教程可以帮助您入门。
【讨论】:
【参考方案2】:你可以试试 FileMasker。 它将屏蔽 S3 存储桶中的 CSV(和 JSON)文件。 您可以将其作为 AWS Lambda 函数运行,尽管 Lambda 限制将每个输入文件的大小限制为几 GB。 如果您可以将输入文件拆分为较小的文件,那么您会没事的。否则,请联系供应商以获取选项。见https://www.dataveil.com/filemasker/ 免责声明:我为 DataVeil 工作。
【讨论】:
以上是关于对存储在 AWS S3 中的大型 CSV 文件进行数据屏蔽的主要内容,如果未能解决你的问题,请参考以下文章
从充满 CSV 文件的 AWS S3 目录中复制 Redshift
使用 Data Pipeline 在 AWS 中进行批处理文件