设计数据系统时常见的问题
当我们设计好模型、训练好模型,决定要部署模型的时候,摆在我们面前的问题是:如何设计一个合理的数据系统,让其合理高效的运作呢?在这篇文章中,笔者总结了几个常见的问题和解决方法,供大家参阅。
-
如何选择一个合适的数据库?
这个问题想必大家也经常遇到,请看下图,根据下图就可以根据当前公司的技术栈和项目类型选择合适的数据库了。下图将数据库分为结构化,半结构化,非结构化3中类型,并且列举了aws云端,microsoft云端,google云端和非云端4中解决方案。其中我们看到常用的解放方案: -
半结构化图数据库: Neptune,cosmos DB, Big Table,Neo4J。因为要做关于知识图谱的项目,笔者上个月还跟同事还探讨选择哪一款图数据库。
-
半结构化全文索引数据库: Open-Search, Cognitive Search, Search APIs on Datastores, Elastic search, Solr. 这种类型的数据也是在实际项目中很常用。
-
非结构化Blob数据库: S3, Blob Storage, Cloud Storage, HDFS。这种类型更不用说了,更是每天都见。
-
如何选择合适的云服务提供商构建大数据平台?
下图列入了AWS,Microsoft, Google3家云服务提供商大数据平台的架构图。其中AWS中著名的是Lamba Function,Microsoft著名的是其Power BI,Google著名的是Colab。注意,实际的使用过程中不是选择其中的一家云服务提供商,而是把几家云服务提供商的产品组合起来,形成一套特有的大数据平台。笔者所在的公司就是取3大供应商的精华和特长构建独有的大数据平台。
- 选择什么样的接口封装模型?
在构建数据系统中,如何设计模型接口,让其更好的与其他系统交互呢?常见的有4中:SOAP,REST,GraphQL以及RPC,见下图。
- 选择什么样的接口封装模型?
-
SOAP,只能传输XML,更多的是用在与ERP&CRM系统交互。
-
REST, 现在的主流方式,兼容各种数据类型,并且适用微服务。
-
GraphQL, 只能传输JSON,是一种比较新的接口,学习起来比较复杂,团队成员有人在用,感觉还不够普及。
-
RPC, 主要用在局部系统调用上,适用在高性能的系统架构中,笔者只了解皮毛。
好了,本次的分享就到先到这。 关注我,带你走进数据算法的世界。
-
微信公众号 数据算法小屋
-
CSDN https://blog.csdn.net/TommyLi_YanLi
-
知乎 https://www.zhihu.com/people/74-25-40-76-26
-
作者邮箱:rocklee_lol@hotmail.com