From a26decaa379788dc2f1a962a1c692bebfa587555 Mon Sep 17 00:00:00 2001 From: qixinzhi Date: Fri, 27 Sep 2024 00:59:29 +0000 Subject: [PATCH] [misc] add table action increase sync. --- lib/duckdb/duckdb.class.php | 1 + module/bi/config.php | 2 +- module/bi/model.php | 8 ++++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/duckdb/duckdb.class.php b/lib/duckdb/duckdb.class.php index 81207c3b23..de3cd319fb 100644 --- a/lib/duckdb/duckdb.class.php +++ b/lib/duckdb/duckdb.class.php @@ -195,6 +195,7 @@ class duckdb $sql = preg_replace($ztpattern, $replace, $sql); $sql = preg_replace($ztvpattern, $replace, $sql); + $sql = str_replace('zt_action.parquet', 'zt_action_*.parquet', $sql); $sql = str_replace('__biPath__', $this->tmpPath, $sql); return $sql; } diff --git a/module/bi/config.php b/module/bi/config.php index 34a330524f..0cc499d968 100644 --- a/module/bi/config.php +++ b/module/bi/config.php @@ -14,7 +14,7 @@ $config->bi->conditionList['NOT IN'] = 'NOT IN'; $config->bi->conditionList['IS NOT NULL'] = 'IS NOT NULL'; $config->bi->conditionList['IS NULL'] = 'IS NULL'; -$config->bi->duckdbExcludeTables = array('metriclib', 'repofiles', 'repohistory', 'queue', 'duckdbqueue', ''); +$config->bi->duckdbExcludeTables = array('metriclib', 'repofiles', 'repohistory', 'queue', 'duckdbqueue', 'action'); $config->bi->builtin = new stdclass(); $config->bi->builtin->modules = new stdclass(); diff --git a/module/bi/model.php b/module/bi/model.php index 40ba1b9353..a809a191c0 100644 --- a/module/bi/model.php +++ b/module/bi/model.php @@ -1193,6 +1193,11 @@ class biModel extends model $copySQLs = array(); foreach($tables as $table) $copySQLs[] = "copy (select * from {$table}) to '{$duckdbTmpPath}{$table}.parquet'"; + $date = date("Y-m-01 00:00:00"); + $prefix = $this->config->db->prefix; + + $copySQLs[] = "copy (select * from {$prefix}action where date < TIMESTAMP '$date') to '{$duckdbTmpPath}{$prefix}action_" . date('Y_m', strtotime('-1 month')) . ".parquet'"; + $copySQL = implode(';', $copySQLs); if(empty($copySQL)) return true; @@ -1219,6 +1224,9 @@ class biModel extends model $copySQLs = array(); foreach($tables as $table) $copySQLs[] = "copy (select * from {$table}) to '{$duckdbTmpPath}{$table}.parquet'"; + $actions = $this->getActionSyncSql(); + foreach($actions as $table => $sql) $copySQLs[] = "copy ({$sql}) to '{$duckdbTmpPath}{$table}.parquet'"; + $this->biTao->updateSyncTime($tables); return implode(';', $copySQLs);