如果你想从 SQL 的角度来处理这个问题,那么我会广泛地识别任何导致不同行为的分类变量。然后对一些分析变量执行类似以下的操作。
SELECT ClassificationVar1,
ClassificationVar2,
MIN(AnalysisVar1) as Min_AnalysisVar1,
MAX(AnalysisVar1) as Max_AnalysisVar1,
MEAN(AnalysisVar1) as Mean_AnalysiVar1,
STDEV(AnalysisVar1) as Std_AnalysisVar1,
MIN(AnalysisVar2) as Min_AnalysisVar2,
MAX(AnalysisVar2) as Max_AnalysisVar2,
MEAN(AnalysisVar2) as Mean_AnalysiVar2,
STDEV(AnalysisVar2) as Std_AnalysisVar2,
etc.
FROM YourDataFile
GROUP BY ClassificationVar1, ClassificationVar2
ORDER BY ClassificationVar1, ClassificationVar2
我会在最近一年的数据上一次性执行此操作,然后从速度的角度来看,我会根据需要定期运行此操作,以标记异常数据。
也许,一种更好的方法,即学习新技术是 HDFS/Spark,然后是 PIG/Python/R 解决方案。但是 HDFS/Spark 有一些开箱即用的解决方案来进行日志分析。5 亿条记录可能会遇到 SQL 的性能问题,即使是表分区和列索引也是如此。