升级后Vertica投影的行数不一致
在升级版本之前,我运行了一个VSQL查询,以捕获Vertica数据库中每个投影的总行数。在升级之后,部分投影的行数与预期不同——有的变高,有的变低。
升级前后执行的查询如下:
SELECT
schema_name,
projection_name,
SUM(total_row_count) total_rows
FROM
v_monitor.storage_containers
WHERE
projection_name <> 'c_license_metrics_super'
GROUP BY
schema_name,
projection_name
ORDER BY
schema_name,
projection_name
解决方案
检查受影响的投影是否为实时聚合投影。这种现象通常出现在那里,这并非由于升级引起;只要Tuple Mover将两个或以上的ROS(Read Optimised Store,读取优化存储)容器合并成一个,就可能发生。
设想两次数据加载几乎同时进行,写入到 customer_sales,它拥有一个名为 customer_sales_lap 的实时聚合投影,它按 cust_id 进行聚合,从而创建了一个 SUM()。
每次加载都会生成自己的ROS容器:
cust_id | ssum
42 | 50
和
cust_id | ssum
42 | 100
查询对于cust_id 42、42和 150的情况,返回只有一行。
通过存储容器元表对行数求和时,针对分组条件42将返回两行。
一旦Tuple Mover将这两个ROS容器合并,你最终将得到一个只有一行、分组条件为42的 ROS容器。
请记住,实时聚合投影是部分聚合(partial aggregates)。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。