Analytical observations of Weblog

General information for the business: We build softwares
Kind of development: New program from scratch
Num. of modules: 1
Description of every module: The challenge is to make analytical observations about the data
Description of requirements/functionality: The challenge is to make analytical observations about the data using the tools below.
## Processing & Analytical goals:
1. Sessionize the weblog by IP. Sessionize = aggregate all page hits by visitor/IP during a fixed time window.
https://en.wikipedia.org/wiki/Session_(web_analytics)
2. Determine the average session time
3. Determine unique URL visits per session. To clarify, count a hit to a unique URL only once per session.
4. Find the most engaged users, ie the IPs with the longest session times
### Tools allowed (in no particular order):
- MySQL, PostgreSQL or any other RDBMS
- SQL language
- Linux
- Java
### Additional notes:
- You are allowed to use whatever libraries/parsers/solutions you can find provided you can explain the functions you are implementing in detail.
- IP addresses do not guarantee distinct users, but this is the limitation of the data. As a bonus, consider what additional data would help make better analytical conclusions
- For this dataset, complete the sessionization by time window rather than navigation. Feel free to determine the best session window time on your own, or start with 15 minutes.
- The log file was taken from an AWS Elastic Load Balancer:
http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/access-log-collection.html#access-log-entry-format
## How to complete this challenge:
A. Complete the processing and analytics as defined first to the best of your ability with the time provided.
B. Place notes in your code to help with clarity where appropriate. Make it readable enough to present to others.
C. Complete your work in your own github repo and send the results to us and/or present them during your interview.
## What are we looking for? What does this prove?
We want to see how you handle:
- New technologies and frameworks
- Messy (ie real) data
- Understanding data transformation
This is not a pass or fail test, we want to hear about your challenges and your successes with this particular problem.
Specific technologies required: Java, MySQL, SQL language
OS requirements: Windows, Linux
Extra notes: