gpt4 book ai didi

ruby - 从 key 小于特定值的哈希中获取所有值的有效方法

转载 作者:数据小太阳 更新时间:2023-10-29 08:12:23 24 4
gpt4 key购买 nike

我们每秒从 10 个来源收集数据。我正在尝试想出一种将数据存储在内存中的方法,这样我就可以获取诸如“从 12:01 到 12:02 的每个数据点”之类的数据。

我考虑过使用某种树或排序列表。键是收集的时间,值是测量值的数组。我想不出怎么说“给我这个范围内键的所有值”。我只能想到利用这些结构的排序特性来快速获取某个键的值。

我是否需要计算适当的键 (12:01:00, 12:01:01, ..., 12:01:59) 并独立提取每个值,或者有什么方法可以利用排序数据结构一次获取所有数据?

最佳答案

没有办法用 ruby​​ Hash 来做到这一点,也没有自己实现它的简单方法。您必须实现二叉树/B 树/红黑树以及用于执行范围查询的良好 API。

我的建议是使用内存中的 sqlite 数据库。然后就可以用熟悉的sql语法查询了。 Sqlite 是一个非常出色的项目,我想它会非常节省空间和时间。

require 'sqlite3'
@db = SQLite3::Database.new ":memory:"
@db.execute <<-SQL
create table records(
id integer primary key autoincrement,
timestamp integer,
data text
);
SQL
@db.execute <<-SQL
select * from records where ...
SQL

在此处阅读有关 sqlite 数据类型的信息:http://www.sqlite.org/datatype3.html

关于ruby - 从 key 小于特定值的哈希中获取所有值的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22360777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com