首先我想说: 我检查了互联网上的类似帖子,并且在堆栈溢出中看到了类似的问题,例如:
Best data store for billions of rows
How to store 7.3 billion rows of market data (optimized to be read)?
但是我想打开我的问题进行仔细检查。
所以...我开始写我的[BIG PROJECT],现在我正在写所有文档,等等...
在检查“事物”时,我发现在我的应用程序的一般使用情况之一中,我将需要处理...
[!!! ATTENTIONS !!!] 关于每天的BILLIONS个请求!
是的。每天数十亿!
我不能说这是什么要求等等,但是我可以说:
1)请求中的数据具有很好的结构 2)我将需要大量处理此数据。我的意思是对这些数据有很多查询。
今天我在MS SQL Server 2017(14.0.100)中对计算进行了快速测试:
5000万条记录= 10GB
===> 1B ==> 200GB
所以 200GB 是 DAILY 大小!
200Gb * 30 = 6TB -每月
6TB * 12 ===> 72TB - 1年大小
查询(存储过程)不是那么快。
因为我只是在“文档,技术设计”步骤中。我想花些时间,检查处理这些数据的最佳方法。
如果我看1-3-5年以后...
(不想在两年后开始更改数据的迁移方式等。)
第二个问题是建筑 ...
这种大数据流与 Google Analytics(分析) 非常相似。 但是我已经发送了请求的ID作为响应。
我通常是 .NET开发人员,并且将在 .NET CORE和微服务体系结构
上开发此项目现在我在linux,ngnix 等下的 .NET CORE中看到了强大的功能...
所以我的问题是: 什么是编写此微服务的最佳实践/架构模板。 Google Analytics(分析) 如何在天每天处理此百万和十亿个请求。
我检查了Google Analytics(分析)数据库-这是 BigTable 。
我发现的最佳选择是: HBase
如果 HBase 是我的 HERO ??
还有一个问题是:
最佳选择是什么
谢谢你们的帮助,对不起我的英语语法。
答案 0 :(得分:2)
大卫,这是一个很好的挑战。 TBH,我不会理会如此规模的数据的关系数据库,而云是必须的。
如果您是.NET开发人员,请坚持使用Azure并了解Cosmos DB,但这会很昂贵!!!另外,如果您的系统读起来很繁琐,请查看Cassandra,但您对查询数据的方式有所限制,对于复杂的查询场景,您将需要使用类似Elasticsearch的工具。我对HBase没有任何经验。
在应用程序方面,还有其他一些问题,例如最终的一致性和可用性,您可能需要查看CQRS或Actor Pattern http://getakka.net/之类的模式来创建高可用性的反应式应用程序。另外,不要忘记docker和kubernetes将成为您的朋友。