【发布时间】:2015-10-28 14:29:08
【问题描述】:
我有传感器数据,近似格式显示了我将其存储在 cassandra 表中的方式。
CREATE TABLE sensor_log (
sensor_id BIGINT,
created_at TIMEUUID,
SensorEventType TEXT,
PRIMARY KEY(sensor_id, created_at)
)
WITH CLUSTERING ORDER BY (created_at DESC)
大约有 10 种不同类型的事件(SensorEventType)发生。说他们的名字
(SensorEventType)SET1...SET10.
我将数据保留 90 天。
其中一些类型的事件发生得非常频繁,而有些则非常罕见。
所以发生的事情是 SET1 发生在第 1 天,而 SET9 发生在第 60 天之后。在这之间,还有许多其他 SensorEventType 记录被记录下来。因此,在这两者之间将有 1 亿个数据点。
example
SENSOR_ID Data stored Clustered by created_at.
1 SET2,SET1,SET3,SET4....100millionrandomSET....SET9,SET3,SET4....
2 SET4,SET5,SET1,SET4....100millionrandomSET....SET2,SET9,SET6....
each SET stored in sequential manner by created_at
我需要为每个传感器关联 SET1 和 SET9 数据点在逻辑中的事实,以获取一些信息。我正在考虑使用火花。 Correlation 纯粹基于 SensorEventType,是查找 SET9 和 SET1 之间持续时间的业务逻辑要求。因此,如果 SET9 发生在 SET1 之后,请记下发生之间的持续时间并将其保存在另一个表中。
现在的问题是为了关联 Spark 中的数据,我似乎需要实际加载所有数据点,所有数据点都在内存中以在 SET1 和 SET9 之间关联。这是思考解决这个设计问题的正确方法吗?
对于应该如何设计以及如何在数据点之间以百万计的火花相关性如何工作,任何人都有更好的指示。我是新来的火花,任何帮助将不胜感激。
【问题讨论】:
-
您能否提供更多关于您如何确定两个数据点相关的详细信息?你是否对两者都应用一个函数,如果结果匹配,那么它们是相关的?
-
Correlation 纯粹基于 SensorEventType,是查找 SET9 和 SET1 之间持续时间的业务逻辑要求。因此,如果 SET9 发生在 SET1 之后,请记下发生之间的持续时间并将其保存在另一个表中。
-
@Yatin - 两个事件是否必须具有相同的
sensor_id才能关联,或者您是否简单地在 SET1 之后查找第一个 SET9?无论如何,可能需要一些过滤和排序。 -
@Marmite 是的,相关性存在于同一传感器的不同事件之间。 (sensor_id) ?我正在简化上面的问题,使其更具可读性。
-
@Yatin
it seems that i need to actually load all the data points- 我可能没有完全理解,但是只加载相关的事件类型(SET1 + SET9),根据 sensor_id 和时间戳对它们进行排序并计算间隔对于 SET9 跟随 SET1 且具有相同 sensor_id 的情况?
标签: cassandra apache-spark bigdata