事件时间序列的数据库建议

2024-01-05

对于我的一个项目,我必须将大量事件集合输入数据库以供以后处理,并且我正在尝试确定哪个 DBMS 最适合我的目的。

I have:

  • 目前大约有 400,000,000 个离散事件

  • 数据库中将存储约 600 GB 的数据

这些事件有多种形式,但我估计单个属性的数量约为 5,000 个。大多数事件每个仅包含大约 100 个属性的值。属性值将被视为任意字符串,在某些情况下,被视为整数。

这些事件最终将合并为一个时间序列。虽然它们确实有一些内部结构,但没有对其他事件的引用,我相信这意味着我不需要对象 DB 或某些 ORM 系统。

我的要求:

  • 开源许可证 - 我可能需要稍微调整一下。

  • 尽管一开始只使用一个系统,但能够扩展到多个服务器,从而实现可扩展性。

  • 快速查询 - 更新并不那么重要。

  • 适用于 C/C++、Java 和 Python 的成熟驱动程序/绑定。最好拥有与其他人兼容的许可证 - 我宁愿不因为技术决定而承诺任何事情。我认为大多数数据库驱动程序在这里都没有问题,但无论如何应该提到这一点。

  • 适用于 Linux。

  • 如果它也适用于 Windows,那就太好了,但不是必需的

我理想的数据库将允许我通过单个查询检索指定时间段内的所有事件。

到目前为止我发现/考虑到的:

  • PostgreSQL http://www.postgresql.org/随着页面大小的增加,每个表中显然可以有多达 6,000 列。如果我对属性计数的估计没有偏离,那么它可能会偏离。

  • MySQL http://www.mysql.com/每个表似乎有 4,000 列的限制。我could使用带有一点 SQL 功能的多个表,但我不想这样做。

  • MongoDB http://www.mongodb.org/是我目前所倾向于的。它允许我保留事件的内部结构,同时仍然能够查询它们。它的 API 看起来也相当简单。我不知道它在性能方面表现如何 - 至少在单个服务器上。

  • OpenTSDB http://www.opentsdb.net/它的度量收集框架听起来很有趣。我可以为每个属性使用单个时间序列(这可能有助于我的一些处理),将属性值作为标签,并另外标记条目以将它们与特定事件相关联。从管理员和应用程序程序员的角度来看,它可能比上面三个有更陡峭的准备曲线。不知道它的性能。

  • Use HBase http://hbase.apache.org/直接地。这可能比更符合我的要求OpenTSDB http://www.opentsdb.net/,尽管 - 从我过去使用 hadoop 的经验来看 - 管理开销可能仍然高于前三个选项。

可能还有其他数据库可以做到这一点,所以请随时告诉我 - 我将不胜感激任何可能对我有帮助的建议或评论。

PS:我作为数据库管理员的经验很少,所以对于任何误解我深表歉意。


使用具有数千列的表是疯狂的。尤其是当它们大多数如你所说为零时。

您应该首先考虑从此转换您的数据结构:

table_1
-------
event_id
attribute_1
attribute_2
[...]
attribute_5000

变成这样的东西:

table_1          event_values             attributes
--------         ------------             ----------
event_id         event_id                 attribute_id
                 attribute_id             attribute_type
                 attribute_value

它可以与任何 RDMS 一起使用(唯一的限制是数据库的总大小和性能)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

事件时间序列的数据库建议 的相关文章

  • 在 Codeigniter 中从其他数据库切换动态数据库

    mi 文件 config php 是 active group default active record TRUE db master 是唯一的数据库 db master hostname localhost db master user
  • jsp/servlet 从数组填充下拉框

    大家好 我正在尝试创建一个表单 允许您为某个主题创建一个实验室 它有一个下拉框 您可以在其中选择与该用户相关的主题 但是 当我去加载页面时 我收到此错误g apache jasper JasperException java lang Nu
  • 如何比较 Postgresql 中日期时间字段中的日期?

    在比较 postgresql Windows 中的版本 9 2 4 中的日期时 我遇到了一个奇怪的情况 我的表中有一列说update date与类型timestamp without timezone 客户可以仅使用日期搜索此字段 例如 2
  • 无法获取 ConfigBean 中实体的正确 ID - Java EE

    我正在构建一个药房管理应用程序 每个药房都需要一名管理员 约束是这样的 public class Pharmacy implements Serializable Id GeneratedValue strategy GenerationT
  • 如何将变量设置为触发器 MYSQL 内存储过程的结果?

    我这里有一个小问题 我正在为我的数据库工作创建一个触发器 但我不知道如何在触发器内使用存储过程 我想将过程的结果保存在变量中 然后使用稍后在 IF 比较器上变量 这是我的代码 DELIMITER CREATE TRIGGER insert
  • 在数据库中存储类型时的最大 MIMEType 长度

    人们在数据库中使用什么作为 MIMEType 字段的长度 到目前为止我们看到的最长的是 72 字节 application vnd openxmlformats officedocument wordprocessingml documen
  • JFreeChart - 创建移动图表时出现问题

    我在我的 java 应用程序中使用 JFreeChart Problem 我想绘制一个XY面积图 whose 域轴 x 轴 当我们开始绘制数据时应该自动水平滚动 我在中看到了同样的事情时间序列图表但我不想要任何时间系列图表 我只想要滚动的
  • 为什么 sql 字段名称中不应该包含逗号?

    人们一直告诉我列名中不应包含空格 我只是想知道 这是为什么 这是我为学校创建的一些数据库表遇到的问题 字段名称包括 Preble 和 Darke 相反 它们需要是 普雷布尔县 俄亥俄州 和 达克县 俄亥俄州 如果它们是行名称 我只需创建一个
  • 如何反转 Python statsmodels ARIMA 预测中的差异?

    我正在尝试使用 Python 和 Statsmodels 来理解 ARIMA 预测 具体来说 为了使 ARIMA 算法发挥作用 需要通过差分 或类似方法 使数据平稳 问题是 在进行残差预测后 如何反转差异以返回到包含差异化趋势和季节性的预测
  • SQLite同时读写

    我读过很多主题 但无法找到问题的答案 是否可以同时读写 我有后台线程更新一些数据 UI 需要存储在数据库中的一小部分数据 所以在UI线程中执行SELECT操作 但当更新正在进行时它会阻塞 结果 UI 冻结了几秒钟 有人在写入时成功从数据库读
  • 是否可以自动化 SQL Server 2008 分析器?

    有一个post https stackoverflow com questions 488020 what is your most useful sql trick to avoid writing more code关于有用的 SQL
  • PHP 5 的 SQLite 编译设置是什么?

    SQLite 3 7 附带了新的预写日志记录 WAL http www sqlite org wal html并且有很多设置可以被配置 http www sqlite org compile html 但是 似乎没有任何方法可以改变任何事情
  • SQL 大表中的随机行(使用 where 子句)

    我有一个网站 人们可以在其中对汽车进行投票 向用户展示 4 辆汽车 他 她可以投票选出他们最喜欢的汽车 桌子cars有重要的列 car id int 10 not auto increment so has gaps views int 7
  • 如何在我的 iOS 项目中添加和执行 .sql 文件?

    我找到了很多关于在 iOS 中使用 SQLite 数据库的教程 但没有找到任何直接引用 sql 文件的内容 谁能告诉我如何将现有的 SQL 数据库链接到我的应用程序 编辑 这是一个 MySQL 转储 我们有一个基于浏览器的抽认卡程序 现在我
  • 如何查看Pocketsphinx词典中是否存在该单词?

    我只是想看看字典文件中是否存在字符串 字典文件位于问题底部 我想检查语音识别器是否可以识别单词 例如 识别器将无法识别字符串ahdfojakdlfafiop 因为字典中没有定义 所以 我可以检查某个单词是否在 pocktsphinx 词典中
  • 在 PHP 中将十进制/双精度/浮点值与 PDO 绑定的最佳方法是什么?

    看来类常量只涵盖PDO PARAM BOOL PDO PARAM INT and PDO PARAM STR用于绑定 您只是将十进制 浮点 双精度值绑定为字符串还是有更好的方法来处理它们 MySQLi 允许使用 d 类型表示 double
  • 从数据库 MYSQL 和 Codeigniter 获取信息

    如果你们需要其他信息 上一个问题就在这里 从数据库中获取信息 https stackoverflow com questions 13336744 fetching information from the database 另一个更新 尽
  • 如何将图数据结构持久化到关系数据库中?

    我考虑过创建一个顶点表和一个边表 但是在内存中构建图和遍历子图是否需要大量查找 我想避免过多的数据库读取 还有其他方法可以保存图表吗 旁注 我听说过 Neo4j 但我的问题实际上是如何在概念上表示标准数据库中的图形 不过 我对一些 NoSQ
  • R xts 对象中从每日时间序列到每周时间序列

    我正在使用 Zoo 和 xts 包来分析财务数据 ts 包不太合适 因为金融系列有周末 没有可用数据 我读到了 xts 包中可用的 apply 函数 apply daily x FUN apply weekly x FUN apply mo
  • 如何对 SQL Server Express 进行实时更改

    我一直在使用 VS studio 开发一个 ASP NET Web 应用程序 我正在使用 SQL Server Express 在开发过程中 我一直在我的服务器上测试我的网络应用程序 每次我需要更新数据库时 我都会简单地删除旧数据库 位于我

随机推荐