标签: monetdb

monetdb - 有人在生产中使用它吗?

我非常有兴趣使用monetdb作为数据集市,为查询和报告提供了一些巨大的数据表

但是,经过一番搜索,我无法找到任何关于他们在任何生产能力中使用Monetdb的在线帖子/博客.

此外,关于Monetdb的在线活动似乎很少或几乎没有.

这对Monetdb的未来是个坏兆头吗?

monetdb

20
推荐指数
4
解决办法
7149
查看次数

是否值得尝试MonetDB?

有没有人有使用MonetDB的经验?目前,我的MySQL数据库越来越大,查询速度太慢.根据面向列的范例,插入将更慢(我根本不介意),但数据检索变得非常快.通过切换到MonetDB,我是否有机会获得更多的数据检索性能?MonetDB足够成熟吗?

database column-oriented monetdb

8
推荐指数
1
解决办法
7965
查看次数

访问R外的MonetDBLite

我在R中使用MonetDBLite创建了一个大型数据库,现在我想访问R之外的数据库(例如,使用通用数据库GUI).

有没有办法做到这一点?我不想复制数据,因为我仍然希望通过R访问它.我不需要从R和SQL GUI同时访问数据库,但我想根据需要在两者之间切换.

r monetdb monetdblite

7
推荐指数
0
解决办法
364
查看次数

用于财务分析的数据存储

我正在建立系统来分析有关证券交易价格的大量金融数据.这方面的一个重大挑战是确定数据将使用哪种存储方法,因为数据将在10的TB级中.将对数据进行许多查询,例如取平均值,计算标准偏差以及按多个列过滤的总和,例如价格,时间,数量等.连接语句不是必需的,但是很高兴.

现在,我正在寻找infobright社区版,monetdb和greenplum社区版用于评估目的.到目前为止,它们看起来很棒,但是对于更高级的功能,某些版本中不提供某些功能(使用多个服务器,插入/更新语句等).

您将在这种情况下使用哪些解决方案,并为替代方案提供哪些好处?具有成本效益是一个重要的优点.如果我必须支付数据仓库解决方案,我会,但我宁愿避免它,并尽可能采用开源/社区版路线.

database data-warehouse monetdb greenplum infobright

5
推荐指数
1
解决办法
1165
查看次数

RCHAR是否包含READ_BYTES(proc/<pid>/io)?

我读过proc/<pid>/io来测量SQL查询的IO活动,其中<pid>是数据库服务器的PID.我读取每个查询之前和之后的值以计算差异并获得请求被读取和/或写入的字节数.

据我所知,该字段READ_BYTES计算实际的磁盘IO,同时RCHAR包含更多内容,例如linux页面缓存可以满足的读取(请参阅了解/ proc/[pid]/io中的计数器以 进行说明).这导致了假设,即RCHAR应该得到一个等于或大于的值READ_BYTES,但我的结果与这个假设相矛盾.

我可以想象我为Infobright ICE得到的一些小块或页面开销(值为MB):

        Query        RCHAR   READ_BYTES
tpch_q01.sql|    34.44180|    34.89453|
tpch_q02.sql|     2.89191|     3.64453|
tpch_q03.sql|    32.58994|    33.19531|
tpch_q04.sql|    17.78325|    18.27344|
Run Code Online (Sandbox Code Playgroud)

但我完全不理解MonetDB的IO计数器(值为MB):

        Query        RCHAR   READ_BYTES
tpch_q01.sql|     0.07501|   220.58203|
tpch_q02.sql|     1.37840|    18.16016|
tpch_q03.sql|     0.08272|   162.38281|
tpch_q04.sql|     0.06604|    83.25391|
Run Code Online (Sandbox Code Playgroud)

我错误的假设RCHAR包括READ_BYTES?有没有办法欺骗内核计数器,MonetDB可以使用?这里发生了什么?

我可能会补充一点,我清除页面缓存并在每次查询之前重新启动数据库服务器.我在Ubuntu 11.10上运行内核3.0.0-15-generic.

linux io monetdb linux-kernel procfs

5
推荐指数
1
解决办法
2061
查看次数

是否可以创建一个node.js模块,该模块使用c库进行monetdb连接?

我正在尝试monetdb与之联系node.js.我有一个简单的(20行)c程序,可以moentdb使用mapi库进行查询.

我可以使用这些库来构建node.js使用这些库并连接到的东西(模块/插件)monetdb吗?

(使用odbc是一种选择,但它有其自身的缺点.)

Update1:
node-ffi非常棒.我能够很容易地创建一个fetch表程序.(例如,我添加了我的工作代码.)

所以,如果我有3个选项
1. ODBC
2. node-ffi
3. ac程序获取数据库数据并通过socket监听node.js的连接

在性能方面,这是更好的实现选择,如果我没有多少时间为node.js开发插件

var ffi = require("ffi");
var libmylibrary = ffi.Library('/usr/local/lib/libmapi.so', {
    "mapi_connect":["int",["string",'int',"string","string","string","string"]],
    "mapi_query":['int',["int","string"]],
    "mapi_fetch_row":["int",["int"]],
    "mapi_fetch_field":["string",["int","int"]]
});


var res = libmylibrary.mapi_connect("localhost", 50000,"monetdb", "monetdb", "sql", "demo");
console.log(res);
var ret=libmylibrary.mapi_query(res,"select * from table");
while(libmylibrary.mapi_fetch_row(ret)){
    console.log(libmylibrary.mapi_fetch_field(ret,0));
    console.log(libmylibrary.mapi_fetch_field(ret,1));
}
Run Code Online (Sandbox Code Playgroud)

更新2:
以上代码不建议用于生产用途...它不使用node.js的异步功能,所以请将它用于婴儿步骤

javascript database monetdb node.js node-ffi

5
推荐指数
1
解决办法
1750
查看次数

带有where子句与group by的最小/最大查询

运行MonetDB数据库服务器工具包v1.1(2013年2月-SP6)

这个查询

select rowtype, min(zdate), max(zdate) , count(*) 
from fdhista 
group by rowtype 
;
Run Code Online (Sandbox Code Playgroud)

返回每个行类型的正确最小和最大日期.

rowtype L1  L2  L3
3   1970-12-31  2009-07-31  1664186
1   2003-02-24  2013-09-13  11649306
Run Code Online (Sandbox Code Playgroud)

这个查询,在同一个表上

select min(zdate), max(zdate), count(*) from fdhista where rowtype=3;
Run Code Online (Sandbox Code Playgroud)

似乎"忽略"了where子句,返回

L1  L2  L3
1970-12-31  2013-09-13  13313492
Run Code Online (Sandbox Code Playgroud)

我还没有找到一个通用的sql先例(尚未).这是预期的反应吗?

我在期待这个

L1  L2  L3
1970-12-31  2009-07-31  1664186
Run Code Online (Sandbox Code Playgroud)

我在Oracle和SQL Server中尝试了类似的查询,并取回了我预期的响应.然而,我发现支持"忽略"where子句的通用sql注释.也许这是MonetDB使用特定SQL标准的情况?

sql monetdb

5
推荐指数
1
解决办法
963
查看次数

如何在monetdb数据库中获取表的列表?

在postgresql中,可以通过运行以下查询来获取所有表名

SELECT table_name FROM information_schema.tables WHERE table_schema='public';
Run Code Online (Sandbox Code Playgroud)

在monetdb中有类似的东西可以得到表的列表吗?

monetdb

5
推荐指数
2
解决办法
4012
查看次数

MonetDB-为什么加倍的自连接会导致查询执行时间从几毫秒到几小时不等?

SQL在非常简单的表上运行查询.这些表使用此处介绍的"垂直分区"对RDF图进行建模.因此,它们都具有以下模型,其中s是"主体"并且o是对象.

CREATE TABLE a_table (BIGINT s, BIGINT o)
Run Code Online (Sandbox Code Playgroud)

鉴于我449669在表中有元组存储prop_eventPrecedeInTask.运行了以下查询(在表上有4个自联接prop_eventPrecedeInTask)353 ms

SELECT t1.s AS event1, t2.o AS event2, t3.o AS event3, 
       t4.o AS event4, t5.o AS event5, t6.o AS event6 
FROM "prop_SystemCallIsExecutedDuringTask" t1,
     "prop_eventPrecedeInTask" t2,
     "prop_eventPrecedeInTask" t3,
     "prop_eventPrecedeInTask" t4,
     "prop_eventPrecedeInTask" t5,
     "prop_eventPrecedeInTask" t6          
WHERE t1.o = 15667
  AND t1.s = t2.s 
  AND t2.o = t3.s
  AND t3.o = t4.s
  AND t4.o = t5.s
  AND t5.o = …
Run Code Online (Sandbox Code Playgroud)

database performance join self-join monetdb

5
推荐指数
0
解决办法
217
查看次数

将新列添加到MonetDBLite表

我正在尝试使用R + MonetDB作为大数据分析堆栈,但是在创建新列并使用我的分析数据填充它时遇到了问题.这是一个玩具示例:

library(MonetDBLite)
library(DBI)

data(mtcars)
db <- dbConnect(MonetDB.R::MonetDB(), embedded="./test.db")

# load mtcars into the database
dbWriteTable(conn=db, value = mtcars, name = "mtcars", overwrite=TRUE)

## Add a new column
dbSendQuery(db, "ALTER TABLE mtcars ADD v1 DOUBLE;")


## insert data into the new column
v1 <- mtcars["mpg"] * pi
dbSendQuery(db, "INSERT INTO mtcars (v1) VALUES (?)", bind.data=v1)
Run Code Online (Sandbox Code Playgroud)

并且错误消息:

Error in .local(conn, statement, ...) : 
  Unable to execute statement 'INSERT INTO mtcars (v1) VALUES ('c(65.9734457253857, 65.9734457253857, 71.6283125018473, 67.23008278...'.
Server says 'ERROR: 49.6371639267187, …
Run Code Online (Sandbox Code Playgroud)

sql r monetdb monetdblite

5
推荐指数
1
解决办法
442
查看次数