大数据 |数据库与架构
BIG DATA | Database and Architecture
首先我想说的是:
我检查了互联网上的类似帖子,我在堆栈溢出上看到了类似的问题,如:
-
Best data store for billions of rows
How to store 7.3 billion rows of market data (optimized to be read)?
但我想打开我的问题进行仔细检查。
所以...我开始编写我的[大项目],现在我正在编写所有文档等...
在检查 "things" 时,我发现在我的应用程序的一般用例 1 中,我需要处理...
[!!!注意!!!] 每天大约十亿个请求!
是的。每天数十亿!
我不能说这是什么请求等等,但我可以说:
1) 请求中的数据结构非常好
2)我需要大量处理这些数据。我的意思是对这些数据的许多查询。
今天我在 MS SQL Server 2017 (14.0.100):
中做了快速计算测试
这条记录的50M = 10GB
===> 1B ==> 200GB
所以 200GB 是 每天 大小!!!
200Gb * 30 = 6TB - 每月
6TB * 12 ===> 72TB - 1 年大小
查询(存储过程)并没有那么快。
因为我只在文档、技术设计这一步..我想花时间检查处理这些数据的最佳方法。
如果我展望未来 1-3-5 年...
(不想在 2 年后开始更改迁移数据的方式等。)
第二题是架构...
此大数据流与 Google 分析 非常相似。
但我已发送请求 ID 作为响应。
我通常在 .NET 开发人员 并将在 .NET CORE 和微服务架构
上开发这个项目
现在我看到 .NET CORE 在 linux、ngnix 等中的强大功能...
所以我的问题是:
什么是最佳实践/架构模板来编写这个微服务。
Google analytics 如何处理这个 百万 和 十亿 每 天请求数.
我检查了 Google 分析的数据库 - 这是 BigTable。
我找到的最佳选择是:HBase
如果HBase是我的HERO??
还有 1 个问题是:
什么是最好的选择:
- 使用云数据库解决方案(如 AWS EMR/Dynamo/etc..)
- 启动 EC2 实例并运行在此实例上拥有数据库
谢谢大家的帮助,对不起我的英语语法。
大卫,这是一个很好的挑战。 TBH,我不会为那种规模的数据使用关系数据库而烦恼,云是必须的。
如果您是 .NET 开发人员,请坚持使用 Azure 并查看 Cosmos DB,但它会很贵!!!或者,如果您的系统读取量大,请查看 Cassandra,但您查询数据的方式有限,您将需要使用类似 Elasticsearch 的东西来处理复杂的查询场景。我对 HBase 没有任何经验。
在应用程序方面还有其他问题,例如最终一致性和可用性,您可能需要查看 CQRS 或像 Actor Pattern http://getakka.net/ 这样的模式来创建高度可用的反应式应用程序。也不要忘记 docker,kubernetes 将成为你的朋友。
首先我想说的是: 我检查了互联网上的类似帖子,我在堆栈溢出上看到了类似的问题,如:
-
Best data store for billions of rows
How to store 7.3 billion rows of market data (optimized to be read)?
但我想打开我的问题进行仔细检查。
所以...我开始编写我的[大项目],现在我正在编写所有文档等...
在检查 "things" 时,我发现在我的应用程序的一般用例 1 中,我需要处理...
[!!!注意!!!] 每天大约十亿个请求!
是的。每天数十亿!
我不能说这是什么请求等等,但我可以说:
1) 请求中的数据结构非常好 2)我需要大量处理这些数据。我的意思是对这些数据的许多查询。
今天我在 MS SQL Server 2017 (14.0.100):
中做了快速计算测试这条记录的50M = 10GB
===> 1B ==> 200GB
所以 200GB 是 每天 大小!!!
200Gb * 30 = 6TB - 每月
6TB * 12 ===> 72TB - 1 年大小
查询(存储过程)并没有那么快。
因为我只在文档、技术设计这一步..我想花时间检查处理这些数据的最佳方法。
如果我展望未来 1-3-5 年...
(不想在 2 年后开始更改迁移数据的方式等。)
第二题是架构...
此大数据流与 Google 分析 非常相似。 但我已发送请求 ID 作为响应。
我通常在 .NET 开发人员 并将在 .NET CORE 和微服务架构
上开发这个项目现在我看到 .NET CORE 在 linux、ngnix 等中的强大功能...
所以我的问题是: 什么是最佳实践/架构模板来编写这个微服务。 Google analytics 如何处理这个 百万 和 十亿 每 天请求数.
我检查了 Google 分析的数据库 - 这是 BigTable。
我找到的最佳选择是:HBase
如果HBase是我的HERO??
还有 1 个问题是:
什么是最好的选择:
- 使用云数据库解决方案(如 AWS EMR/Dynamo/etc..)
- 启动 EC2 实例并运行在此实例上拥有数据库
谢谢大家的帮助,对不起我的英语语法。
大卫,这是一个很好的挑战。 TBH,我不会为那种规模的数据使用关系数据库而烦恼,云是必须的。
如果您是 .NET 开发人员,请坚持使用 Azure 并查看 Cosmos DB,但它会很贵!!!或者,如果您的系统读取量大,请查看 Cassandra,但您查询数据的方式有限,您将需要使用类似 Elasticsearch 的东西来处理复杂的查询场景。我对 HBase 没有任何经验。
在应用程序方面还有其他问题,例如最终一致性和可用性,您可能需要查看 CQRS 或像 Actor Pattern http://getakka.net/ 这样的模式来创建高度可用的反应式应用程序。也不要忘记 docker,kubernetes 将成为你的朋友。