Вставка больших строк JSON в DynamoDB для запросов

Я использую AWS PHP SDK. У меня есть миллионы записей в моей RDS, которые содержат большие файлы JSON. Я хотел бы отправить все это в DynamoDB для упрощения запросов и регистрации вместо того, чтобы бомбардировать мои базы данных RDS.

К сожалению, я получаю эту ошибку каждый раз, когда пытаюсь добавить новую запись (putItem). Вы можете помочь?

<br />
<b>Fatal error</b>:  Uncaught Aws\DynamoDb\Exception\DynamoDbException: AWS Error Code: SerializationException, Status Code: 400, AWS Request ID: IBB453LGDITFME8Q1G87AP9RCJVV4KQNSO5AEMVJF66Q9ASUAAJG, AWS Error Type: client, AWS Error Message: Start of list found where not expected, User-Agent: aws-sdk-php2/2.7.7 Guzzle/3.9.2 curl/7.28.1 PHP/5.5.10
thrown in <b>/Users/alex/Development/AWS/PHP SDK/Aws/Common/Exception/NamespaceExceptionFactory.php</b> on line <b>91</b><br />

Вот мой PHP-код: https://gist.github.com/nyalex/9004acbc4b2cabd5333b

2

Решение

Я понял. Я не использовал правильный формат массива для ввода putItem (). Вот что сработало для меня:

// Convert JSON for AWS
$m = new Marshaler();

// Send to DynamoDB
$result = $client->putItem(array(
'TableName' => 'test',
'Item' => $m->marshalItem(
array(
'client_id'      => 100,
'order_id'      => '200',
'time'    => time(),
'order' => $order_json
)
),
'ReturnConsumedCapacity' => 'TOTAL'
));
1

Другие решения

Других решений пока нет …