问题标签 [monetdblite]

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 投票
0 回答
48 浏览

performance - monetdblite 性能跟踪

MonetDBLite 没有跟踪功能。使用 Visual Studio 编译的 Release 版本比使用 MinGW64 编译的版本快,两者都使用了优化 (/O2)。但即便如此,对于相同的导入数据、查询和磁盘存储(相同的 ssd),最快的版本似乎比 mclient 中报告的时间慢 3-4 倍,dll 的基准测试为 ~6 秒,而 monetdb 服务器为 1.8 秒. 我希望 lite 版本具有可比的时间(文章将 lite 库描述为比 monetdb 本身更快)。MonetDBLite 是 2018 年 10 月下载的,而 MonetDB 服务器是 Aug 2018.SP2 版本。

在没有任何跟踪功能的情况下(sys.tracelog() 是一个虚拟函数),有什么方法可以调试这种情况吗?

0 投票
1 回答
51 浏览

monetdblite - 在 MonetDBLite 中使用“INSERT INTO test VALUES”加载巨大的表

在我的用例中,我在运行时生成数据,将这些数据序列化为 CSV 文件,然后使用加载到 MonetDBLite 的成本COPY可能比使用INSERT INTO tablename VALUES. 鉴于 MonetDBLite 不像在 ODBC/iODBC 中那样使用 DBConnections,这是否意味着我不需要使用显式语句来清除内存,还是在将一些 GB 的数据加载到表中之后COMMIT仍然需要运行以不占用COMMIT所有可用的主内存?提前致谢。

0 投票
0 回答
87 浏览

python - 对 MonetDB 的插入不是持久的

我正在使用 MonetDBLite 和 Python 将点云数据导入 MonetDB。由于某些处理步骤非常占用 CPU,因此我将处理并行化以在两个内核上运行。在预处理结束时,数据从 Pandas 数据帧加载到 MonetDB。

只要 Python 进程处于活动状态,磁盘上的数据库大小就会随着每次插入而增加。但是一旦进程/工作者终止,磁盘大小就会缩小到 1.5MB。

如何使更改持久化?

这是对工作流程的粗略简化:

0 投票
1 回答
68 浏览

sql - 如何在 b 中没有函数(a)的情况下连接表

在 MonetDB(特别是“MonetDBLite”R 包中的嵌入式版本)中说,我有一个表“事件”,其中包含实体 ID 代码和事件开始和结束日期,格式为:

该表包含大约 8000 万行事件,可归因于大约 250 万个唯一实体(ID 值)。日期似乎与日历季度很好地对齐,但我没有彻底检查它们,所以假设它们可以是任意的。但是,我至少对它们进行了 end_date > start_date 的感觉检查。

我想生成一个表“nonevent_qtrs”,列出 ID没有记录事件的日历季度,例如

(doq = 季度日)

如果事件的范围跨越该季度的任何一天(包括第一个和最后一个日期),那么我希望它被视为在该季度发生。

为了解决这个问题,我制作了一个“日历表”;季度表“qtrs”,涵盖“事件”中出现的整个日期跨度,格式为:

并尝试像这样使用非 equi 合并:

但这是 a) 非常低效和 b) 肯定是错误的,因为大多数 ID 都被列为所有季度都没有事件。

如何生成我描述的表“nonevent_qtrs”,其中包含每个 ID 没有事件的季度列表?

如果相关,最终用例是计算非事件的运行以查看事件发生时间分析和预测。感觉需要运行长度编码。如果有比我上面描述的更直接的方法,那么我会全神贯注。我开始关注非事件运行的唯一原因是尝试限制交叉产品的大小。我也考虑过制作类似的东西:

但是,尽管更有用,但由于所涉及数据的大小,这可能不可行。宽格式:

也会很方便,但由于 MonetDB 是列存储,我不确定这是否或多或少有效。

0 投票
2 回答
76 浏览

monetdb - MonetDBe-Python 可以使用 COPY 命令吗?

我在批量加载记录时遇到了一些麻烦,以比cursor.executemany允许的速度更快。我希望这里使用常规 MonetDB 记录的批量操作可能会起作用,所以我尝试导出作为测试。例如cursor.execute("COPY SELECT * FROM foo INTO '/file/path.csv'")。除非文件已经存在,否则不会引发错误,但生成的文件始终为 0 字节。我对文件进行了同样的尝试STDOUT,但它什么也没打印。

这些COPY命令是否适用于嵌入式版本?

注意:这是我第一次使用与 MonetDB 相关的任何东西。作为 SQLite 的粉丝和对 Amazon Redshift 印象不深的用户,这似乎是一个不错的项目。不确定 MonetDB/e 是否与 MonetDBLite 相同 - 前者最近似乎更活跃?

0 投票
2 回答
74 浏览

python - Monetdb 加载程序功能问题 - 尚未安装嵌入式 Python 3

这是尝试通过 mclient 运行 Python 加载器函数时的错误。

键入时monetdb get all,我可以看到embedpy3已设置为,yes因为我已经完成了-- set embedded_py3=yes.

我已经在macos上通过homebrew安装了monetdb