大约十年前,SQL是关系数据库管理系统(RDBMS)中编程、存储和管理数据的无可争议的标准。RDBMS本质上以行和列的结构化格式将数据存储在表中。它们存储的值甚至表本身都可以相互关联。MySQL、MicrosoftSQLServer和PostgreSQL等各种实现被广泛使用。然而,随着新数据用例的出现,SQL在过去几年中发现自己面临挑战。云计算和物联网(IoT)的发展使得从智能设备和传感器收集大量不同数量的非结构化数据成为可能。如此海量的数据使得在SQL数据库中存储信息变得非常困难,这导致了NoSQL数据库的使用。由于NoSQL数据库没有建立关系模式,用户不必担心将非结构化数据强行放入预定义的表中。由于这种灵活性,NoSQL得到了广泛的宣传。因此,开发人员现在面临着为他们的物联网相关项目在SQL和NoSQL之间进行选择的困境。然而,对于一些人来说,这可能不是一个直接的选择。许多企业系统和应用程序都对SQL数据库进行了大量投资。他们的大多数开发人员也更熟悉SQL。SQLCheatSheets中还有大量免费资源,因此即使是非开发人员也可以执行查询、理解每个SQL符号背后的含义以及从数据库中提取信息,而无需深入的编程知识。由于SQL的根深蒂固,许多组织还希望将其物联网采用与现有的基于SQL的系统和基础设施保持一致。最大的问题是这是否可能,如果可能,是否值得付出努力?IoT的兴起随着越来越多的设备被用于各种业务流程,企业对IoT的采用率正在上升。到2020年,Gartner和企业级物联网端点将达到80亿。制造设施和工厂现在正在集成更多联网的机器人和传感器,允许远程访问工业控制系统。仓库正在使用跟踪器来监控产品的移动。办公室还采用物联网设备,如智能恒温器、安全摄像头和电器,以帮助降低成本和自动化日常流程。为了最大限度地采用物联网,他们不仅应该能够将物联网设备集成到基础设施中,还应该能够将其集成到企业应用程序中。这也意味着确保数据可以安全无缝地传递。物联网设备可以生成大量数据,为他们的大数据和分析工作提供动力。从分析中获得的见解最终可以成为竞争优势。大公司已经证明这是可能的。例如,UPS使用车队跟踪数据来创建最佳路线,使其交付更加高效和有效。为什么NoSQL得到提升有趣的是,NoSQL已经存在了很长时间,但直到最近才得到开发人员的大力支持。将NoSQL与IoT数据一起使用的一个有力论据是用户可以从设备存储数据的速度和便利性。NoSQL使用键/值存储,或者对于一些更高级的NoSQL数据库,对象。使用NoSQL,只需附加新信息即可。这使得NoSQL数据库能够接受各种新信息。对于那些只想收集物联网数据流并将其记录到数据库中的人来说,NoSQL似乎是一个不错的选择。这与SQL的结构化格式相反。通常,那些使用SQL数据库的人会发现很难确定在何处分配某些值,尤其是当这些值不适合现有模式时。随着收集新信息的新设备被集成到基础设施中,这些问题必然会变得普遍。SQL的案例由于这些考虑,许多新的努力只是模糊了SQL作为他们物联网工作的选择。有时,这种选择甚至会导致组织内部的摩擦。虽然开发人员可能希望利用NoSQL的灵活性,但使用它可能需要新的投资。如果公司对SQL基础设施有现有的重大承诺,那么获取新的基础设施组件,即使它们只是云实例,也很难证明是合理的。因此,技术人员面临的挑战是创建一个生态系统,使公司能够享受物联网的好处,同时最大限度地利用SQL资源和功能。可以在IoT中使用SQL。可以使用数据聚合器或节点从端点接收信息,这些端点可以在将数据传递到SQL数据库服务器之前对其进行预处理。另一种方法是在端点软件中嵌入SQL,以便在传输到SQL服务器之前准备和处理数据。原始数据仍然可以存储在这些节点或备份上,但应用程序将使用SQL准备的数据。在商业智能和分析方面,使用结构化SQL数据并理解它仍然更加容易。开发人员(甚至非开发人员)现有的专业知识和对SQL的熟悉程度也意味着他们可以轻松地从物联网设备生成的数据中获益。结论归根结底,这一切都归结为环境问题。从头开始的较小的工作和项目可能会发现从NoSQL开始可以给他们带来很大的灵活性和敏捷性。已经在SQL中建立使用和投资的组织可以找到继续使用该技术进行物联网工作的方法。但很明显,在这个由IoT驱动的全新世界中,SQL仍然具有相关性并具有巨大的潜在价值。
