Kir*_*met 5 javascript algorithm charts bigdata
我正在设计一个我想要很棒的JavaScript图表,我需要你的帮助.
假设我有500万条记录,其价格数据如下:
open high low close volume timeStart timeEnd timeDuration
10 20 5 15 500 1391895920860 1391895920920 60
Run Code Online (Sandbox Code Playgroud)
所以,我有500万条记录描述了一分钟分辨率的东西价格.
现在,我需要向用户显示一个代表所有这500万条记录的图表.默认情况下,图表将以一周的间隔显示2年的数据.一周间隔两年的数据仅为104条记录.因此,为了生成我的104周记录,我需要处理所有500万分钟记录,并将它们分组为数周.
假设用户放大并希望看到每三天分组的数据而不是一周的间隔.我将需要生成三天记录,这些记录将我的一分钟分辨率数据中的数据分组.
事实上,对于我将允许用户放大的每个间隔,我需要提前总结我的分钟分辨率数据.为了节省数据库的负担,我将生成客户端可以快速下拉的CSV"磁贴".每个磁贴将包含1,000条记录.
以下是我将支持的分辨率("缩放级别")以及在一分钟分辨率下提前生成两年价格数据所需的切片数量:
1 minute - 1440 tiles (estimated to be about 40 MB of data)
3 minute - 480 tiles
5 minute - 288 tiles
15 minute - 96 tiles
30 minute - 48 tiles
1 hour - 24 tiles
2 hours - 12 tiles
4 hours - 6 tiles
6 hours - 4 tiles
12 hours - 2 tiles
1 day - 1 tile
3 days - 1 tile
1 week - 1 tile
1 month - 1 tile
1 year - 1 tile
Run Code Online (Sandbox Code Playgroud)
这里的想法是,当用户第一次点击图表时,我需要做的就是拉下一周的图块,它将包含我的所有104条记录.当他们放大一周瓷砖的一部分时,我将拉下3天的瓷砖.
所以这是我需要帮助的地方.如果用户从1天缩放级别放大12小时图块,我需要智能地知道我应该抓住哪个12小时图块.我想我的瓷砖需要有一个命名方案,允许客户轻松识别任何父瓷砖的子瓷砖.
任何人都可以帮我找到这些瓷砖的命名方案吗?我特别需要:
很想听听您的想法和反馈!
我会对数据进行分层建模。每个分辨率一层。每层在主格和功能上都是独立的。为了系统稳定性,每一层都使用相同的名称约定。
如果您要使用 JavaScript,我会使用 JavaScript 日期约定(如果适用)。
http://www.ecma-international.org/ecma-262/5.1/#sec-15.9
对于非标准“分辨率”(例如 6 小时划分),应用简单的模型更容易理解:普通划分
示例日期:2014 年 2 月 11 日 08:14 22'。
方案A
仅划分 1 个较大的元素。例如,在 6 小时分辨率中,仅划分 1 天。其余的日子是“补充”或上下文。
第 1 层:
Layer1/2014.csv
Run Code Online (Sandbox Code Playgroud)
第 7 层:
Layer7/2014/41/1.csv
Run Code Online (Sandbox Code Playgroud)
*41 是一年中的第几天。
方案B
按时间戳范围分割。
第 7 层:
Layer7/1414908000-1414929600.csv
Run Code Online (Sandbox Code Playgroud)