问题标签 [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.
sql-server - 非聚集列存储索引和主/外键
文档说我们不能在主键或外键列中创建非聚集列存储索引
https://docs.microsoft.com/en-us/sql/t-sql/statements/create-columnstore-index-transact-sql
“具有非聚集列存储索引的表可以具有唯一约束、主键约束或外键约束,但这些约束不能包含在非聚集列存储索引中。”
但在我的测试中,它正在工作:
我在这里想念什么?文档是否正确?
这是我的 SQL Server 版本
Microsoft SQL Server 2016 (SP1-CU4) (KB4024305) - 13.0.4446.0 (X64) 2017 年 7 月 16 日 18:08:49 版权所有 (c) Microsoft Corporation Developer Edition
问候
sql-server - 当列存储表在同一数据库中时更改分区函数和方案
我有一个每周分区的表,并定义了分区函数和方案。最重要的是该表具有具有相同每周分区方案的聚集列存储索引。
所以现在我必须在分区函数和方案中添加更多范围。失败并显示“无法更改具有非空分区的分区功能......”的错误,其中数据文件只有 4KB,没有加载数据。
从 2014 Ssms 的一篇帖子中,我了解到我们需要禁用聚集索引并更改分区方案并再次启用。
请帮助解决这个问题。我正在使用 2016 sql 和企业版。提前致谢。
sql-server - Azure SQL DW 行存储与列存储
我在 Azure SQL 数据仓库中有超过 5 亿条记录。我正在尝试做一些基准测试,以了解以何种方式保存记录。行存储或列存储。我不会将表与其他表连接起来,它不是分析事实表。两个表都以循环方式分发,并且都包含 17 个分区。它们都有 45 列。当我查询对两列求和时,我希望 Columnstore 表的性能比 rowstore 好得多,但实际情况是,我从 Rowstore 大约 2.5 分钟和 columnstore 大约 10 分钟得到求和结果。我不使用任何过滤器或分组依据。另一方面,当我查询 count(*) 时,柱状表的性能比行存储要好得多。
编辑
虽然我不能与你分享所有细节,因为它是私人的,这里有一些只是为了了解发生了什么。我在 smallrc 和 100DWU 上运行查询。表加载了一个 CTAS 并包含来自多个表的预连接信息,并将通过我们内部应用程序的自定义定义协议(排序/组/过滤器/分页)提供查询服务。该域是赌博的,从 45 列中,我们有 43 列可以用作过滤器。输出集通常包含 3 到 4 列加上两个总和列,每个查询不超过 1000 行。我假设每个月都有一个新分区,我通过 EventDate 每月对两个表进行分区。大多数情况下,我的查询包含 EventDate 作为过滤器。除了与列存储相同的分区外,我的 Rowstroe 表还包含 EventDate 作为聚集索引。添加 EventDate 作为列存储的二级索引带来了一些改进,但性能仍远远落后于行存储。EventDate 为 int 格式,值模式为 yyyyMMdd (20180101)。
mariadb - 表大小 - MariaDB 列存储与 InnoDB
我在 MariaDB 的 ColumnStore 上找到的每项分析都声称它使用的磁盘空间比 InnoDB 等常规引擎少,例如:https ://www.percona.com/blog/2017/03/17/column-store-database-benchmarks-mariadb -columnstore-vs-clickhouse-vs-apache-spark/
但这不是我在测试中发现的
将值为 0 的 100 万行(5 列)插入表中:
columnstore 表的大小比 innoDB 表大:
此外,如果我在不压缩的情况下创建表,则大小是相同的:
我正在使用 mariadb-columnstore-1.1.2-1 版本
我的.ini 文件:
这是预期的行为还是我做错了什么?
mysql - MariaDB ColumnStore:按计算值过滤子查询
我有一个表,对于给定的(time, country, asn)
元组,它存储了几个指标:
在一般使用期间,我将这些指标中的每一个标准化为 0 到 100 之间的值,然后返回最大值,以便粗略估计该国家与 ASN 的连接“有多好”:
有时我可能会通过使用reqs
(对该国家/地区的请求数+ASN)列进行加权来执行加权平均:
此查询完美运行。但是,当我尝试在子查询中使用它时,我遇到了一个问题。
我的目标是找出有多少国家的“平均质量”低于某个阈值:
这引发了错误:
我可以毫无问题地执行更简单的子查询。为什么这个失败,我该如何解决?
我正在使用 MariaDB,并且该metrics
表使用 ColumnStore 引擎。
快速更新
当我WHERE t1.avg_quality < 50
用WHERE country = "US"
查询替换时执行没有问题。所以执行子查询或过滤没有问题。严格来说,当我尝试过滤计算列时它会失败。
sql-server - Visual Studio 2017 中的 SSDT 和 ColumnStore 索引
在 SSDT 中,我有一个表和列存储索引定义为:
这两个创建“索引”命令似乎不正确,还有,为什么它引用了一列?
indexing - 带有 Top 子句的 SQL Server 2016 聚集列存储索引
我试图从具有聚集列存储索引的表中选择前 N行在 sql server 2016 中返回数据需要更多时间(超过一分钟)。
当我删除 Top 并说select * from data 在不到 5 秒的时间内返回。与TOP一起计划
java - MariaDB ColumnStore Bulk Write SDK 需要很长时间
我正在尝试使用 Java 中的 MariaDB ColumnStore Bulk Write SDK 在具有 50 列(数据类型 int)的表中批量插入 10 行,但它从未完成必须在 10 -15 次尝试中终止进程,但结果相同。
这是他们文档中的代码示例 https://mariadb.com/kb/en/library/columnstore-bulk-write-sdk/#rhel-centos-7
尝试将列减少到 20 并且工作正常。有没有人注意到这一点?