在设计物联网数据库时,企业有多种选择,但技术人员必须通过评估不同的物联网数据库架构(例如静态与流式和SQL与NoSQL)来确定最合适的方案。合适的物联网数据库取决于每个物联网项目的需求。因此,选择数据库的第一步是在选择数据库架构时考虑物联网项目应用的关键特性。物联网技术人员必须确定要存储和管理的数据类型、数据流、分析、管理和安全的功能要求,以及性能和业务要求。确定组织的数据库需求后,IT管理员必须评估物联网数据库架构以及它们如何促进或抑制物联网数据需求。了解静态和流式IoT数据库架构首先,了解静态数据库和流式数据库之间的根本区别。静态数据库,也称为批处理数据库,用于管理静态数据。用户需要访问的数据作为由数据库管理系统(DBMS)管理的存储数据驻留。用户进行查询并从DBMS接收响应,DBMS通常但不总是使用SQL。流式数据库处理动态数据。数据不断地在数据库中流动,伴随着一系列连续的查询,通常使用流式数据库特定的语言。流式数据库的输出最终可以存储在其他地方,例如在云中,并通过标准查询机制进行访问。流式数据库通常是分布式的,以处理大量数据的规模和负载要求。目前,有一系列商业、专有和开源流式数据库,包括GoogleCloudDataflow、MicrosoftStreamInsight、AzureStreamAnalytics、IBMInfoSphereStreams和AmazonKinesis。开源系统主要基于Apache,包括Databricks的ApacheSparkStreaming、DataArtisans的ApacheFlink、Confluent的ApacheKafka和Twitter旗下的ApacheStorm。组织主要使用流式数据库进行实时决策并满足近乎即时的延迟要求。但是,组织仍然可以从标准查询技术和模式中受益,这就是为什么许多流式数据库还包括静态数据库组件的原因。这些统一数据库结合了流式数据库和静态数据库的优点,因为它们既支持流式数据库的实时功能,又支持静态数据库查询过程和架构的灵活性。对于大多数IoT应用程序,最好的数据库是结合了流和静态功能的统一数据库。也正是由于这个原因,大多数最流行的供应商的数据库都包括这两种类型的数据库。静态数据库与流式数据库探索更细微的数据库架构时间序列数据库在许多方面都基于与流式数据库相同的技术,但它们的开发重点略有不同。时间序列数据库更具战术性。它们通常涉及在NoSQL数据库之上植入特定的索引技术以实现高性能事件处理。流式数据库更全面,支持更广泛的数据分析组合,例如机器学习或窗口。SQL与NoSQL?SQL数据库是描述信息组织方式的关系型和功能性静态模式。这使它们易于管理。但是,它们存在有效扩展的问题。NoSQL数据库是非关系型的,没有模式,并且通常被提倡具有高度可扩展性和优于SQL数据库。一些技术专业人士可能认为NoSQL数据库是显而易见的选择,因为可扩展性对于许多IoT应用程序至关重要。但可伸缩性和性能只是技术人员在选择数据库时需要考虑的两个因素。在许多情况下,关键因素是易于集成到SQL更高效的现有系统中。许多IoT工具和系统都使用SQL。在基于旧消息传递协议或工业自动化平台的工业环境中尤其如此。创建和管理模式的能力也是一个优势。尽管技术专家可能会发现模式开发受到限制,但必须组织信息。预先开发模式可以节省以后在非模式环境中组织数据的大量工作。在SQL和NoSQL之间进行选择时,企业可能还会发现将静态数据库与流式数据库结合起来具有挑战性。理论上,静态数据库或流式数据库可以是SQL或NoSQL。事实上,数据库专门设置为其中之一。对特定统一数据库感兴趣的IoT技术人员可能会发现数据库设计推动了他们对SQL与NoSQL的决策。企业最终选择SQL还是NoSQL数据库取决于更广泛的功能和技术要求,尤其是可扩展性、性能以及集成到遗留系统的需要。
