2016-12-14 11 views
1

Я создал приложение, использующее DynamoDB Local, и теперь я нахожусь в точке, где хочу настроить AWS. Я воспользовался многочисленными инструментами, но не успел найти способ взять локальную БД и настроить схему и перенести данные в AWS.DynamoDB Local to DynamoDB AWS

Например, я могу получить данные в формате CSV, но AWS не имеет возможности это распознать. Кажется, что я вынужден создать Data Pipeline ... У кого-нибудь есть лучший способ сделать это?

Заранее спасибо

+0

DynamoDB local Я считаю, что предназначен для тестирования. Я рекомендую вместо этого подумать о хорошем дизайне стола и начать с нуля на веб-сервисе AWS DynamoDB. – izelrea

ответ

1

Как уже упоминалось ранее, DynamoDB местный там для целей тестирования. Тем не менее, вы можете переносить свои данные, если вам нужно. Один из подходов состоял бы в том, чтобы сохранить данные в каком-то формате, например json или csv, и сохранить их в S3, а затем использовать что-то вроде lambdas или вашего собственного сервера для чтения с S3 и сохранить в новом DynamoDB. Что касается настройки схемы, вы можете использовать тот же код, который использовался для создания локальной таблицы для создания удаленной таблицы через AWS SDK.

1

вы можете создать автономное приложение, чтобы получить список таблиц из локального dynamoDB и создать их в своей учетной записи AWS, после чего вы сможете получить все данные для каждой таблицы и сохранить их.

Я не уверен, с каким языком вы знакомы, но объясните, какой API может помочь вам на Java.

DynamoDB.listTables(); 
DynamoDB.createTable(CreateTableRequest); 

пример о том, как создать таблицу, используя вышеупомянутую API

ProvisionedThroughput provisionedThroughput = new ProvisionedThroughput(1L, 1L); 
    try{ 
      CreateTableRequest groupTableRequest = mapper.generateCreateTableRequest(Group.class); //1 
      groupTableRequest.setProvisionedThroughput(provisionedThroughput); //2 
//  groupTableRequest.getGlobalSecondaryIndexes().forEach(index -> index.setProvisionedThroughput(provisionedThroughput)); //3 
      Table groupTable = client.createTable(groupTableRequest); //4 
      groupTable.waitForActive();//5 
     }catch(ResourceInUseException e){ 
      log.debug("Group table already exist"); 
     } 

1- вы будете создавать TableRequest против отображения 2- установка резерва пропускной способности, и это будет варьироваться в зависимости от ваших требований 3- если таблица имеет глобальный вторичный индекс, вы можете использовать эту строку (необязательно) 4- фактическая таблица будет создана здесь 5- нить будет остановлена ​​до тех пор, пока таблица не станет активной

Я не упоминал API, связанный с доступом к данным (insert ... и т. Д.), Я предположил, что вы знакомы с тех пор, как вы уже используете их в локальном dynamodb