所以数据层次结构非常简单:
Account >> SubAccount >> Category >> Product
我需要为每个产品提取每日统计信息(这只是一个数字,我们称之为每日性能)。可以有数十个帐户,数十个子帐户,数百个类别以及 百万 的产品。
允许我这样做的API的格式为
GetCurrentPerformance(Product)
现在,在基于网络的信息中心中,我需要能够显示任何产品,类别,子帐户和帐户的时间与性能。如果任何产品的性能自上次提取GetCurrentPerformance(Product)
以来急剧变化(例如超过30%),我还需要能够发出警报。
我正在云上构建此解决方案,最好是在AWS上。我正在尝试决定如何最好地存储我每日提取的数据。这是我考虑过的:
这似乎是一个非常简单的问题 - 但我对最佳的进行方式感到困惑。建议表示赞赏。
答案 0 :(得分:0)
如果您只关心当前与以前的性能并且不需要任何历史性能统计信息,那么以下内容在RDBMS中可以正常工作:
create table product_performance (
product_id integer primary key,
current_perf number,
previous_perf number
);
然后,您可以通过执行以下内容来设置性能:
update product_performance
set current_perf = :new_perf,
previous_perf = current_pref
where product_id = :product;
如果你想保持自然的表现(所以你可以追踪随时间的变化),你需要这样的东西:
create table product_performance (
product_id integer,
performance_date date,
performance number,
is_current char(1), --optional, may improve the performance of finding current perf easier
primary key (product_id, performance_date)
);
每个新的效果值只是产品和日期的插入。
无论使用哪种方法,最好在设置新性能时发出警报,而不是等待重新运行仪表板获取查询。