architecture - 大数据 | 数据库和架构
问题描述
首先我想说:我检查了互联网上的类似帖子,我看到了关于堆栈溢出的类似问题,例如:
但我想打开我的问题进行仔细检查。
所以......我开始写我的[BIG PROJECT],现在我正在写所有的文件等等......
在检查“事物”时,我发现在我的 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 年后开始更改迁移数据的方式等。)
第二个问题是建筑...
这种大数据流与谷歌分析非常相似。但我已发送请求 ID 作为响应。
我一般是.NET 开发人员,将在.NET CORE 和微服务架构上开发这个项目
现在我看到.NET CORE 在 linux、ngnix等下的强大功能......
所以我的问题是:编写这个微服务的最佳实践/架构模板是什么。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 将成为你的朋友。
推荐阅读
- reactjs - 从 React js 中的服务器端位置下载 zip 文件夹中的多个文件
- javascript - setState 不会立即更新,最好的替代方法是什么?
- node.js - 为什么我在控制台中未定义?
- django - 如何检查 Django 中是否存在特定记录?
- javascript - 为什么 Vue 认为字符串操作是响应式数据属性?
- ruby - 合并多个大哈希
- flutter - Dart/Flutter 中 Intl 包的 NumberFormat 的反直觉结果
- javascript - 获取包含变量的数据
- xml - 无法打开 jmeter 5.2.1 - 无法将 org.apache.jorphan.collections.ListedHashTree 转换为 org.apache.jmeter.testelement.TestElement
- google-maps - Flutter:从列表视图中滚动排除一个对象