Presentation is loading. Please wait.

Presentation is loading. Please wait.

©deltaDNA. deltaDNA is a trading name of GamesAnalytics Ltd. WEBINAR DIRECT ACCESS.

Similar presentations


Presentation on theme: "©deltaDNA. deltaDNA is a trading name of GamesAnalytics Ltd. WEBINAR DIRECT ACCESS."— Presentation transcript:

1 ©deltaDNA. deltaDNA is a trading name of GamesAnalytics Ltd. WEBINAR DIRECT ACCESS

2 ©deltaDNA. deltaDNA is a trading name of GamesAnalytics Ltd. Agenda Overview Data Structure Data Mining –Events –Users Direct Access –Connecting –Querying Events –Querying Users –Joining between Events and Users Questions… http://docs.deltadna.com/direct-sql-access/

3 ©deltaDNA. deltaDNA is a trading name of GamesAnalytics Ltd. Overview

4 ©deltaDNA. deltaDNA is a trading name of GamesAnalytics Ltd. Overview Aggregated Data - Counts of events, users, sessions, missions, revenue, items etc.. - Fixed set of Dimensions and Measures

5 ©deltaDNA. deltaDNA is a trading name of GamesAnalytics Ltd. Overview Aggregated Data - Counts of events, users, sessions, missions, revenue, items etc.. - Fixed set of Dimensions and Measures Raw Data - Not aggregated, contains all events and parameters - Stored in an HP Vertica Analytics Database - Very fast ad hock queries against any events or parameters - Event Data retained for 30 days be default (can be extended on a per game basis) - User Metrics retained for life

6 ©deltaDNA. deltaDNA is a trading name of GamesAnalytics Ltd. Overview Aggregated Data - Counts of events, users, sessions, missions, revenue, items etc.. - Fixed set of Dimensions and Measures Raw Data - Not aggregated, contains all events and parameters - Stored in an HP Vertica Analytics Database - Very fast ad hock queries against any events or parmaters - Event Data retained for 30 days be default (can be extended on a per game basis) - User Metrics retained for life Archives - All event data is archived to Amazon S3 so you can download and run longer map reduce queries.

7 ©deltaDNA. deltaDNA is a trading name of GamesAnalytics Ltd. Data Structure Events –Stored in a single wide table –One row per event there are exceptions! more on them later… –One column per parameter –So, simplistically there is a row for each event you send and it contains columns for every possible parameter the game can send. –New columns will be added to the events table automatically as you add new parameters to your event schema.

8 ©deltaDNA. deltaDNA is a trading name of GamesAnalytics Ltd. Data Structure Events –Stored in a single wide table –One row per event there are exceptions! more on them later… –One column per parameter –So, simplistically there is a row for each event you send and it contains column for every possible parameter the game can send. –New columns will be added to the events table automatically as you add new parameters to your event schema. - The exceptions, Some events can span multiple rows (transaction, levelUp etc...) Some columns are automatically populated by deltaDNA

9 ©deltaDNA. deltaDNA is a trading name of GamesAnalytics Ltd. Data Structure User Metrics –Each row contains metrics for a user including Generic Metrics – automatically calculated totalDaysPlayed, totalRealCurrencySpent … Counts of events eventGameStartedCount, eventLevelUpCount … Parameter Metrics  Auto fieldMissionNameLast, fieldDeviceTypeLast, fieldUserXPLast …  User Defined. Any String or Integer Game Parameter. Set parameters as metrics in Game Parameters tool. (Warning, don’t just set everything to be a metric, it will just bloat your user metrics table and slow down your direct access queries) –Multiple rows per user, use effective date to get the most recent –Updated every night in the early hours (UTC). This is an archive for you to run queries on, Segmentaion, Targeting etc.. Work against a live, in memory version of this that has real-time accuracy. –Be aware, some metrics are relative to the user_last_seen_date, e.g. daysPlayedLast7Days. We are looking to change this at some point to make re-evaluation of inactive users easier.

10 ©deltaDNA. deltaDNA is a trading name of GamesAnalytics Ltd. Direct Access - Queries Event Query User Metrics Query -- Event Mining Query SELECT movesRemaining, count(eventDate) FROM events_live WHERE missionName= 'First Time User Forest #2' AND eventName = 'missionCompleted' GROUP BY movesRemaining ORDER BY movesRemaining desc ; -- User Mining Query select * from user_metrics_dev where effective_date = CURRENT_DATE limit 20 ;

11 ©deltaDNA. deltaDNA is a trading name of GamesAnalytics Ltd. Direct Access - Queries Advanced Query with JOIN between events and user metrics SELECT e.missionName, count(e.missionName) FROM events_live e JOIN user_metrics_live m ON e.userID = m.user_id WHERE eventName = 'missionFailed' AND e.missionName LIKE 'First Time User Forest%' AND m.fieldLivesBalanceLast = 0 AND m.effective_date = CURRENT_DATE GROUP BY e.missionName ORDER BY e.missionName ; First Time User Forest #3 is causing abandonment It has the highest number of players where it is The last mission they play, and fail and have no lives left

12 ©deltaDNA. deltaDNA is a trading name of GamesAnalytics Ltd. Direct Access - Queries CASE queries -- CASE SELECT count(distinct(userID)), missionName, SUM(CASE WHEN eventName = 'missionStarted' THEN 1 END ) "Started", SUM(CASE WHEN eventName = 'missionCompleted' THEN 1 END ) "Completed", SUM(CASE WHEN eventName = 'missionFailed' THEN 1 END ) "Failed" FROM events_live where eventName in ('missionStarted', 'missionCompleted', 'missionFailed') GROUP BY missionName ORDER BY count(distinct(userID)) DESC

13 ©deltaDNA. deltaDNA is a trading name of GamesAnalytics Ltd. Direct Access - Queries Common Table Expressions WITH userStats AS ( SELECT userID, datediff(day,gaUserStartDate,eventDate) AS playerDay, min(goldBalance) AS minGoldBalance FROM event_store_v4.events_2676 GROUP BY userID, playerDay ) SELECT COUNT(DISTINCT userID) AS UniqueUsers, playerDay, minGoldBalance FROM userStats GROUP BY playerDay, minGoldBalance ORDER BY playerDay, minGoldBalance Temporary named result sets that can be used elsewhere in query will result in less complex, faster running queries

14 ©deltaDNA. deltaDNA is a trading name of GamesAnalytics Ltd. Tips Use Common Table Expressions if you can Your queries will be less complex and run much more quickly Go beyond SQL-92. Vertica has some very powerful SQL functions http://my.vertica.com/docs/7.1.x/HTML/index.htm#Authoring/SQLReferenceManual/SQLReferenceManual.htm http://my.vertica.com/docs/7.1.x/HTML/index.htm#Authoring/SQLReferenceManual/SQLReferenceManual.htm Avoid SELECT * at all costs it hurts performance massively, select only the columns you need. Large exports are bad, use S3 archives if you want to download big exports. - We limit number of rows to 10K on select * queries - We limit data transfer to 1Gb on all other queries JOINs. If you can JOIN on userid do so, as it will allow your query to run in parallel on many more processing nodes as your data is distributed across the database cluster by userid.

15 ©deltaDNA. deltaDNA is a trading name of GamesAnalytics Ltd. Further Reference deltaDNA docs.deltadna.com


Download ppt "©deltaDNA. deltaDNA is a trading name of GamesAnalytics Ltd. WEBINAR DIRECT ACCESS."

Similar presentations


Ads by Google