问题标签 [columnstore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
393 浏览

columnstore - Clickhouse 共享词典

有没有办法使用clickhouse在同一共享和/或集群中的多台机器之间“共享”或“复制”字典。

目前,我有大约 10 个文件用于 clickhouse 加载的外部词典(以及一些从中加载数据的 csv)。所有的字典都非常小而且对于很多查询都很重要,所以我想找到一种方法来分发它们,而不是必须在每个集群上维护最新的副本。

有没有办法做到这一点?

0 投票
3 回答
2323 浏览

sql - Columnstore index - slow performance on offset-fetch query

We have Fact table around 35M rows on Azure database (premium tier), this table has cluster columnstore index enabled in order to boost query performance.

We did pagination (to index on Elastic Search) on Fact table using similar below code:

But this query performs so slow, even over 10 minutes, it's not finished. If we change to use TOP, it works really well and take around 30 seconds:

The estimated execution plan for offset-fetch query:

enter image description here

I am not sure that I understand whether offset-fetch query performs very poorly on cluster columnstore index or not.

This table also have a lot of none-cluster B-tree indexes on foreign keys and one unique index on the Id of Fact table in order to boost performance

This execution plan for offset-fetch query:

https://pastebin.com/BM8MXQMg

0 投票
3 回答
2286 浏览

sql-server - 为什么不使用列存储索引

我在 SQL Server 2016 Enterprise Edition 上的所有列上有一个 40m 记录非内存优化表的非聚集列存储索引。

强制使用列存储索引的查询将执行得更快,但优化器继续选择使用聚集索引和其他非聚集索引。我有很多可用的 RAM,并且正在对维度模型使用适当的查询。

为什么优化器不会选择 columnstoreindex?我怎样才能鼓励它的使用(不使用提示)?

这是一个不使用列存储的示例查询:

没有提示需要 7 秒,有提示则需要几分之一秒。没有提示的查询计划在这里。带有提示的查询计划在这里

列存储索引的创建语句是:

更新。计划使用 Count(EquityTradeID) 而不是 Count(*) 并包含提示

0 投票
1 回答
1015 浏览

mysql - Mariadb Columnstore:版本缓冲区溢出

我正在尝试将新数据添加到列存储表,但它返回此错误:

ERROR 1815 (HY000) at line 25: Internal error: CAL0001: Insert Failed: IDB-2008: The version buffer overflowed. Increase VersionBufferFileSize or limit the rows to be processed.

我已经增加了VersionBufferFileSize价值,但问题仍然存在。我什至无法使用列存储引擎创建新表。当我尝试运行时:

create table x(a int) engine=columnstore

我收到此错误:

Internal error: CAL0009: (2)Create table failed due to WE: Error updating calpontsys.systable:BRM block version buffer overflow error.

当我查看versionbuffer.cdf数据目录(下午 4 个节点)中的文件时,其中一些文件大小为 1G。我想他们达到了Columnstore.xml文件中的 1G 限制。即使我在 xml 文件中将限制增加到 5G,versionbuffer.cdf 大小也不会增加。

如何解决这个问题?有没有办法清空版本缓冲区文件?

0 投票
0 回答
100 浏览

sql-server - 更改列存储中的列导致错误,但在第二次尝试时执行

使用 SQL Server 2014 Enterprise 的目的是导入一个 1GB 的 CSV 文件。数据被批量加载到数据库表中,其中大多数字段预定义为 varchar(64)。然后创建聚集列存储索引。对于数据的性质,这是有道理的,因为同一列中的值会定期重复。然后尝试将字段更改为浮动。

例如:

正如人们可能(或可能不会)期望的那样,创建聚集列存储索引会加快这一进程。想法是可以处理执行此语句的代码中的任何错误(通过仔细的错误处理)并确定列中的任何数据是否无法升级。

然而一个人经常得到

错误 601:由于 SQL Server 数据移动,无法使用 NOLOCK 继续扫描。

这会导致 SQL Server Management Studio 查询窗口以及使用 ADO.net 的 c# 代码。只要重新执行前面提到的 alter table 语句,只要列中的数据是数字,查询就会成功地改变列。

问题是其他人是否注意到了类似的行为,以及他们是否对这种行为有更多的了解。特别是这个问题在最新版本的 SQL-server 中消失了吗?

0 投票
2 回答
1492 浏览

mysql - Mariadb 列存储自动增量不起作用

我正在尝试使用 Mariadb 列存储,但是在定义了自动增量列的表中插入数据时出现了一些错误。

使用 JDBC 驱动程序时会出现此问题。

使用 DBeaver,我尝试在表上插入新数据:

但我收到以下错误:

SQL 错误 [1364] [HY000]: (conn:4) 字段 'deaf_id' 没有 默认值

但是使用mcsmysql,我可以成功添加数据:

我尝试使用这两个驱动程序:

https://downloads.mariadb.com/Connectors/java/connector-java-2.0.1/mariadb-java-client-2.0.1.jar

https://downloads.mariadb.com/Connectors/java/connector-java-1.5.9/mariadb-java-client-1.5.9.jar

这有什么已知问题吗?还是我错过了什么?

克莱森里奥斯。

0 投票
1 回答
134 浏览

mariadb - 更改主前端 MariaDB 列存储模块

在我的 Mariadb 列存储中,我有两个前端 MariaDB 列存储模块。现在在 de systemstatus 中,我看到主前端 MariaDB 列存储模块设置在 um2 上。

是否可以将其更改为 um1?如果是这样,我该怎么做?

阿扬·克鲁恩

0 投票
1 回答
1875 浏览

sap - 在 Hana 中加载时间戳和时间值属性时出现问题(属性加载失败错误)

0 投票
1 回答
264 浏览

sql-server - 单列大表(2.5 B 行)。聚集索引与聚集列存储索引

我们有一个巨大的表 Table1(25 亿行),单列 A(NVARCHAR(255)数据类型)。针对此表进行查找操作的正确方法是什么。A 上的聚集索引与 A 上的聚集列存储索引。

我们已经将此表保存在与另一个表 Table2 不同的文件组中,它将与之连接。

您是否建议对该表进行分区以获得更好的性能?此列也将包含 unicode 数据。那么,什么样的分区方法适合 unicode 数据类型呢?

更新:为了进一步澄清,该表的用例是 SEEK。该表存储个人的标识符。这里主要关注的是在大表的情况下 SEEK 的性能。该表将在事务中引用。我们希望交易简短。

0 投票
1 回答
551 浏览

performance - 将包含许多列的记录插入 MariaDB 列存储表需要很长时间

我在 MariaDB 列存储中有一个包含 50 列的表,插入一条记录需要 5 秒以上。看到这一点,我感到非常惊讶。

我不确定这是否是预期的,因为列太多,或者我可能做错了一些设置。

谢谢