当前位置: 首页 > 科技观察

利用关系型数据库实现大规模物联网_0

时间:2023-03-14 11:02:45 科技观察

【.com快译】传统观点认为关系型数据库的可扩展性和健壮性不足以支持物联网的大量连接和巨大的吞吐量,以及物联网应用程序所需的各种功能。但我知道这不是真的,因为Oracle的客户多年来一直这样做。他们是如何做到的呢?首先,让我们确保我们就物联网的含义达成一致。官方定义是通过互联网连接一切,并使它们能够发送和接收数据。物联网涉及各种各样的设备,从手表、电视和电话到烤箱、冰箱和用于连接和共享数据的“智能”煤气表。在某些时候,需要收集这些数据以进行信息挖掘。从数据库的角度来看,组织需要捕获从物联网设备发送的海量数据,消化这些数据,然后根据业务需求进行数据挖掘。对于企业而言,提取并快速分析这些数据对于在当今24/7、100%正常运行时间的商业世界中保持竞争优势至关重要。这个目标可以通过许多不同的形式来实现,并且大多数都可以与优化的关系数据库和硬件一起很好地工作。SQL还是NoSQL?一个常见的误解是NoSQL数据库是支持物联网工作负载所必需的,因为所需的数据摄取率超过了传统关系数据库的能力。但事实并非如此,许多Oracle客户都证明了这一点。我们发现经过优化的关系数据库在OracleRAC集群的单个节点中摄取的数据比在某些整个NoSQL环境中摄取的数据更多。请注意,我说的是优化的关系数据库。总的来说,物联网工作负载的特点是需要大量小型、轻量级的数据转换,通常包括复杂的数据类型,例如地理空间数据和非结构化数据(视频或音频记录)。因此,例如,一家从腕带收集健身数据的公司将使用地理空间数据(记录步行路线)以及步数、心率等。尽管最近大肆宣传,但高摄取工作负载并不是一个新概念。例如,我们的一位电信客户每秒处理数百万条通话记录,每天总计高达18TB的数据。在关系数据库上运行的证券交易所每秒将记录180,000条消息,每天总计15TB的数据。那么他们是怎么做到的呢?关键是保证数据库提供实时分析的可扩展性、灵活性和速度。在筛选非结构化数据时使用优化的硬件也是成功的重要因素。构建大规模物联网的关键1:数据库的可扩展性可扩展性是指系统提供与可用硬件资源成正比的吞吐量的能力,仅受可用硬件资源的限制。扩展Oracle数据库系统有两种不同的方法:RealApplicationClusters和分片。RealApplicationClusters(RAC)使任何打包或自定义应用程序能够在连接到共享存储的服务器池上不加修改地运行。如果池中的服务器发生故障,数据库将继续在其余服务器上运行。当需要更多处理能力时,您可以简单地将另一台服务器添加到池中而不会导致任何停机。分片允许将大型数据库分成较小的数据库或分片,每个分片都可以存储在不同的硬件上。想象一家全球零售公司拥有一个大型关系数据库,其中包含所有可用商品的碎片;数据库的每个分片都包含目录的一部分。当查询请求特定窗口的小部件时,数据库服务器知道这些小部件类型存储在哪个分片上,并将直接从那里检索数据。这种模式在全球经济中的另一个好处是,可以为每个国家/地区创建一个分片,并将当地法规应用于该特定分片。例如,德国要求所有德国数据都物理存储在其境内。使用分片很容易做到这一点。目前,大多数大规模运行的数据库都提供分片,包括MongoDB、MicrosoftSQLServer和PostgreSQL。但是简单地分片数据是不够的。能够高效地跨分片运行查询也很重要,因为这将大大减少获得完整业务视图所需的时间。物联网的一个关键要求是能够快速获取大量数据。因此,无论数据在何处暂存,该存储的带宽都需要比数据库本身更好地控制负载速度。毕竟,数据的加载速度永远不会比读取速度快。如果网络读取速度不能超过每秒200兆字节,那么数据加载速度也不能超过每秒200兆字节。可扩展性的其他重要组成部分是数组插入(与单行插入相对)、并行执行和外部表的使用。构建大规模物联网的关键2:数据库灵活性灵活性是指能够快速、轻松地适应变化。物联网仍处于起步阶段,每个设备都可能有新的用例。能够轻松适应数据格式的变化至关重要。当面临这样的需求时,开发人员通常会求助于JSON。JSON极大地简化了应用程序开发,因为它允许在应用程序和数据库中使用相同的无模式表示。分区也是灵活性的关键。分区使大量数据更易于管理,提高整体性能,并且对应用程序完全透明。分区的另一个好处是能够将历史数据存储在单独的分区中,从而允许数据被压缩并移动到较低的存储层。这样,即使数据用于数据挖掘,也不会拖慢实时查询。构建大规模物联网的关键3:实时分析如果不能及时分析数据以影响业务成果,所有这些加速数据摄取和数据存储的技巧都毫无用处。归根结底,企业必须使用数据,这意味着将其取出。对于一个全球性的零售组织,目标之一可能是及时聚合所有分片上销售的产品,以确定当前全球排名前10的产品。对于一家国际电信公司,相同的数据库架构可能会以多种不同的方式提供帮助。他们的大部分查询来自客户,因此他们可以使用分片和分区技术从查询执行中消除大部分数据存储,以满足客户期望的速度。在内部,业务经理希望减少客户流失并提高盈利能力,因此他们在碎片和分区中挖掘数据,寻找模式来确定哪些客户可能会取消他们的服务,或者他们可以主动为客户提供哪些额外服务。产品(例如国际化数据计划)。例如,他们可能会提取已取消的账单并分析客户的历史账单。分析客户离开前发生了什么?有什么共同的模式吗?在他们切换到另一个供应商之前,是否有很大一部分人透支了他们的数据并连续收到三笔大额账单?一旦确定,这些模型就可以采取主动措施来保持它们的业务。例如,在客户经历两次数据过剩后,客户代表可以联系他们并提供包含更多数据的不同计划以避免客户流失。要了解有关简化数据库设计和针对IoT工作负载优化硬件的更多信息,请查看Oracle关于该主题的白皮书。原标题:Howtoachievelarge-scaleIoTwithrelationaldatabases,作者:MariaColgan