Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 通过AWS数据管道将json文件导入DynamoDB_Amazon Web Services_Amazon S3_Amazon Dynamodb_Amazon Data Pipeline - Fatal编程技术网

Amazon web services 通过AWS数据管道将json文件导入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数据管道控制台 您看到的第一个屏幕取决于您是否创建了 当前区域的管道 如果尚未在此区域中创建管道,控制

我试图弄清楚如何创建一个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()的示例。以下是管道定义的示例:

{
    "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