aggregateByResolution(); $this->aggregateByConfiguration(); } /** * Period archiving: simply sums up daily archives */ public function aggregateMultipleReports() { $dataTableRecords = array( self::RESOLUTION_RECORD_NAME, self::CONFIGURATION_RECORD_NAME, ); $this->getProcessor()->aggregateDataTableRecords($dataTableRecords, $this->maximumRows); } protected function aggregateByConfiguration() { $metrics = $this->getLogAggregator()->getMetricsFromVisitByDimension(self::CONFIGURATION_DIMENSION)->asDataTable(); $this->insertTable(self::CONFIGURATION_RECORD_NAME, $metrics); } protected function aggregateByResolution() { $table = $this->getLogAggregator()->getMetricsFromVisitByDimension(self::RESOLUTION_DIMENSION)->asDataTable(); $table->filter('ColumnCallbackDeleteRow', array('label', function ($value) { return strlen($value) <= 5; })); $this->insertTable(self::RESOLUTION_RECORD_NAME, $table); return $table; } protected function insertTable($recordName, DataTable $table) { $report = $table->getSerialized($this->maximumRows, null, Metrics::INDEX_NB_VISITS); return $this->getProcessor()->insertBlobRecord($recordName, $report); } }