毫无疑问,目前大数据的索引和查询是相当具有挑战性的。大数据的特点有高速、价值、多样和大数据量!100KS每秒更新的速度和TBs的数据扫描,让你不能很好的做实时,除非你有坚实的索引!想象一下这些应用程序:
- 旅游应用程序,能让你看到所有航班和酒店的定价和记录!
- 在线游戏,能显示顶级球员的准确记分牌!
- 欺诈检测应用程序,需要看你最近的动态来决定进行信用卡交易是否合法!
这些都是使用情况的查询,需要处理高摄取数据,但不能妥协毫秒的响应时间!如果你不能提供旅游路线、记分牌,或应对实时的诈骗行为,所有的都会关闭!好吧,这听起来好像不太可能,并且你会问:“如何索引和查询这类型的实时数据呢?”
全局索引和本地索引
分布式系统提供两种类型的索引模型:
- 本地索引:在集群中,每个节点索引的数据在本地上进行。这为快速索引进行了优化。然而随着数据摄取的增加,本地索引维护与传入的工作量,以及集群变大(节点)分散收集的点击查询会受到延迟。想象一下这个查询:“找到8月份十大最活跃用户”
#SQL would look something like this
SELECT customer_name, total_logins.jan_2015
FROM customer_bucket