Solution to interview question at wallethub
Can be found here
-
Java program that can be run from command line
- Download java file here
- Build tool - gradle
- To build jar file, run gradle Jar
- to execute, run java -cp "parser.jar" com.ef.Parser --startDate=2017-01-01.15:00:00 --duration=hourly --threshold=200
-
database name :
access_log
-
log table schema
CREATE TABLE `blocked_ip_3` (
`id` int(64) NOT NULL AUTO_INCREMENT,
`ip_address` varchar(20) DEFAULT NULL,
`comment` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
- Blocked IPs Schema
CREATE TABLE `log_line_3` (
`id` int(64) NOT NULL AUTO_INCREMENT,
`log_time` date DEFAULT NULL,
`ip_address` varchar(20) DEFAULT NULL,
`request` varchar(100) DEFAULT NULL,
`status` int(64) DEFAULT NULL,
`user_agent` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=116485 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
- select * from log_line where ip_address = '192.168.203.111'
- select * from log_line where (log_time BETWEEN '2017-01-01.13:00:00' AND '2017-01-01.14:00:00')