Amazon web services 我可以在每次放置之前使用AWS数据管道合并DYNAMODB和编辑项目吗?

Amazon web services 我可以在每次放置之前使用AWS数据管道合并DYNAMODB和编辑项目吗?,amazon-web-services,amazon-dynamodb,emr,amazon-data-pipeline,Amazon Web Services,Amazon Dynamodb,Emr,Amazon Data Pipeline,我有一个迪纳摩表已经贬值,我需要将它合并到另一个表中。这两个表的模式略有不同,因此我需要对每个项目进行一些小的工作,然后才能将项目放入幸存的表中 现在,我知道我可以创建一个lambda,它将一批记录写入一个运动流,由另一个lambda监视,它可以将记录放入幸存的表中,但这对我来说似乎很困难。DataPipeline似乎是一个更好的解决方案,但我不确定是否可以在项目移动到新表之前对其进行更改。与电子病历相同 任何建议都将不胜感激。数据管道在其导入/导出模板中使用DynamoDB connector

我有一个迪纳摩表已经贬值,我需要将它合并到另一个表中。这两个表的模式略有不同,因此我需要对每个项目进行一些小的工作,然后才能将项目放入幸存的表中

现在,我知道我可以创建一个lambda,它将一批记录写入一个运动流,由另一个lambda监视,它可以将记录放入幸存的表中,但这对我来说似乎很困难。DataPipeline似乎是一个更好的解决方案,但我不确定是否可以在项目移动到新表之前对其进行更改。与电子病历相同


任何建议都将不胜感激。

数据管道在其导入/导出模板中使用DynamoDB connector的导入/导出工具将内容从源复制到目标。看

该工具只是启动Hadoop实现来运行映射器/还原器来完成您的工作。但是,该工具没有足够的控制来更改项目,也没有DynamoDB->DynamoDB ETL

但是,由于所有EMR集群都附带EMR dynamodb连接器库,因此您可以使用HIVE/SPARK编写自己的DDL和DML来复制dynamodb->dynamodb(相同的AWS区域)。如果您编写的DML是正确的,您甚至可以使用自己的子句在两个具有不同模式的DynamoDB表之间复制数据。稍后,您可以按计划在数据管道创建的EMR资源上自动运行这些脚本

hql从一个表复制到另一个表的presudo代码可以非常简单:

CREATE EXTERNAL TABLE dynamodb_table (`ID` STRING,`DateTime` STRING)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler' 
TBLPROPERTIES ("dynamodb.table.name" = "ddb-table-1", "dynamodb.column.mapping" = "ID:ID,DateTime:DateTime");

CREATE EXTERNAL TABLE dynamodb_table2 (`ID` STRING,`DateTime` STRING)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler' 
TBLPROPERTIES ("dynamodb.table.name" = "ddb-table-2", "dynamodb.column.mapping" = "ID:ID,DateTime:DateTime");

INSERT OVERWRITE TABLE  dynamodb_table SELECT * FROM dynamodb_table2;
配置单元DDL和DML语法可在此处找到:

有关在EMR上使用DynamoDB存储处理程序的一些示例:


数据管道在其导入/导出模板中使用DynamoDB connector的导入/导出工具将内容从源复制到目标。看

该工具只是启动Hadoop实现来运行映射器/还原器来完成您的工作。但是,该工具没有足够的控制来更改项目,也没有DynamoDB->DynamoDB ETL

但是,由于所有EMR集群都附带EMR dynamodb连接器库,因此您可以使用HIVE/SPARK编写自己的DDL和DML来复制dynamodb->dynamodb(相同的AWS区域)。如果您编写的DML是正确的,您甚至可以使用自己的子句在两个具有不同模式的DynamoDB表之间复制数据。稍后,您可以按计划在数据管道创建的EMR资源上自动运行这些脚本

hql从一个表复制到另一个表的presudo代码可以非常简单:

CREATE EXTERNAL TABLE dynamodb_table (`ID` STRING,`DateTime` STRING)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler' 
TBLPROPERTIES ("dynamodb.table.name" = "ddb-table-1", "dynamodb.column.mapping" = "ID:ID,DateTime:DateTime");

CREATE EXTERNAL TABLE dynamodb_table2 (`ID` STRING,`DateTime` STRING)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler' 
TBLPROPERTIES ("dynamodb.table.name" = "ddb-table-2", "dynamodb.column.mapping" = "ID:ID,DateTime:DateTime");

INSERT OVERWRITE TABLE  dynamodb_table SELECT * FROM dynamodb_table2;
配置单元DDL和DML语法可在此处找到:

有关在EMR上使用DynamoDB存储处理程序的一些示例: