요즘의 관계형 데이터베이스는 비효율적이지만 노크하는 로그 유형을 저장할 때 게임이나 사용자가 지속적으로 액세스하지 않기 때문에 효율성이 필요하지 않습니다. 팀만 필요합니다. 데이터를 읽습니다.
따라서 "효율성"은 그다지 중요하지 않습니다. 더 중요한 것은 사용자가 게임에서 무엇을하고 있는지에 대한 이야기를 쉽게 전달할 수있는 방식으로 데이터를 주문하는 것입니다. 개발자는 일반적으로이 데이터를 소비하고 분석가가 읽을 수있는 인터페이스에 데이터를 표시해야하며 분석가는 때때로 데이터를 쿼리하여 사용자 행동에 대해 깊이 파고 들어야합니다. 예를 들어, 플레이어가 업데이트 전에 특정 품목을 구매하고 있지만 업데이트 후에 구매를 중단 한 경우 분석가는 구매와 관련된 동작에 대해 특정 숫자를 노출시켜 사용자가 더 이상 구매하지 않는 이유를 판단하는 특정 쿼리를 작성하면 도움이됩니다. 제대로 작동하는 표준 쿼리 언어가 문서화되어있는 것이 가장 좋습니다. 이러한 검색어를 맞춤 이진 형식으로 만들어야하는 경우 작업이 훨씬 더 어려워집니다.
일반적으로 게임 이벤트는 다음과 같습니다 (특히 DeltaDNA 형식).
{
"eventName":"specific event code – eg. gameStarted",
"userID":"ABCD1-4321a879b185fcb9c6ca27abc5387e914",
"sessionID":"4879bf37-8566-46ce-9f3b-bd18d6ac614e",
"eventTimestamp":"yyyy-mm-dd hh:mm:ss.SSS",
"eventParams":
{
"platform":"WEB",
"param1":"stringParam",
"param2":true,
"param3":1234,
"param4":["a","b","c"]
},
}
이벤트에는 일반적으로 이벤트 이름, 사용자 ID, 세션 ID, 타임 스탬프 및 해당 이벤트 주변에 기록하는 데 유용한 데이터를 기록 할 수있는 매개 변수가 포함됩니다. 그리고 내 경험상 관계형 데이터베이스 형식이 그러한 구조를 기록하는 데 가장 좋습니다.