만들어야하는 테이블

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/3fea5885-4181-437b-ba69-73077f93a174/2020-12-15-15-11-58.png

테이블 요소

DynamoDB 테이블 스키마

‘data_play’

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/758c1ab3-8fb9-4afb-af7d-72c2a4521aae/Untitled.png

‘data_play_agg’

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/c5941b58-59bc-4a0e-95a6-a882125b7bc8/Untitled.png

MySQL 테이블에서는 date - channelId - objectId 세 가지 속성을 복합키로 사용하고 있는데, DynamoDB에서는 Partition Key, Range Key 두 가지만 Key로 사용할 수 있어서 objectId와 channelId 속성을 하나로 묶어 사용하기로 했다.

데이터 전송 로직

let reqOptions = {
  method: "POST",
  uri: "<https://uafp72mu9c.execute-api.us-east-2.amazonaws.com/dev/play>",
  body: {
    playIp: req.ip.slice(7),
    date: moment().format("YYYYMMDDHHmm"),
    playData: item,
  },
  json: true,
  timeout: 10000,
};
const rpResult = await rp(reqOptions);