问题标签 [column-oriented]
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.
database - 面向列的数据库的建议
我发现数据库通常有两种形式,传统的面向行的 RDBMS 或面向对象的数据库 (OODBMS)。然而,我记得在 90 年代中期,出现了一种面向列的新型数据库。其中一些被赋予了 4GL 一词,但我不认为它是一个固定的术语。
我想知道的是:
- 哪些面向列的数据库仍然存在?
- 这些数据库的性能特点是什么?
- 有没有开源的面向列的数据库?
- 它们与哪些平台进行互操作(.NET、Java 等)
- 你对他们的一般经验是什么?
我记得使用的两个面向列的数据库是 FAME 和 KDB。
postgresql - PostgreSQL 的开源列式存储引擎?
是否有任何开源项目正在为 PostgreSQL 创建面向列的存储引擎?我知道雅虎在内部创建了一个,并且有基于 PostgreSQL 的面向列的商业产品。
database - TimeSeries 数据库的建议
最好是用于存储刻度信息的开源。
mysql - MySQL:MySQL 5.5 中会提供面向列的引擎吗?
MySQL 5.5 的核心版本中是否会提供面向列的存储引擎(例如 InfiniDB)?
意思是,不是作为插件,而是与核心 MySQL 5.5 捆绑包一起提供。
java - 在 Java 中转换为面向列的数组
虽然标题中有 Java,但这可能适用于任何 OO 语言。我想知道一些新想法来提高我正在尝试做的事情的性能。
我有一个不断接收 Object[] 数组的方法。我需要通过多个数组(列表或其他东西)拆分此数组中的对象,以便我为该方法接收的所有数组的每一列都有一个独立的列表。
例子:
注意:为简单起见,我省略了对象和东西的初始化。
我上面显示的代码当然很慢。我已经尝试了一些其他的东西,但想听听一些新的想法。
知道它对性能非常敏感,您将如何做到这一点?
编辑:
我测试了一些东西,发现:
我没有使用 ArrayList(或任何其他集合),而是将 Object[] 数组包装在另一个对象中以存储各个列。如果此数组达到其容量,我将创建另一个大小为两倍的数组,并使用 System.copyArray 将内容从一个复制到另一个。令人惊讶的是(至少对我来说)这比使用 ArrayList 存储内列更快......
database - NoSQL 和面向列的数据库有什么区别?
我对 NoSQL 的了解越多,我就越觉得它更像是一个面向列的数据库。
NoSQL(例如 CouchDB、Cassandra、MongoDB)和面向列的数据库(例如 Vertica、MonetDB)之间有什么区别?
nosql - 面向列的数据库(HBase、Cassandra)中的顺序行 ID?
在 HBase 中设计行 ID 时,我看到了两条相互矛盾的建议(特别是,但我认为它也适用于 Cassandra。)
- 将您经常聚集在一起的键分组以利用数据局部性。(White, Hadoop: The Definitive Guide,我记得在 HBase 站点上看到过,但找不到...)
- 分散密钥,以便工作可以分布在多台机器上(Twitter幻灯片 14 中的 Twitter、Pig 和 HBase)
我猜哪个是最佳的可能取决于您的用例,但是有没有人对这两种策略有任何经验?
database - 在设计数据库模式时,面向列的 DBMS 和 RDBMS 之间有什么不同吗?
这两种数据库有什么不同吗?如果是,有什么不同?谢谢你。
hadoop - hadoop之上的列存储?
是否有一个类似于 Vertica 的列存储,它是建立在 Hadoop 之上的。我不是在谈论 HBase,因为它是稀疏矩阵存储,并且无法获得像 Vertica 这样的东西可以实现的压缩级别?
谢谢