2016-12-14 19 views
1

私はDynamoDB Localを使用してアプリケーションを構築しましたが、今はAWSで設定したいところです。私は数多くのツールを使ってきましたが、ローカルのDBを使用してスキーマを設定し、データをAWSに移行する方法を見つけることに成功しませんでした。DynamoDBローカルのDynamoDB AWS

たとえば、データをCSV形式にすることはできますが、AWSではそのデータを認識できません。それは私がデータパイプラインを作成することを余儀なくされているようです...誰かがこれを行うための良い方法がありますか?

ありがとうございます。

+0

DynamoDBローカル私はテスト目的のものと考えています。代わりに、AWS DynamoDB Webサービスの表のデザインを考え、最初から始めておくことをお勧めします。 – izelrea

答えて

1

前述のとおり、DynamoDBローカルはテスト用です。ただし、必要に応じてデータを移行することはできます。 1つの方法は、jsonやcsvのような形式でデータを保存してS3に格納し、次にlambdasや独自のサーバーなどを使用してS3から読み取り、新しいDynamoDBに保存する方法です。スキーマの設定に関しては、AWS SDKを使用してリモートテーブルを作成するためにローカルテーブルを作成するのと同じコードを使用することができます。

1

ローカルDynamoDBからテーブルのリストを取得し、各テーブルのすべてのデータを取得して保存できるようにしたら、AWSアカウントでテーブルのリストを取得するスタンドアロンアプリケーションを作成できます。

よく知っている言語がわかりませんが、Javaで役に立つAPIについて説明しています。プロビジョニングのスループットを設定するマッピング 2 - に対してTableRequestを作成し、これが異なります

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-使用してテーブルを作成する方法についての例では、要件 、3-依存しますテーブルにグローバルセカンダリインデックスがある場合は、この行を使用できます(オプション) 4-実際のテーブルはここに作成されます 5テーブルがアクティブになるまでスレッドが停止します

データアクセスに関連するAPIについては言及していませんでしたが、ローカルのdynamodbで既に使用しているので、あなたはよく知っていると思います。

関連する問題