Amazon web services 通过AWS数据管道将json文件导入DynamoDB
我试图弄清楚如何创建一个AWS数据管道,它可以从S3获取json文件并将其导入到DynamoDB表中。我能够创建一些java代码来实现这一点,但我想通过数据管道来实现。我可以看到有一些从DynamoDB导出到S3和导入备份的模板,但我很难弄清楚如何导入一个简单的json文件 在文档中,您可以找到从DynamoDb()导入和导出数据的示例 以下是文档中对它的描述: 创建管道的步骤 打开位于的AWS数据管道控制台 您看到的第一个屏幕取决于您是否创建了 当前区域的管道 如果尚未在此区域中创建管道,控制台将显示 介绍屏幕。选择“立即开始” 如果已经在此区域中创建了管道,则控制台 显示一个页面,列出该区域的管道。选择 创建新管道 在“名称”中,输入管道的名称 (可选)在“说明”中,输入管道的说明 对于源,选择使用模板生成,然后选择 以下模板:从S3导入DynamoDB备份数据 在“参数”下,将“输入S3文件夹”设置为 s3://elasticmapreduce/samples/Store/ProductCatalog,这是一个示例 数据源,并将DynamoDB table name设置为表的名称 在“计划”下,选择“管道激活” 在管道配置下,保持日志记录处于启用状态。选择文件夹 S3位置下的图标,选择一个存储桶或 文件夹,然后选择“选择” 如果愿意,可以禁用日志记录 在“安全/访问”下,将IAM角色设置为默认 单击Architect中的编辑 接下来,配置AWS数据的Amazon SNS通知操作 管道根据活动的结果执行 配置成功和失败操作的步骤 在右侧窗格中,单击“活动” 从“添加可选字段”中,选择“成功” 从新添加的On Success中,选择Create new:Action 从“添加可选字段”中,选择“失败时” 从新添加的On Fail中,选择Create new:Action 在右侧窗格中,单击“其他” 对于DefaultAction1,请执行以下操作: 将名称更改为successnsalarm 从类型中,选择SnsAlarm 在主题Arn中,输入您创建的主题的Arn 输入主题和消息 对于DefaultAction2,请执行以下操作: 将名称更改为FailureSnsAlarm 从类型中,选择SnsAlarm 在主题Arn中,输入您创建的主题的Arn 输入主题和消息 公共github站点有一些使用DynamoDB()的示例。以下是管道定义的示例:Amazon web services 通过AWS数据管道将json文件导入DynamoDB,amazon-web-services,amazon-s3,amazon-dynamodb,amazon-data-pipeline,Amazon Web Services,Amazon S3,Amazon Dynamodb,Amazon Data Pipeline,我试图弄清楚如何创建一个AWS数据管道,它可以从S3获取json文件并将其导入到DynamoDB表中。我能够创建一些java代码来实现这一点,但我想通过数据管道来实现。我可以看到有一些从DynamoDB导出到S3和导入备份的模板,但我很难弄清楚如何导入一个简单的json文件 在文档中,您可以找到从DynamoDb()导入和导出数据的示例 以下是文档中对它的描述: 创建管道的步骤 打开位于的AWS数据管道控制台 您看到的第一个屏幕取决于您是否创建了 当前区域的管道 如果尚未在此区域中创建管道,控制
{
"objects": [
{
"occurrences": "1",
"period": "1 Day",
"name": "RunOnce",
"id": "DefaultSchedule",
"type": "Schedule",
"startAt": "FIRST_ACTIVATION_DATE_TIME",
"maxActiveInstances" : "1"
},
{
"failureAndRerunMode": "CASCADE",
"schedule": {
"ref": "DefaultSchedule"
},
"resourceRole": "DataPipelineDefaultResourceRole",
"role": "DataPipelineDefaultRole",
"pipelineLogUri": "s3://",
"scheduleType": "cron",
"name": "Default",
"id": "Default"
},
{
"maximumRetries": "2",
"name": "TableBackupActivity",
"step": "s3://dynamodb-emr-us-east-1/emr-ddb-storage-handler/2.1.0/emr-ddb-2.1.0.jar,org.apache.hadoop.dynamodb.tools.DynamoDbExport,#{myOutputS3Loc}/#{format(@scheduledStartTime, 'YYYY-MM-dd-HH-mm-ss')},#{myDDBTableName},#{myDDBReadThroughputRatio}",
"id": "TableBackupActivity",
"runsOn": {
"ref": "EmrClusterForBackup"
},
"type": "EmrActivity"
},
{
"bootstrapAction": "s3://elasticmapreduce/bootstrap-actions/configure-hadoop, --yarn-key-value, yarn.nodemanager.resource.memory-mb=12800,--yarn-key-value,yarn.scheduler.minimum-allocation-mb=256,--mapred-key-value,mapreduce.map.memory.mb=500,--mapred-key-value,mapreduce.map.java.opts=-Xmx400M,--mapred-key-value,mapreduce.job.reduce.slowstart.completedmaps=1,--mapred-key-value,mapreduce.map.speculative=false",
"name": "EmrClusterForBackup",
"amiVersion": "3.8.0",
"id": "EmrClusterForBackup",
"type": "EmrCluster",
"masterInstanceType": "m1.medium",
"coreInstanceType": "#{myInstanceType}",
"coreInstanceCount": "#{myInstanceCount}",
"terminateAfter" : "12 hours"
}
],
"parameters": [
{
"description": "OutputS3folder",
"id": "myOutputS3Loc",
"type": "AWS::S3::ObjectKey"
},
{
"default": "0.2",
"watermark": "Valuebetween0.1-1.0",
"description": "DynamoDB Read Throughput Ratio",
"id": "myDDBReadThroughputRatio",
"type": "Double"
},
{
"description": "DynamoDB Table Name",
"id": "myDDBTableName",
"type": "String"
},
{
"description": "Instance Type",
"id": "myInstanceType",
"watermark" : "Use m1.medium if Read Capacity Units for the job <= 900. Else use m3.xlarge",
"type": "String",
"default": "m3.xlarge"
},
{
"description": "Instance Count",
"watermark" : "(Read Capacity Units / 300) for m1.medium if RCU <= 900. Else (RCU / 1500) for m3.xlarge",
"id": "myInstanceCount",
"type": "Integer",
"default": "1"
},
{
"description" : "Burst IOPs",
"watermark" : "Add IOPS to the DDB table by this percent for the duration of the export job",
"id" : "myBurstIOPS",
"type" : "Double",
"default" : "0.0"
}
]
}
{
“对象”:[
{
“事件”:“1”,
“期间”:“1天”,
“名称”:“RunOnce”,
“id”:“DefaultSchedule”,
“类型”:“时间表”,
“开始时间”:“首次激活日期时间”,
“maxActiveInstances”:“1”
},
{
“故障和运行模式”:“级联”,
“附表”:{
“ref”:“DefaultSchedule”
},
“resourceRole”:“DataPipelineDefaultResourceRole”,
“角色”:“DataPipelineDefaultRole”,
“pipelineLogUri”:“s3://”,
“scheduleType”:“cron”,
“名称”:“默认值”,
“id”:“默认值”
},
{
“最大重试次数”:“2”,
“名称”:“TableBackupActivity”,
“步骤”:“s3://dynamodb-emr-us-east-1/emr-ddb-storage handler/2.1.0/emr-ddb-2.1.0.jar,org.apache.hadoop.dynamodb.tools.DynamoDbExport,{myOutputS3Loc}/{格式(@scheduledstartime,'yyyyy-MM-dd HH-MM-ss')},{myDDBTableName},{myddbreadthroughputtratio}”,
“id”:“TableBackupActivity”,
“runsOn”:{
“ref”:“EmrClusterForBackup”
},
“类型”:“实用性”
},
{
“引导”:"s3://elasticmapreduce/bootstrap actions/configure hadoop,-warn键值,warn.nodemanager.resource.memory mb=12800,-warn键值,warn.scheduler.minimum allocation mb=256,-mapred键值,mapreduce.memory.mb=500,-mapreduce键值,mapreduce.map.java.opts=-Xmx400M,--mapred键值,mapreduce.job.reduce.slowstart.completedmaps=1,--mapred-键值mapreduce.map.Projective=false“,
“名称”:“EmrClusterForBackup”,
“amiVersion”:“3.8.0”,
“id”:“EmrClusterForBackup”,
“类型”:“EmrCluster”,
“masterInstanceType”:“m1.medium”,
“coreInstanceType”:“#{myInstanceType}”,
“coreInstanceCount”:“#{myInstanceCount}”,
“终止时间”:“12小时”
}
],
“参数”:[
{
“说明”:“Outputs3文件夹”,
“id”:“myOutputS3Loc”,
“类型”:“AWS::S3::ObjectKey”
},
{
“默认值”:“0.2”,
“水印”:“值介于0.1-1.0之间”,
“说明”:“DynamoDB读取吞吐量比率”,
“id”:“MyDDBroadThroughPuttratio”,
“类型”:“双”
},
{
“说明”:“DynamoDB表名”,
“id”:“myDDBTableName”,
“类型”:“字符串”
},
{
“说明”:“实例类型”,
“id”:“myInstanceType”,
“水印”:“如果作业的读取容量单位为m1.medium