데이터 쓰기


{
    TableName: "Music",
    Item: {
        "Artist":"No One You Know",
        "SongTitle":"Call Me Today",
        "AlbumTitle":"Somewhat Famous",
        "Year"2015,
        "Price"2.14,
        "Genre""Country",
        "Tags": {
            "Composers": [
                  "Smith",
                  "Jones",
                  "Davis"
            ],
            "LengthInSeconds"214
        }
    }
}
cs


SQL 의 INSERT INTO 와 같은 역할이다.

Item 을 추가하려면 PutItem 작업에 위와 같은 파라미터를 전달한다.

복수의 데이터를 BatchWriteItem 작업으로 한번에 추가하는 것도 가능하다.


  • TableName – 데이터를 추가할 Table 이름.
  • Item - Primary Key 이외의 Attribute 는 데이터 타입과 함께 자동 생성된다.



데이터 읽기


{
    TableName: "Music",
    Key: {
        "Artist""No One You Know",
        "SongTitle""Call Me Today"
    },
    "ProjectionExpression""AlbumTitle, Year, Price"
}
cs


단일 Item 을 읽기 위해 GetItem 작업에 Table 이름과 Primary Key 를 전달한다.

기본적으로 해당 Item 의 모든 Attributes 를 가져오지만 ProjectionExpression 파라미터로 특정 Attributes 만 반환할 수 있다.


{
    TableName: "Music",
    KeyConditionExpression: "Artist = :a and contains(SongTitle, :t)",
    FilterExpression: "price < :p",
    ExpressionAttributeValues: {
        ":a""No One You Know",
        ":t""Today",
        ":p"1.00
    }
}
cs


Query 작업으로 조건을 지정하여 여러 Item 을 읽을 수도 있다.

KeyConditionExpression 에 Primary key 를 지정하고 (sort key 에 범위 지정 가능),

ExpressionAttributeValues 는 Expression 파라미터들에 바인드 변수를 사용하여 값을 전달한다.

FilterExpression 으로 조건을 지정하여 일부 Items 을 결과에서 제거할 수 있다.


{
    TableName:  "Music",
    ProjectionExpression: "Artist, Title"
}
cs


Scan 작업으로 Table 의 전에 Item 을 읽거나 ProjectionExpression 에 Attribute 는 지정하여, 결과에서 제외시킬 수 있다.


Index 에 대하여 Query 나 Scan 을 할 경우에는 IndexName 파라미터만 추가하면 된다.



데이터 수정


{
    TableName: "Music",
    Key: {
        "Artist":"No One You Know",
        "SongTitle":"Call Me Today"
    },
    UpdateExpression: "SET RecordLabel = :label",
    ConditionExpression: "Price >= :p",
    ExpressionAttributeValues: { 
        ":label""Global Records",
        ":p"2.00
    }
}
cs


위와 같이 UpdateItem 작업에 파라미터를 전달하여 단일 Attribute 를 수정할 수 있다.

UpdateItem 은 개별 Attribute 를 교체하는 것이 아니라 Item 전체를 교체한다.

해당하는 Primary key 가 존재하면 Attribute 를 업데이트 하고, 존재하지 않으면 이 Item 을 추가한다.

ConditionExpression 에 조건을 설정하여 true 일 때만 수정을 수행하도록 할 수도 있다.


또 Number 데이터 타입의 Attribute 에서 숫자 증감도 지원한다.


{
    TableName: "Music",
    Key: {
        "Artist":"No One You Know",
        "SongTitle":"Call Me Today"
    },
    UpdateExpression: "SET Plays = Plays + :incr",
    ExpressionAttributeValues: { 
        ":incr"1
    },
    ReturnValues: "UPDATED_NEW"
}
cs


위 예에서 ReturnValues 파라미터의 UPDATED_NEW 는 업데이트된 Attribute 의 새 값을 반환한다.



데이터 삭제


{
    TableName: "Music",
    Key: {
        Artist: "The Acme Band"
        SongTitle: "Look Out, World"
    },
   ConditionExpression: "attribute_exists(RecordLabel)"
}
cs


DeleteItem 작업에 TableName 과 Primary key 를 지정하면 해당 데이터를 삭제한다.

ConditionExpression 에 조건을 설정하여 true 일 때만 삭제를 수행하도록 할 수도 있다.

복수의 Items 를 동시에 삭제하는 BatchWriteItem 작업을 지원한다.




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,