直接使用boto3或直接使用s3和数据管道将数据通过boto3上传到Dynamodb的最佳方法是什么?

时间:2019-01-25 02:15:57

标签: amazon-web-services boto3

我有一个较大的JSON文件,我想知道是否最好使用boto3将信息直接上传到Dynamodb,或者最好先在s3上上传然后再使用数据管道,将其上传到炸药吗?

以下是一些示例数据:

样本1:

{  
   "updated":{  
      "n":"20181226"
   },
   "periodo":{  
      "n":"20180823"
   },
   "tipos":{  
      "m":{  
         "Disponible":{  
            "m":{  
               "total":{  
                  "n":"200"
               },
               "Saldos de Cuentas de Ahorro":{  
                  "n":"300"
               }
            }
         }
      }
   },
   "mediana_disponible":{  
      "n":"588"
   },
   "mediana_ingreso":{  
      "n":"658"
   },
   "mediana_egreso":{  
      "n":"200"
   },
   "documento":{  
      "s":"2-2"
   }
}

对于此样本,这仅是一条记录,平均有68密耳的记录,文件大小为70Gb。

样本2:

{  
   "updated":{  
      "n":"20190121"
   },
   "zonas":{  
      "s":"123"
   },
   "tipo_doc":{  
      "n":"3123"
   },
   "cods_sai":{  
      "s":"3,234234,234234"
   },
   "cods_cb":{  
      "s":"234234,5435,45"
   },
   "cods_atm":{  
      "s":"54,45,345;345,5345,435"
   },
   "num_doc":{  
      "n":"345"
   },
   "cods_mf":{  
      "s":"NNN"
   },
   "cods_pac":{  
      "s":"NNN"
   }
}

对于此样本,这仅是一条记录,平均有7毫记录,文件大小为10Gb。

预先感谢

1 个答案:

答案 0 :(得分:0)

根据您的情况,我将使用AWS Data Pipeline将您的Json数据文件从S3导入DynamoDB。 AWS和互联网上的其他人提供了许多示例。

对我来说,您的用例就在编写Python导入脚本和部署数据管道之间。由于您的数据是干净的,因此部署管道将非常容易。

我肯定会先将您的数据复制到S3,然后再从S3处理您的数据。主要原因是公共互联网对如此大量数据的不可靠性。

如果随着时间的推移将重复执行此任务,那么我肯定会使用AWS Data Pipeline。