我想知道我们是否可以在 EFS 挂载文件上运行 ETL 作业。如果可以的话怎么办?它是使用 Hive 还是任何其他服务?我们的目标是将一个挂载点中的所有文件减少到一个文件...并将该文件存储在 s3 中以便更好地处理
1 回答
EFS 本身并不包含特定的数据仓库产品。对于数据仓库和 ETL,您可以选择要在 AWS 环境中运行的内容。
关于您的问题:如果我理解正确,您希望将 EFS 挂载中当前的所有文件连接或以某种方式组合成一个文件并将其存储在 S3 中。
您没有提及您拥有什么类型的数据或您想要合并什么类型的文件。这对你如何做到这一点产生了巨大的影响。所以我将不得不给出一般性的建议。如果你有不同类型的数据,来自不同数据库的SQL表、文档、非sql数据;那么您需要确定如何组合这些数据。为此,您将寻找可以容纳原始数据的数据集成解决方案。
亚马逊有一些不同的产品可以帮助这个过程,比如 Redshift、Athena、Snowflake 和他们的 ETL 解决方案 Glue。添加产品取决于您公司的需求和预算。
因此,更灵活的数据集成方法是使用 ELT(提取、加载、转换)而不是 ETL。基本上你会在你的 S3 实例上创建一个适当的文件。然后,您将一次提取 EFS 上的每个文件,并将它们加载到您的 S3 文件中。然后,当您查询 S3 文件中的数据时,您将在查看查询结果之前执行所需的任何转换。这是一篇更详细地解释了差异的文章:https ://blog.panoply.io/etl-vs-elt-the-difference-is-in-the-how 。
如果您想调查选项,有一些供应商支持 ELT 流程,例如 Talend、Hadoop/Hive/Spark、Terradata 和 Informatica。