对存储在 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

将大型 csv 文件从 S3 读入 R

AWS 存储服务

使用 Data Pipeline 在 AWS 中进行批处理文件

当我们从 s3 中的 csv 文件读取数据并在 aws athena 中创建表时如何跳过标题。

直接从服务器将 csv 文件上传到 aws s3 存储桶