使用 AWS 将两个源 DynamoDB 表转换为一个新的 DynamoDB
Transform two source DynamoDB tables into a new DynamoDB using AWS
所以我有两个来源 tables 让我们调用 table1
和 table2
,以及目标 table table3
- 在这些 tables 需要从一个 table 的列、另一个 table 的列中 提取 信息,然后将列的条目组合起来新 table.
将其视为一个复杂的转换;例如:
- 从
table1
中提取的 column1
中的部分文本和 table2
的 column1
中的完整文本组合成 column1
的 4 行(取决于 JSON of column1
in table1
) in new transformed table.
所以它不是 1 table 和另一个之间的一对一映射,而是一对多映射,其中源的第一行来自两个源的一行的混合 table 转换为新目的地的许多行 table.
这是粘合工作可以完成的事情吗?或者我最好只写一个一次性的 Python 脚本?您可以假设 table 的大小无关紧要
如果您计划以某种频率 运行 此过程,这就是 Glue 的完美用例。如果这只是一次性使用,Glue 也是一个不错的选择,但 Glue 主要是为重复使用而设计的。
在你的胶水脚本中,我希望你最终会加入这两个表,然后 select 新的结果列和行通过组合你现有的列。通常要遵循的模式是将动态帧(由胶水创建)转换为 pyspark 数据帧,然后从那里使用 pyspark,在输出到数据库之前转换回动态帧。
请注意,根据您的设计,您可能不需要添加行,这当然取决于您寻求的结果,但 Dynamo 确实支持一些漂亮的 hierarchical approaches,这可能会消除您对多行的需求。
如果您有更具体的模式示例和您正在寻找的结果,我可以向您展示一些示例代码。
所以我有两个来源 tables 让我们调用 table1
和 table2
,以及目标 table table3
- 在这些 tables 需要从一个 table 的列、另一个 table 的列中 提取 信息,然后将列的条目组合起来新 table.
将其视为一个复杂的转换;例如:
- 从
table1
中提取的column1
中的部分文本和table2
的column1
中的完整文本组合成column1
的 4 行(取决于 JSON ofcolumn1
intable1
) in new transformed table.
所以它不是 1 table 和另一个之间的一对一映射,而是一对多映射,其中源的第一行来自两个源的一行的混合 table 转换为新目的地的许多行 table.
这是粘合工作可以完成的事情吗?或者我最好只写一个一次性的 Python 脚本?您可以假设 table 的大小无关紧要
如果您计划以某种频率 运行 此过程,这就是 Glue 的完美用例。如果这只是一次性使用,Glue 也是一个不错的选择,但 Glue 主要是为重复使用而设计的。
在你的胶水脚本中,我希望你最终会加入这两个表,然后 select 新的结果列和行通过组合你现有的列。通常要遵循的模式是将动态帧(由胶水创建)转换为 pyspark 数据帧,然后从那里使用 pyspark,在输出到数据库之前转换回动态帧。
请注意,根据您的设计,您可能不需要添加行,这当然取决于您寻求的结果,但 Dynamo 确实支持一些漂亮的 hierarchical approaches,这可能会消除您对多行的需求。
如果您有更具体的模式示例和您正在寻找的结果,我可以向您展示一些示例代码。