头图

5月29日-30日在上海世博中心举办的亚马逊云科技中国峰会圆满结束。本文整理了MongoDB北亚区方案与咨询技术总监林涛在白金讲堂的演讲全文,就《MongoDB助力智能制造出海控本增效》话题与大家共同探讨。

https://www.bilibili.com/video/BV1Ff421X7hV/?aid=1205401818&c...

从全球经济竞争的角度看,中国制造业是目前竞争能力最强,也是最有活力的产业。我们的制造业企业不仅仅是布局全球,而且从我们产品出海的形态上已经逐渐呈现出了智能化、物联化、场景化的明显趋势。

对于很多制造业企业,特别是智能制造业企业来说,出海现在已经不仅是一个选择题,而是一个必答题。比如在医疗设备领域,根据业界统计,国内上市的医疗企业出海营收已接近 50% 。就像我们著名的投资者所说,在国内市场,对我们的制造业企业来说是解决吃饭的问题,但在海外市场才能解决我们吃肉的问题。

image.png

与此同时,先进的制造业企业,特别是智能制造企业,不仅仅摆脱了低端制造的印象,而且正在从以产品为中心转向以服务为中心的销售形式,甚至在MongoDB 最近接触的一些智能制造的企业里,我们看到了以产品为辅、服务为主的形式,给我们海外客户提供的不仅仅是产品,更提供行业方案的服务,而产品甚至只是服务的一个载体。不仅仅是中国制造产品的能力,企业构建服务的能力正在变得越来越关键。与此同时,为了构建这样的服务,云和基础设施的构建成本也正在变得越来越高。根据艾瑞咨询的统计,从 2022 年开始,在海外云的使用上,目前制造业在出海这个细分领域已经占到了第四,但是我们的增速实际上已经到了第二,甚至从增速的角度讲已经超过了传统的游戏或其他音视频行业的增长。

这个也并不仅仅是中国制造业企业或者是智能制造企业所面临的问题,很多行业调研报告都发现,全球的智能制造业或者说在 IoT 的应用上都面临同样的挑战。

那三个关键挑战是什么?第一个就是开发效率,因为我们出海提供服务最重要的是什么?就是能够快速的推出本地市场所需要的新服务,或者是一种新形式。同时我们要确保提供的服务不仅能够兼容我们现在既有售卖的设备,而且能够保证我们的服务能够满足未来设备的要求。

第二个就是要保证数据的安全和隐私,这个是对我们中国制造企业现在也是敏感的问题。

第三个是运营成本,这是所有制造业企业都需要面临的一个挑战,但这是一个端到端的全生命周期的成本,不仅仅是部署成本,其实还涉及到开发的成本、维护的成本,这些都需要综合的去考虑。

截屏2024-05-31 上午11.27.17.png

那么MongoDB作为数据库公司,为什么会关心或者了解这样些话题呢?主要的原因是MongoDB被全球众多制造业企业广泛使用,在汽车领域,几乎全球所有知名的汽车制造商都在使用MongoDB作为 IoT 或者智能的服务提供商。

●在智能制造领域,像思科、西门子都在使用MongoDB来构建整个物联网平台。

●在零售行业,7-11等众多零售企业也在使用MongoDB打造智能服务,如说电子标签等等。

●不仅是国外的企业,中国的智能制造企业用MongoDB的案例也非常多。

为什么众多企业都选择使用 MongoDB 来构建智能制造的应用平台,特别是选择采用部署在亚马逊云科技上的 Atlas (MongoDB托管服务)呢?主要有三个原因

第一、MongoDB 开发速度非常快

第二、MongoDB架构简单,成本可控

第三、MongoDB能够很好地保证数据隐私和合规

截屏2024-05-31 上午11.28.37.png

除了制造业,几乎所有行业都在广泛采用MongoDB,都是因为 MongoDB 易于开发。易于开发的第一个原因是 MongoDB 的数据模型采用JSON模式,这种模型非常适用于制造业的业务场景。

举例来说,如果用传统数据库的设计理念来设计一个 IoT 或者智能制造的业务场景,比如智能光源,那首先我们需要一个表来记录智能光源的位置、是什么设备、可能用在什么地方。智能光源里有很多传感器,或者有很多不同的属性,我们就再要有一个表,来保证这个智能光源设备下面有多少个控制器,以及控制器上有多少个属性。我们还要再有一个表来记录所有的控制器上到底做了什么操作,比如做了开关、做了调整,调整的是多少。我们可能还需要有一个表去记录,这些设备上又产生了多少个事件,比如说过热、正常等等。所以我们想要搞清楚一个智能制造设备上到底发生了什么,可能需要四五张表。

截屏2024-05-31 上午11.29.12.png

但在 MongoDB 数据库里,开发者可以按照企业的业务逻辑,把所有的事件包含在一条记录上,成为一个对象,这样不管是分析和处理都可以变得更快。

得益于 MongoDB 这样的特点,使MongoDB能够非常容易地支持在工业领域常用的各种数据模型:

●泛工业类用AAS模型非常多。只要企业业务对象、产品能用AAS模型表述出来,就可以直接把它变成JSON。

●在医疗行业, 医疗设备产生的数据通常用FHIR模型来表示,那么也可以直接用JSON来表示。

实际上,大家现在看到的很多 IoT 设备,产生的数据都是 JSON 的。所以用MongoDB就可以直接把它存储到数据库里,不需要做任何的转化,不需要花时间去设计这个表一定要长成什么样子、这个数据是不是要拆成三个表,都不用。你的设备产生什么数据,在 MongoDB 里直接就存什么数据就可以。

现在业界的很多数据就是 JSON 格式的。最典型的地理信息就是GEOJSON,所以这种数据可以直接存在MongoDB里,做地理位置的搜索,比如说查一查,离我最近的是谁,数据在不在地理围栏里,在MongoDB数据库上就可以直接处理了。

总之,MongoDB开发起来是特别简单的,与传统开发一个应用需要使用大量不同的数据库不同,使用MongoDB,在一个数据模型上、一个数据库上,就可以实现业界需要的大多数操作。举例来说,设备产生了数据可以直接存进MongoDB数据库里,表示出各种各样数据之间的关系、不仅可以做到ACID,而且支持事务处理、对数据任意字段的查询、地理位置搜索、全文搜索甚至向量搜索,支持现在最新的 AI 应用。

截屏2024-05-31 上午11.29.35.png

如上所介绍的都是功能上的信息,我具体给大家讲一个例子,来给大家解释一下MongoDB到底是怎么用的。例如车联网或移动设备的应用,传感器发送信息到平台,检测到事故或故障,会联系对应的车主,再找到最近的 4S 店来提供帮助,我们就以这个为例,从数据层面来看一看,可能会去涉及到哪些数据。

截屏2024-05-31 上午11.29.35.png

如上所介绍的都是功能上的信息,我具体给大家讲一个例子,来给大家解释一下MongoDB到底是怎么用的。例如车联网或移动设备的应用,传感器发送信息到平台,检测到事故或故障,会联系对应的车主,再找到最近的 4S 店来提供帮助,我们就以这个为例,从数据层面来看一看,可能会去涉及到哪些数据。

截屏2024-05-31 上午11.30.29.png

第一,传感器会把数据上报,这个时候就会产生需要处理时序的数据。

第二,肯定要根据这个时序数据,比如说车的ID,那这个车是什么车?对应车辆 ID 的车的配置信息是什么?

第三,联系车主,需要处理这个车跟车主之间的关系。

第四,需要提供呼叫支持,因此还需要 4S 店的信息,包括 4S 店的位置、以及店里有什么配件的信息等等。

这些都是需要处理的基础数据,那如果我们用传统的架构,实际上需要很多不同的数据的模组来支持。

比如说第一个处理是 IoT传感器上报的数据,我们可能需要用时序。

那我们上报拿到这个车辆ID,我们需要找到对应的这个车,这个车是个什么配置?哪一年出产的?我们可能需要有一张宽表。

还要找到这个车主是谁?可能需要关系型数据库的表。

还需要知道哪个4S店能支持?因此还需要 4S 店的信息。

4S店能不能支持这个车?它有没有出故障的这个配件的信息?都需要有关系型数据库来保存。

那同样的我们需要找到这个车的位置,以及对应哪个 4S 店离它最近?就需要一个地理位置信息的插件。

而且很多时候,比如说搜索配件的话,如果不是输全名,而只是输配件的一个关键字,那么这个时候又涉及到全文搜索。

实际上现在很多 AI 的应用,还要处理向量的信息,比如说需要把车辆的异响数据变成向量信息存储在数据库里,那这个时候还需要增加一个向量数据库来做 AI 的应用。

所以可以看到,虽然这个业务现在看起来很标准、而且似乎是出海必备的服务,但其实构建这个应用本身是非常复杂的,需要处理这么多不同的组件、需要开发人员开发这些组件、在组件之间移动数据,而且要做大量的ETL(Extract-Transform-Load)的工作,将来还需要构建、需要维护,其实这个对企业来说是很大的负担和挑战。

image.png

而如果用MongoDB,就可以把所有这些功能都用统一的接口、用一个数据库来实现。奔驰汽车在整个车联网的系统里,一共只有两套数据库,一套是 MongoDB,处理所有实时数据;而历史数据都是存放到Hadoop平台做历史数据分析,所以让整个开发和运维都变得非常简单。

谈到架构,就不可避免的谈到成本问题,那么 MongoDB 能够帮助大家做什么呢?首先要理解智能制造企业出海遇到的成本都有哪些主要挑战?

第一、数据量庞大。在游戏行业,一个游戏有100 万玩家就已经数据量很大了;但对智能制造企业来说,有100万个或200万个设备需要做管理,只是刚起步的一个状态。可能几TB是刚起步、几十TB是标配、上百TB非常常见。怎么处理IoT这么巨大的数据量?特别是考虑到制造业的毛利,成本能不能有效的压降,是个必须应对的问题。

第二、技术栈复杂。有那么多复杂的技术栈,从开发角度,得确保开发人员每个技术栈都得懂、运维的同事每个技术栈都得能维护、还要确保这些技术栈之间的数据互相的 ETL 都能够工作,也是一个很大的技能和成本挑战。

MongoDB 怎么做?IoT 数据,只要是JSON格式的,都可以直接存到 MongoDB ,并且在存储过程中,MongoDB 会自动地把存进的所有数据都转化成时序的存储方式,所以MongoDB可以自动地支持所有时序数据的处理,比如说用window 函数算 5 分钟平均最大、最小,然后帮你自动地去落盘。

image.png

更重要的是,MongoDB可以支持自动数据压缩,可以把数据大小从原始尺寸大概减少90%,这样可以大幅度地压缩数据的存储、降低成本。而且跟其他常见的时序数据库不同的是,MongoDB并不要求大家预先定义时序数据表。常见的时序数据库要先把字段先定下来,以后有新设备的时候就需要去修改和增加字段,就会导致停机,但是 MongoDB 是完全不需要。只要数据是JSON格式,直接存入MongoDB就可以了。MongoDB甚至可以做到在同一个表中允许新老设备传上来的数据是不同格式的,在 MongoDB 里都可以自动的存储,这样就可以大幅减低开发量,确保新老设备都可以做到无缝的处理。至于新设备有哪些字段、老设备有哪些字段,可以在后台的程序里去进一步处理,但是MongoDB可以把它全部都收进来,非常容易,而且能实现数据的压缩。

这只是MongoDB帮助制造企业控本的第一步,也是最基础的一步。其实在 IoT 、包括智能制造的业务场景中历史数据的问题,比如血压计或血糖仪,大家关注的可能更多的是最近身体的变化情况;对两年以前,甚至 4 个月以前的数据可能不太关心、或者只是偶尔看一看。那这种情况下你可以定一个时间,比如说是一个星期、两个星期或者两个月、甚至一年,MongoDB可以做到自动的数据归档。只要你定义出这个时间,自动的就会把保存在 MongoDB 数据库的老数据移动到S3的存储上,从而大幅的降低存储的成本。

而且移到 S3 之后,应用依然可以用MongoDB的接口访问这些历史数据的,只是它的性能会稍微降低一点,但是从成本最优的角度以及服务有效的角度上讲,这无疑是非常优化的方式,且整个过程是完全通过数据库自动来完成的,不需要人为的任何干预。开发人员要做的,只是定义多老的数据需要归档,是一周、两周还是一个月。

能不能在这个基础上再优化?答案是肯定的,因为在很多设备的场景中,有一部分数据是需要实时处理的。但有一部分数据可能只是做历史归档和统计,数据其实根本不需要进数据库了,可以直接把它放到 S3 上,因为S3是非常低成本的存储,直接把它放在S3 上,只要格式是JSON,那么 MongoDB就可以支持用 MongoDB 的接口和查询语言直接搜索S3上的数据。只要开发一套接口,这些非实时的数据就可以直接在S3上处理掉。这样可以再次压降成本。

采用MongoDB Atlas,可以对IoT场景有哪些帮助?

第一,只要设备发送的 JSON 数据,就都可以通过 MongoDB 统一的接收和存储。不管新老数据格式是不是完全一致,都可以完全的把它接收回来,在存储的时候都实现用时序数据,在实现时序数据的分析和支持的同时又大幅地压降存储。

第二,自动实现冷热数据归档,进一步降低数据的成本。同时如果是不需要做实时分析的数据,就可以直接把它放进S3里,在S3上直接帮助大家做分析。

image.png

另外,除了实现功能以外,另一个很重要的问题是实现数据合规。数据合规对制造行业、储能行业以及医疗行业都是非常重要的,这些行业的规范和区域的规范是一定要满足的。MongoDB托管平台Atlas都可以提供全面支持。

MongoDB认为,在现在的环境下仅仅是满足基础要求,是不够的,MongoDB需要在这个基础上做更多的事情来助力客户保证隐私。除了能够做到基础数据库的落盘和传输的加密以外,其实很大的一个挑战,就是比如客户的姓名、联系方式、ID、家庭住址这些敏感信息,能不能更进一步保护客户的隐私?MongoDB是可以做到的。MongoDB可以实现字段级加密,字段在落盘的时候就是加密的,在数据库这一侧就是加密的秘文,而且密钥不是放在数据库里,而是放在客户端。这也就是说,只有掌握这个密钥,在客户端才能够把这个变成明文,除此以外都是秘文。即使你能够访问数据库,数据库里也全部是秘文。而且数据库侧,数据库管理员、厂商是没有企业的密钥的,即使企业的数据库被非授权访问了,这些信息也都是秘文;包括做数据查询的时候,实际上所查询的这些字段也是用密钥加密的;查询也是秘文查秘文,这样就可以保证数据隐私,在数据库这一侧是绝对安全的。

为什么客户会需要这样的功能?其实现在还有一个监管的要求,就是遗忘权。就是即使从数据库的角度就算我把这个数据库删了,但因为我们是放在云上的,甚至我们的数据库可能就是托管的,怎么能保证你这个数据真的被删了?你是做个删除操作,但怎么能保证这个数据真的就没有了呢?会不会被从备份上恢复呢?会不会在文件系统中被恢复?其实我们都没办法保证。但是如果我们用了字段级加密,因为密钥掌握在我们自己手里,只要我们销毁了密钥,就可以确认这些敏感的数据已经全部被销毁了,因为没有人能破解你的这些秘文。

我们看到已经越来越多的厂商应用这样的技术。MongoDB的客户之一,是全球非常知名的家庭设备制造企业,保存了大量的家庭敏感信息,包括姓名、家庭住址、联系方式,客户需要保存这些信息,才能有效管理企业设备,为客户提供卓越服务。这家客户就采用了MongoDB Atlas客户端加密的方式,所有的密钥都是保存在应用侧的,数据库侧完全没有,所有的查询都是通过密钥,以秘文查秘文,确保用户信息的绝对安全。客户也可以删掉这个密钥,确保这些数据完全失效,满足在欧洲的非常严格的合规要求。

截屏2024-05-31 上午11.42.01.png

MongoDB正在帮助众多的中国智能制造企业出海,某医疗设备企业借助 MongoDB 原生的时序数据以及冷热分离方式,实现了存储成本降低67%

MongoDB 现在也在帮助众多光伏和储能的企业出海,因为MongoDB大大地简化了这些企业的技术栈,因为只需要一套数据库,MongoDB把业务发布周期短到了天,只要有业务需要,很快就可以发布出来。

👇点击了解更多MongoDB智能制造客户案例:

智能制造案例专题|与MongoDB一起解锁工业4.0转型与增长的无限潜力!

👇点击观看教程,学习如何在亚马逊云科技Marketplace上使用MongoDB Atlas:
https://www.bilibili.com/video/BV1Sb421q74P/?aid=1805036147&c...


👉点击访问 MongoDB中文官网
👉立即免费试用 MongoDB Atlas
☎️需要支持?欢迎联系我们:400-8662988
✅欢迎关注MongoDB微信订阅号(MongoDB-China),及时获取最新资讯。


MongoDB数据平台
10 声望6 粉丝

MongoDB是最流行的NoSQL数据库。作为全球领先、现代、通用的开发者数据库平台,MongoDB旨在助力开发人员及其所构建的应用充分释放软件和数据的力量。