'payload'에 해당하는 글 2건

데이터 쓰기


{
    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
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  0개가 달렸습니다.
secret

Table 생성


{
    TableName : "Music",
    KeySchema: [       
        { 
            AttributeName: "Artist"
            KeyType: "HASH"//Partition key
        },
        { 
            AttributeName: "SongTitle"
            KeyType: "RANGE" //Sort key
        }
    ],
    AttributeDefinitions: [
        { 
            AttributeName: "Artist"
            AttributeType: "S" 
        },
        { 
            AttributeName: "SongTitle"
            AttributeType: "S" 
        }
    ],
    ProvisionedThroughput: {       
        ReadCapacityUnits: 1
        WriteCapacityUnits: 1
    }
}
cs



SQL 의 CREATE TABLE 과 같은 역할이다.

Table 을 생성하려면 다음 파라미터를 CreateTable 작업에 전달해야 한다.


  • TableName – Table 이름.
  • KeySchema – Primary Key 에 사용되는 Attribute.
  • AttributeDefinitions – Primary Key 의 데이터 형식.
  • ProvisionedThroughput – RCU / WCU 설정.



Table 읽기/삭제


DescribeTable 작업에 TableName 을 전달하여 위처럼 Table 정보를 읽어올 수 있다.

DeleteTable 작업에 TableName 을 전달하여 Table 을 삭제할 수 있다.



Table 수정


{
    TableName: "Music",
    AttributeDefinitions:[
        {AttributeName: "Genre", AttributeType: "S"},
        {AttributeName: "Price", AttributeType: "N"}
    ],
    GlobalSecondaryIndexUpdates: [
        {
            Create: {
                IndexName: "GenreAndPriceIndex",
                KeySchema: [
                    {AttributeName: "Genre", KeyType: "HASH"}, //Partition key
                    {AttributeName: "Price", KeyType: "RANGE"}, //Sort key
                ],
                Projection: {
                    "ProjectionType""ALL"
                },
                ProvisionedThroughput: {
                    "ReadCapacityUnits"1,"WriteCapacityUnits"1
                }
            }
        }
    ]
}
cs


UpdateTable 작업으로 Secondary Index 를 추가할 수도 있다.


  • TableName – Index 가 연동될 Table 이름.
  • AttributeDefinitions – Index 와 데이터 형식.
  • GlobalSecondaryIndexUpdates – 생성하려는 Index 의 세부 사항.
  • IndexName – Index 이름.
  • KeySchema – Index Primary Key 에 사용되는 Attribute.
  • Projection – Table 에서 Index 로 복사될 Attribute.
  • ProvisionedThroughput – Index 의 RCU / WCU 설정




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

트랙백  0 , 댓글  0개가 달렸습니다.
secret