2017-05-28 1 views

答えて

0

Dynamo dbはSQLデータベース(列データベース)ではなく、NoSqlデータベースです。ダイナモdbから列を削除する唯一の出力は

です。

1.元のテーブルからバックアップテーブルを作成します。 2.パラメータを削除して別のモデルを作成します元のモデル(元のテーブルのデータを3.storingするために使用)から。 4.元のテーブルを削除します。 5.新しいテーブルを作成します。 6.オリジナルモデルのバックアップテーブルからデータを取り出します。 7.元のモデルから新しいモデルにデータを変換する(列が削除されている) 8.新しいモデルで新しいモデルにデータを挿入します。

バックアップテーブルのデータが高い場合は、元のデータからデータをフェッチするためにページネーションを使用します。

0

ダイナモdbはスキーマが少なく、キー属性は厳密です。あなたのカラムが非キーアトリビュートの場合は、私の考えでは、カラムドロップは不要です。入力jsonでその列の値を追加する必要はありません。

0

他の回答で述べたように、DynamoDBはNoSQLデータベースです。つまり、テーブルの作成中に、パーティションキー(必須)とソートキー(オプション)のみを定義することができます。その他の非キー属性はすべて定義する必要はありません。非キー属性を定義しようとしても、検証例外がスローされます。

キー属性以外に、各項目(レコード)には独自の属性を付けることができます。また、DynamoDBではキー以外の属性にはnullまたはemptyの値を使用できません。属性に値が指定されていない場合は、その項目に含めることはできません。

属性を持ちアイテムから削除する場合は、REMOVEキーワードを更新式に使用できます。

REMOVE - アイテムから1つ以上の属性を削除します。

例: - 例えば以下

は除去info項目から属性を。

var params = { 
    TableName:table, 
    Key:{ 
     "year": year, 
     "title": title 
    }, 
    UpdateExpression: "remove info", 
    ReturnValues:"UPDATED_NEW" 
}; 

docClient.update(params, function(err, data) { 
    if (err) { 
     console.error("Unable to update item. Error JSON:", JSON.stringify(err, null, 2)); 
    } else { 
     console.log("UpdateItem succeeded:", JSON.stringify(data, null, 2)); 
    } 
}); 
関連する問題