0

我目前使用 AWS S3 作为数据湖来存储原始数据,每分钟向指定存储桶添加大约 100 个项目。我知道数据管道和数据 ETL 概念的基础知识,但我仍然不熟悉基础知识,例如 Apache Spark 是什么,或者 AWS Glue 的具体工作原理。

我愿意尝试所有教程并为自己学习,但我不知道从哪里开始。如果可以的话,请指导我从哪里开始执行以下任务。

  1. 每当将新对象添加到 S3 存储桶时,转换它们并将它们存储在另一个数据存储中。
  2. 如果要以大型 CSV 格式管理生成的转换项目(我猜是 DynamoDB,因为它是表数据?),那么在哪里存储转换后的项目。
  3. 低级解决方案和高级解决方案将如何处理这些任务?(例如,使用 Spark 与 Glue)

谢谢!

4

1 回答 1

1

这取决于用例。

对于就地转换,您可以/应该使用 AWS Lambda。对于批量转换,您可以使用例如 Glue 或 EMR,两者都可以运行 Spark。

将它们存储在哪里/以什么格式取决于您的访问模式,例如将它们存储在发电机中而不很好地理解访问模式是一个非常糟糕的主意。将它们保存在 S3 中,正确分区,在 Glue 中有一个元存储并通过 Athena 访问它们可能会起作用。但这非常慢,并且不适用于每分钟 100 个文件,您需要更少的文件和更大的文件,即“微批处理”。在所有情况下,每个客户端都可以根据数据创建特定的读取模型,并将其存储和索引,但他们喜欢实际的应用程序访问。

你必须问自己几个问题:

  • 你对数据的了解程度如何?
  • 你知道有多少进来吗?
  • 您知道数据需要多快可用吗?
  • 您知道如何访问数据吗?
  • 是实时数据还是批量数据?
  • ...

我建议你只需要开始工作/试验它,创建一个数据湖,它的架构是一个需要数年的过程。

于 2021-02-17T14:28:12.910 回答