我有各种各样的时间系列数据储存在一个或多或少地理参考格,例如一个值0.2度的纬度和经度。目前数据都存储在文本的文件,因此在一天的年度251您可能会看到:

251
 12.76 12.55 12.55 12.34 [etc., 200 more values...]
 13.02 12.95 12.70 12.40 [etc., 200 more values...]
 [etc., 250 more lines]
252
 [etc., etc.]

我想提出抽象的级别,提高业绩,并减少脆弱性(例如,目前的代码不能插入一个天之间现有的两个人!).我们搞砸了围绕与BLOB-y RDBMS攻击和甚至重复每一行的案文文件的格式表中的行(每一行的时间戳/纬度对,一个列每纬度递增--恶~!).

我们可以去一个"真正的"地理数据库,但是开销的标记每一个人的价值与纬度和长似乎令人望而却步。大小和分辨率数据没有变化,在十年,是不可能这样做。

我已经还没有理顺周围把一切都在命令的文件,但认为,我们需要让过去的文件的思维方式完全-我讨厌我所有的软件已经找出的文件名来自日期,以处理的多个文件多年来,等等。该替代方案,把所有十年(和计算)数据纳入一个单一的文件,似乎并不可行。

任何光明的想法或产品?

有帮助吗?

解决方案

我组装好的你的意见:

  1. 我想要做的所有这些"w/o写我自己的文件I/O码"
  2. 我需要从"Java红宝石MATLAB"和"FORTRAN程序"

当你加入这些了,你肯定不想要一个新的文件格式。 坚持一个你已经得到了。

如果我们可以让你放松你的第一个要求-即,如果你愿意书写自己的文件I/O码,然后还有一些有趣的选项。我会写C++类,我会使用什么样的痛饮让你的新课程提供多种语言需要。(但是我不确定你能够使用的痛饮给你访问,从爪哇、红宝石、MATLAB和FORTRAN。你可能需要别的东西。不真的知道如何做到这一点,我自己。)

你还说,"实际上,如果我必须具有文件,我喜欢文字,因为然后我就可以去中和手工编辑的时候有必要的。"

我认为,这是一个错误的声明。如果你愿意使自己的文件I/O程序然后有的是非常聪明的事情,你可以做的...并且作为一个最终的回退,你可以给自己一个工具,将从新文件的格式相同的旧文本格式是用于...另一个工具转换回来。我会回来的到这一点,在结束我的文章...

你说的东西,我要地址:

"杠杆40岁以上的数据库的优化"

数据库是关系数据,而不是光栅数据。你不会利用别人的DB 优化 这种数据。你可以塞进你的数据纳入一个数据库,但是这几乎同样的事情。

这里最有用的事情,我可以告诉你,基于一切,你已经告诉我们。 你这样说:

"我更感兴趣的优化 时间比CPU是,尽管执行速度是很好!"

这是坦率地说需要工具。停止思考它作为一个文本文件。开始思考共同的任务,并编写的小工具-在什么语言(S)--使那些琐碎事情要做。

如果你的工具变得糟糕的表现?猜猜是什么-因为你的纯文本文件是一个眉头的格式。但这只是我的意见。:)

其他提示

我肯定会改变文本的二元,但保持每天在一个单独的文件。你可以他们的名字在这样一种方式,插入之间不会造成任何陌生指数,诸如通过包括日期和时间,在文件名称。你也可以考虑的文件结构如果你有几个领域的每个地点的例子。它是共同寻找一个小瓷砖大量的步长?在这种情况下,你可能要把它们存储为瓷砖含的数据,从数天。你没有提到如何将数据访问的发挥很大的作用怎么安排它的效率。

澄清:

我很惊讶你加入"数据库",作为一个标签,并认为它作为一个选项。你为什么要这么做?

基本上,你有一个2D,单个成分浮点的图像,在每一个时间步骤。你会同意这样的观看您的数据呢?

你也提到希望插入一个天之间的两个现有的这似乎是一个非常奇怪的事情要做。为什么你会需要这样做吗?是否有一个新的一天之间可能会4和可以5是我不知道的吗?

是"压缩"的一个你关心的事情,或者是你只是生病的平面文件吗?

会飘浮或一个双人以足够的存储数据,或者你觉得你需要更多的任意的精密?

还有,什么编程语言(s)你想要访问这种数据?

你的答案如何储存数据的完全取决于你打算怎么做到的数据。例如,如果仅以往任何时候都需要检索通过指定的日期或者一个日期范围,然后存储在数据库作为一个BLOB使得一些意义的。但如果你需要找到记录有一定的价值,则需要做不同的东西。

请说明如何你需要的能够访问该数据/

马特,非常感谢,并同样长颈和jirv.

此后,部分是一个实验,检测质量的计算器的话语。如果你男生/女生/外国人的生命形式是代表性的,我出售。

和上一点上,你已经澄清我的思维相当。记住,我仍然可能不一定 实施 你的建议,但知道我会 关于它的非常严重。>;-)

我很可能离开的文件的格式相同,添加到现有的C和/或红宝石程序钉在几个低级别的特点,我欠缺(例如插入失踪步长),挂HTTP前结束对整个事情,以便数据可以使用任何盒需求,在任何一种语言,目前hoopy.虽然它主要是一成不变的旧版软件,建造这些数据,我们总是提出新的消费者,所以多语/多计算机的要求(哎呀,我忘了这个?) 适用于阅读面,而不是编写一侧。这也消除了一大堆的安全问题。

再次感谢伙计们

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top