Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.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
Php 使用CodeIgniter插入AWS DynamoDB的大型记录_Php_Codeigniter_Amazon Web Services - Fatal编程技术网

Php 使用CodeIgniter插入AWS DynamoDB的大型记录

Php 使用CodeIgniter插入AWS DynamoDB的大型记录,php,codeigniter,amazon-web-services,Php,Codeigniter,Amazon Web Services,我有一个大约400000行的csv文件,需要处理并插入到AWS DynamoDB表中。最好的方法是什么 我尝试使用foreach和PutRequest,它只创建了大约6348行。有什么我需要照顾的吗 请看一看,看一看 限制插入(每个脚本加载4k),并通过CLI运行它 在单独的文件中创建批并逐个插入(批) 明天做 或前2项的组合 CLI应该“永远”运行。它没有时间限制,也可以查看一下。对于Amazon DynamoDB,如果您的吞吐量超过了设置的吞吐量,则请求将失败。如果您的DynamoDB表是

我有一个大约400000行的csv文件,需要处理并插入到AWS DynamoDB表中。最好的方法是什么

我尝试使用foreach和PutRequest,它只创建了大约6348行。有什么我需要照顾的吗

请看一看,看一看

  • 限制插入(每个脚本加载4k),并通过CLI运行它
  • 在单独的文件中创建批并逐个插入(批)
  • 明天做
  • 或前2项的组合


  • CLI应该“永远”运行。它没有时间限制,也可以查看一下。

    对于Amazon DynamoDB,如果您的吞吐量超过了设置的吞吐量,则请求将失败。如果您的DynamoDB表是使用amazoncloudwatch配置的,那么您应该能够通过转到AWS管理控制台来查看情况是否如此。是否需要增加写入吞吐量

    您是否正在使用用于PHP的AWS SDK?如果是这样,那么您的单个
    PutItem
    请求如果失败,将重试几次,但是如果SDK由于超出您的吞吐量而不断被拒绝,它也将最终放弃

    您是通过
    PutItem
    API使用单个请求,还是通过
    BatchWriteItem
    API使用批量put?你可能应该阅读并使用后者


    但是,最好的方法是使用AWS SDK for PHP附带的
    WriteRequestBatch
    抽象。它在内部使用
    BatchWriteItem
    API,并对请求进行排队和管理,以确保所有项都被写入。当执行大容量数据加载时,Amazon DynamoDB需要记住的另一件事是在唯一散列键值上分布写操作。如果您的数据是按散列键值排序的,并且您有10000个项目一个接一个地使用相同的散列键值,那么按顺序上载数据可能会造成不均匀的工作负载,从而导致限制。为了在DynamoDB中充分利用吞吐量,最好的做法是将写操作均匀地分布在散列键上。在实践中,这可能涉及到将您的文件分解为多个单独的文件(正如Kyslik上面提到的),然后并行地、无序地上传它们


    更多详细信息请参见,特别是use insert_批次400K行没有那么大,应该可以。我在CI中使用过此批次_insert,但它是否适用于AWS DynamoDB?是的,Dzavid,我经历过这种情况。谢谢你的提示。嗨,杰里米,我用过BatchWriteItem,它很管用。:)感谢您的澄清。是否可以使用“代码”扫描查询检索它们?想用GROUPBY方法检索它们吗?我不确定您想做什么,或者在非关系数据库的上下文中“GROUPBY”是什么意思。我建议您查看AWS文档,了解更多有关扫描与查询的信息,不过: