大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
2. 什么是NoSQL?
创新互联公司是一家专注于成都网站制作、做网站与策划设计,德保网站建设哪家好?创新互联公司做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:德保等地区。德保做网站价格咨询:028-86922220
2.1 NoSQL 概述
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,
泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储。
(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。
2.2 NoSQL代表
MongDB、 Redis、Memcache
3. 关系型数据库与NoSQL的区别?
3.1 RDBMS
高度组织化结构化数据
结构化查询语言(SQL)
数据和关系都存储在单独的表中。
数据操纵语言,数据定义语言
严格的一致性
基础事务
ACID
关系型数据库遵循ACID规则
事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性:
A (Atomicity) 原子性
原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。比如银行转账,从A账户转100元至B账户,分为两个步骤:1)从A账户取100元;2)存入100元至B账户。这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败,钱会莫名其妙少了100元。
C (Consistency) 一致性
一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。
I (Isolation) 独立性
所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。比如现有有个交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的
D (Durability) 持久性
持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。
3.2 NoSQL
代表着不仅仅是SQL
没有声明性查询语言
没有预定义的模式
键 - 值对存储,列存储,文档存储,图形数据库
最终一致性,而非ACID属性
非结构化和不可预知的数据
CAP定理
高性能,高可用性和可伸缩性
分布式数据库中的CAP原理(了解)
CAP定理:
Consistency(一致性), 数据一致更新,所有数据变动都是同步的
Availability(可用性), 好的响应性能
Partition tolerance(分区容错性) 可靠性
P: 系统中任意信息的丢失或失败不会影响系统的继续运作。
定理:任何分布式系统只可同时满足二点,没法三者兼顾。
CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,
因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:
CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
CP - 满足一致性,分区容忍性的系统,通常性能不是特别高。
AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。
CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。
而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的。
所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这三点。
说明:C:强一致性 A:高可用性 P:分布式容忍性
举例:
CA:传统Oracle数据库
AP:大多数网站架构的选择
CP:Redis、Mongodb
注意:分布式架构的时候必须做出取舍。
一致性和可用性之间取一个平衡。多余大多数web应用,其实并不需要强一致性。
因此牺牲C换取P,这是目前分布式数据库产品的方向。
4. 当下NoSQL的经典应用
当下的应用是 SQL 与 NoSQL 一起使用的。
代表项目:阿里巴巴商品信息的存放。
去 IOE 化。
ps:I 是指 IBM 的小型机,很贵的,好像好几万一台;O 是指 Oracle 数据库,也很贵的,好几万呢;M 是指 EMC 的存储设备,也很贵的。
难点:
数据类型多样性。
数据源多样性和变化重构。
数据源改造而服务平台不需要大面积重构。
本质是因为:随着互联网的进一步发展与各行业信息化建设进程加快、参与者的增多,人们对软件有了更多更新的要求,需要软件不仅能实现功能,而且要求保证许多人可以共同参与使用,因而软件所需承载的数据量和吞吐量必须达到相应的需求。而目前的关系型数据库在某些方面有一些缺点,导致不能满足需要。
具体则需要对比关系型数据库与Nosql之间的区别可以得出
关系型数据库
关系型数据库把所有的数据都通过行和列的二元表现形式表示出来。
关系型数据库的优势:
1. 保持数据的一致性(事务处理)
2.由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处)
3. 可以进行Join等复杂查询
其中能够保持数据的一致性是关系型数据库的最大优势。
关系型数据库的不足:
不擅长的处理
1. 大量数据的写入处理(这点尤为重要)
2. 为有数据更新的表做索引或表结构(schema)变更
3. 字段不固定时应用
4. 对简单查询需要快速返回结果的处理
--大量数据的写入处理
读写集中在一个数据库上让数据库不堪重负,大部分网站已使用主从复制技术实现读写分离,以提高读写性能和读库的可扩展性。
所以在进行大量数据操作时,会使用数据库主从模式。数据的写入由主数据库负责,数据的读入由从数据库负责,可以比较简单地通过增加从数据库来实现规模化,但是数据的写入却完全没有简单的方法来解决规模化问题。
第一,要想将数据的写入规模化,可以考虑把主数据库从一台增加到两台,作为互相关联复制的二元主数据库使用,确实这样可以把每台主数据库的负荷减少一半,但是更新处理会发生冲突,可能会造成数据的不一致,为了避免这样的问题,需要把对每个表的请求分别分配给合适的主数据库来处理。
第二,可以考虑把数据库分割开来,分别放在不同的数据库服务器上,比如将不同的表放在不同的数据库服务器上,数据库分割可以减少每台数据库服务器上的数据量,以便减少硬盘IO的输入、输出处理,实现内存上的高速处理。但是由于分别存储字不同服务器上的表之间无法进行Join处理,数据库分割的时候就需要预先考虑这些问题,数据库分割之后,如果一定要进行Join处理,就必须要在程序中进行关联,这是非常困难的。
--为有数据更新的表做索引或表结构变更
在使用关系型数据库时,为了加快查询速度需要创建索引,为了增加必要的字段就一定要改变表结构,为了进行这些处理,需要对表进行共享锁定,这期间数据变更、更新、插入、删除等都是无法进行的。如果需要进行一些耗时操作,例如为数据量比较大的表创建索引或是变更其表结构,就需要特别注意,长时间内数据可能无法进行更新。
--字段不固定时的应用
如果字段不固定,利用关系型数据库也是比较困难的,有人会说,需要的时候加个字段就可以了,这样的方法也不是不可以,但在实际运用中每次都进行反复的表结构变更是非常痛苦的。你也可以预先设定大量的预备字段,但这样的话,时间一长很容易弄不清除字段和数据的对应状态,即哪个字段保存有哪些数据。
--对简单查询需要快速返回结果的处理 (这里的“简单”指的是没有复杂的查询条件)
这一点称不上是缺点,但不管怎样,关系型数据库并不擅长对简单的查询快速返回结果,因为关系型数据库是使用专门的sql语言进行数据读取的,它需要对sql与越南进行解析,同时还有对表的锁定和解锁等这样的额外开销,这里并不是说关系型数据库的速度太慢,而只是想告诉大家若希望对简单查询进行高速处理,则没有必要非使用关系型数据库不可。
NoSQL数据库
关系型数据库应用广泛,能进行事务处理和表连接等复杂查询。相对地,NoSQL数据库只应用在特定领域,基本上不进行复杂的处理,但它恰恰弥补了之前所列举的关系型数据库的不足之处。
优点:
易于数据的分散
各个数据之间存在关联是关系型数据库得名的主要原因,为了进行join处理,关系型数据库不得不把数据存储在同一个服务器内,这不利于数据的分散,这也是关系型数据库并不擅长大数据量的写入处理的原因。相反NoSQL数据库原本就不支持Join处理,各个数据都是独立设计的,很容易把数据分散在多个服务器上,故减少了每个服务器上的数据量,即使要处理大量数据的写入,也变得更加容易,数据的读入操作当然也同样容易。
典型的NoSQL数据库
临时性键值存储(memcached、Redis)、永久性键值存储(ROMA、Redis)、面向文档的数据库(MongoDB、CouchDB)、面向列的数据库(Cassandra、HBase)
一、 键值存储
它的数据是以键值的形式存储的,虽然它的速度非常快,但基本上只能通过键的完全一致查询获取数据,根据数据的保存方式可以分为临时性、永久性和两者兼具 三种。
(1)临时性
所谓临时性就是数据有可能丢失,memcached把所有数据都保存在内存中,这样保存和读取的速度非常快,但是当memcached停止时,数据就不存在了。由于数据保存在内存中,所以无法操作超出内存容量的数据,旧数据会丢失。总结来说:
。在内存中保存数据
。可以进行非常快速的保存和读取处理
。数据有可能丢失
(2)永久性
所谓永久性就是数据不会丢失,这里的键值存储是把数据保存在硬盘上,与临时性比起来,由于必然要发生对硬盘的IO操作,所以性能上还是有差距的,但数据不会丢失是它最大的优势。总结来说:
。在硬盘上保存数据
。可以进行非常快速的保存和读取处理(但无法与memcached相比)
。数据不会丢失
(3) 两者兼备
Redis属于这种类型。Redis有些特殊,临时性和永久性兼具。Redis首先把数据保存在内存中,在满足特定条件(默认是 15分钟一次以上,5分钟内10个以上,1分钟内10000个以上的键发生变更)的时候将数据写入到硬盘中,这样既确保了内存中数据的处理速度,又可以通过写入硬盘来保证数据的永久性,这种类型的数据库特别适合处理数组类型的数据。总结来说:
。同时在内存和硬盘上保存数据
。可以进行非常快速的保存和读取处理
。保存在硬盘上的数据不会消失(可以恢复)
。适合于处理数组类型的数据
二、面向文档的数据库
MongoDB、CouchDB属于这种类型,它们属于NoSQL数据库,但与键值存储相异。
(1)不定义表结构
即使不定义表结构,也可以像定义了表结构一样使用,还省去了变更表结构的麻烦。
(2)可以使用复杂的查询条件
跟键值存储不同的是,面向文档的数据库可以通过复杂的查询条件来获取数据,虽然不具备事务处理和Join这些关系型数据库所具有的处理能力,但初次以外的其他处理基本上都能实现。
三、 面向列的数据库
Cassandra、HBae、HyperTable属于这种类型,由于近年来数据量出现爆发性增长,这种类型的NoSQL数据库尤其引入注目。
普通的关系型数据库都是以行为单位来存储数据的,擅长以行为单位的读入处理,比如特定条件数据的获取。因此,关系型数据库也被成为面向行的数据库。相反,面向列的数据库是以列为单位来存储数据的,擅长以列为单位读入数据。
面向列的数据库具有搞扩展性,即使数据增加也不会降低相应的处理速度(特别是写入速度),所以它主要应用于需要处理大量数据的情况。另外,把它作为批处理程序的存储器来对大量数据进行更新也是非常有用的。但由于面向列的数据库跟现行数据库存储的思维方式有很大不同,故应用起来十分困难。
总结:关系型数据库与NoSQL数据库并非对立而是互补的关系,即通常情况下使用关系型数据库,在适合使用NoSQL的时候使用NoSQL数据库,让NoSQL数据库对关系型数据库的不足进行弥补。
执行大数据[注]项目的企业面对的关键决策之一是使用哪个数据库,SQL还是NoSQL?SQL有着骄人的业绩,庞大的安装基础;而NoSQL正在获得可观的收益,且有很多支持者。我们来看看两位专家对这个问题的看法。
专家
·VoltDB公司首席技术官Ryan Betts表示,SQL已经赢得了大型企业的广泛部署,大数据是它可以支持的另一个领域。
·Couchbase公司首席执行官Bob Wiederhold表示,NoSQL是可行的选择,并且从很多方面来看,它是大数据的最佳选择,特别是涉及到可扩展性时。
SQL经历时间的考验,并仍然在蓬勃发展
VoltDB公司首席技术官Ryan Betts
结构化查询语言(SQL)是经过时间考验的胜利者,它已经主宰了几十年,目前大数据公司和组织(例如谷歌、Facebook、Cloudera和Apache)正在积极投资于SQL。
在成为主导技术(例如SQL)后,有时候我们很容易忘记其优越性。SQL的独特优势包括:
1. SQL能够加强与数据的交互,并允许对单个数据库设计提出问题。这是很关键的特征,因为无法交互的数据基本上是没用的,并且,增强的交互性能够带来新的见解、新的问题和更有意义的未来交互。
2. SQL是标准化的,使用户能够跨系统运用他们的知识,并对第三方附件和工具提供支持。
3. SQL能够扩展,并且是多功能和经过时间验证的,这能够解决从快写为主导的传输到扫描密集型深入分析等问题。
4. SQL对数据呈现和存储采用正交形式,一些SQL系统支持JSON和其他结构化对象格式,比NoSQL具有更好的性能和更多功能。
虽然NoSQL的出现带来了一些影响,但SQL仍然主导着市场,并在大数据领域赢得了很多投资和广泛部署。
NoSQL的说法很含糊,对于本次讨论,我借用Rick Cattell对NoSQL的定义,即提供简单操作(例如密钥/数值存储)或简单记录和索引,并专注于这些简单操作的横向可扩展性的系统。
很显然,现在很多新的数据库并不是都一样,认识每种数据库背后的原理以及潜在问题是成功的关键。NoSQL的主要特点使其更适合于特定的问题。例如,图形数据库更适合于数据通过关系组织的情况,而专门的文本搜索系统更适合于需要实时搜索的情况。
在这里,让我们看看SQL系统的主要优势和差异化功能:
* SQL可实现交互性。 SQL是一种声明性查询语言。用户说出他们想要什么(例如,显示过去五年三月份期间顶级客户的地理位置),数据库内部就会构件算法并提取请求的结果。相比之下,NoSQL编程创新MapReduce是一种程序性查询技术。在用户提出请求时,MapReduce要求用户不仅说出自己想要什么,而且要求他们陈述如何产生答案。
这听起来像一个无趣的技术差异,但这很关键,原因在于:首先,声明性SQL查询更容易通过图形化工具以及点击报告构建器来构建。这让分析师、操作员、管理者和其他不具备软件编程能力的员工进行数据库查询;其次,数据库引擎可以利用内部信息来选择最有效的算法。改变数据库的物理布局或数据库,最佳算法仍然能够计算出来。而在程序性系统中,编程人员需要重新访问和重新编程算法,这是非常昂贵且容易出错的过程。
市场理解这个关键区别。在2010年,谷歌宣布部署SQL来补充MapReduce,主要受内部用户需求所驱动。最近,Facebook发布了Presto(一种SQL部署)来查询其PB级HDFS集群。根据Facebook表示:“随着我们的仓库增长到PB级,以及我们的需求变化,我们清楚地意识到,我们需要一个提供低延时查询的互动系统。”此外,Cloudera也正在构建Impala—另一个基于HDFS的SQL部署。
* SQL是标准化的。 虽然供应商有时候会添加自己的语言到SQL界面,但SQL的核心是标准化的,还有其他规格(例如ODBC和JDBC)提供广泛可用的稳定界面到SQL存储。这带来了一个管理和操作工具生态系统,可以在SQL系统之上设计、监控、检查、探索和构建应用程序。
SQL用户和程序员可用跨多个后端系统重复使用其API和UI知识,减少了应用程序的开发时间。标准化还允许声明性第三方提取、转换、加载(ETL)工具,使企业可以在数据库之间以及跨系统传输数据。
* SQL可扩展。 认为SQL必须牺牲以获得可扩展性的看法,完全是错误的。如前所述,Facebook创建了一个SQL界面来查询PB级数据。SQL能够非常有效地运行极快的ACID传输。SQL对数据存储和索引提供的抽象[注]化允许跨各种问题和数据集大小的一致使用,让SQL可以跨集群复制数据存储有效地运行。使用SQL作为界面独立于构建云、规模或HA系统,SQL中并没有什么在阻止和限制容错、高可用性和复制。事实上,所有现代SQL系统支持云友好型横向可扩展性、复制和容错性。
* SQL支持JSON。 几年前,很多SQL系统增加了XML文档支持。现在,随着JSON成为一种流行的数据交换格式,SQL供应商也纷纷加入了JSON型的支持。基于现在灵活的编程过程和web基础设施的正常运行时间要求,我们很需要结构化数据类型的支持。Oracle 12c、PostgreSQL 9.2、VoltDB和其他支持JSON的数据库,通常具有优于“原生”JSON的性能。
SQL将继续赢得市场份额,并会继续看到新的投资和部署。NoSQL数据库提供专有查询语言或简单的键值语义,而没有更深层次的技术差异化。现代SQL系统提供可扩展性的同时,还支持更丰富的查询语义,并有庞大的用户安装基础,广泛的生态系统整合和深度企业部署。
NoSQL更适合大数据应用程序
Couchbase公司首席执行官Bob Wiederhold
NoSQL越来越多地被认为是关系型数据库的可行替代品,特别是对于大数据应用程序。此外,无模式数据模型通常更适合于现在捕捉和处理的数据种类和类型。
当我们谈论NoSQL领域的大数据时,我们指的是从操作数据库读取和写入。不要将操作数据库与分析数据库混淆,这通常会查看大量数据,并从这些数据获取可视性。
虽然操作数据库的大数据看起来不具有可分析性,但操作数据库通常会存储超大量用户的大型数据集,这些用户经常需要访问数据来实时执行交易。这种数据库的操作规模也解释了NoSQL的关键特性,也就是为什么NoSQL是大数据应用程序的关键的原因。
NoSQL是可扩展性的关键
每次技术行业经历硬件发展的根本性转变时,都会出现一个拐点。在数据库领域,从纵向扩展到横向扩展的转变推动了NoSQL的发展。关系型数据库(包括来自甲骨文和IBM的数据库)是纵向扩展。也就是说,它们是集中式、共享一切的技术,只能通过增加更多昂贵的硬件来扩展。
而NoSQL数据库是分布式横向扩展技术。它们使用了分布式节点集(称为集群)来提供高度弹性扩展功能,让用户可以添加节点来动态处理负载。
分布式横向扩展的做法通常要比纵向做法更加便宜。商业关系型数据库的授权费用也让人望而却步,因为他们的价格是按每台服务器来计算。另一方面,NoSQL数据库通常是开源技术,按照运行的服务器集群收费,而且价格相对便宜。
NoSQL是灵活性的关键
关系型数据库和NoSQL数据模型有很大的不同。关系型模式获取数据,并将数据分配到很多相互关联的表中,这些表通过外键相互应用。
当用户需要对数据集运行查询时,所需信息需要从多个表中收集(通常涉及数百个企业应用程序),并结合这些信息,再提供给应用程序。同样地,当写入数据时,需要在多个表协调和执行写入。当数据相对较少,并且,数据以较慢速度流入数据库时,关系型数据库通常能够捕捉和存储信息。然而,现在的应用程序通常需要快速写入(和读取)海量数据。
NoSQL数据库采用非常不同的模式。在其核心,NoSQL数据库其实是“NoREL”,或者说非关系型,这意味着它们没有依赖于表以及表之间的联系,以存储和组织信息。例如,以文档为导向的NoSQL数据库获取你想要存储的数据,并采用JSON格式整合到文档中。每个JSON文档可以被你的应用程序视为一个对象。JSON文档可能会提取跨越25个表的数据,将数据集成到一个文档中。
聚合这些信息可能会导致信息重复,但由于存储已不再是一个成本问题,数据模型灵活性、发布所产生文档的简便性以及读取和写入性能提高,让这成为不错的选择。
NoSQL是大数据应用程序的关键
通过第三方(包括社交媒体网站),数据正变得越来越容易捕捉和访问。这些数据包括:个人用户信息、地理位置数据、用户生产的内容、机器记录数据和传感器产生的数据。企业还可以依赖于大数据来推动其关键任务型应用程序。同时,企业正在转向到NoSQL数据库,因为这种数据库非常适合现在新型的数据类型。
开发人员想要一个灵活的数据库,可以很容易适应新的数据类型,并且,不会受第三方数据供应商的内容结构变化的影响。大多数新数据是非结构化和半结构化,因此,开发人员也需要能够有效存储这些数据的数据库。然而,关系型数据库采用的严格定义的基于模式的做法让其不可能快速整合新数据类型,并且很不适合于非结构化和半结构化数据。
总体来说,随着web和移动应用程序的增加、新的趋势、网上消费者行为的转变以及新的数据类型的出现,行业需要能够提供可扩展的灵活的数据库技术来管理和访问数据。NoSQL技术是有效满足这些需求的唯一可行解决方案。
AWS推出了与SQL兼容的查询语言PartiQL,只要数据库查询引擎提供PartiQL支持,使用者就能以PartiQL单一查询关联式数据库的结构化资料,以及开放资料格式中的巢状资料或是半结构化资料,甚至还能用来查询NoSQL或是文件数据库中无固定结构(Schema-less)的资料。除了AWS自家的数据库服务,NoSQL数据库Couchbase Server也承诺将会支持PartiQL。
企业资料分散在关联式数据库、非关联式数据库以及资料湖泊中。高度结构化的资料,储存在SQL数据库或是资料仓储;无固定结构的资料则由键值储存、图形数据库(Graph Database)、分类帐数据库或是时间序列数据库等NoSQL数据库处理;而在资料湖泊中的资料,可能也有部分缺乏结构,或是可能为巢状或是多值结构。不同的资料类型适用于不同的使用案例,而每种类型的资料,可能都有自己的查询语言。
不同的资料储存对应不同的查询语言,当企业更换资料格式或是数据库引擎时,可能还需要跟着改变应用程式和查询语法,AWS提到,这对于资料的应用,特别是使用资料湖泊的灵活性与效率,有着很大的阻碍。为了统一不同类型数据库存取方法,AWS发布了查询语言PartiQL,这是个与SQL兼容的查询语言,可以用来查询以各种格式储存在各地的资料。
用户可以使用PartiQL来查询关联式数据库,像是在Redshift实作交易或是资料分析等应用,或对于Amazon S3资料湖泊的开放资料格式,同样能使用PartiQL对巢状资料与半结构化资料例如Amazon Ion格式进行查询,另外,PartiQL也可用于文件数据库等NoSQL数据库,查询无固定结构的资料。
AWS表示,PartiQL的出现,是为了满足自家查询和转换大量资料的需求,其提供严格的SQL兼容性,可与标准SQL混合使用,执行连接(Join)、过滤(Filtering)与聚合(Aggregation)操作,并以最小扩充支持巢状和半结构化资料,让开发者以简单且一致的方法,不需要更改查询语言,就能查询各种格式和服务的资料。
PartiQL具格式独立性与储存独立性,PartiQL语法和语义不依赖任何资料格式,无论使用者是要查询JSON、Parquet、ORC、CSV还是Ion等格式,查询语句的写法都相同,PartiQL的查询在综合逻辑类型系统上运作,才对应到不同底层的格式。而PartiQL也不相依于特定资料储存,因此适用于不同的底层资料储存。
虽然过去针对跨不同类型数据库查询的问题,已有不少解决方案,AWS指出,像是Postgres JSON同样也兼容于SQL,但是却无法良好地处理JSON巢状资料;而半结构化查询语言,虽然能良好处理巢状资料,但却无法与SQL语言兼容。AWS提到,PartiQL是第一个能够完全解决这些问题的查询语言。
目前AWS已在自家多项服务支持PartiQL,包括Amazon S3 Select、Amazon Glacier Select、Amazon Redshift Spectrum、Amazon QLDB,接下来几个月将会有更多的AWS服务支持PartiQL,Couchbase也公布将加入支持PartiQL的行列。现在PartiQL以Apache2.0授权许可开源,公开教学、规范以及参考实作,所有社群都能使用并参与贡献。