2018年4月4日

CockroachDB v2.0在性能上有显著提升,通过添加对JSON数据类型(以及其他类型)的支持来扩展PostgreSQL兼容性,并且提供了工具协助用户管理生产环境中跨多区域(multi-regional)的集群。

下载

摘要

本节总结了v2.0.0中最重要的面向用户的变更。 有关功能和更改的完整列表(包括bug修复和性能改进),请参阅先前测试版本的发行说明。

企业版features

这些新功能需要企业版license。 点击此注册30天试用license。

Feature 描述
Table Partitioning(表分区) 表分区为数据的存储方式和位置提供行级的控制。 此功能可用于保持数据存储点靠近用户,从而减少延迟,或将较少访问的数据存储在速度较慢且价格较低的存储设备上,从而降低成本。
Node Map(节点地图) Admin UI中的节点地图通过在世界地图上绘制节点位置,来为多区域群集的地理配置提供可视化。 此功能提供实时群集指标,能够具体到单个节点,以监视群集运行状况和性能,并对其进行故障排查。
基于Role的访问控制 基于Role的访问控制允许用户将SQL权限分配给用户组而不是个人,从而简化访问控制管理。
指定时间点Backup/Restore(测试版) 可以把数据恢复到备份数据中存在的任意历史时间点

这是测试版功能,它目前正在继续测试。 如果您发现错误,请向我们提交Github issue。

核心Features

这些新功能在核心版本中免费提供,不需要企业license。

SQL

Feature 描述
JSON 支持 JSONB数据类型和反向索引使您可以灵活地存储和有效地查询半结构化数据。
Sequences 序列根据定义的规则生成顺序整数。 它们通常用于创建数字主键。
SQL审计日志记录(实验) SQL审计日志记录为您提供系统中执行的查询的详细信息。 当您要记录针对包含个人身份信息(PII)的表运行的所有查询时,此功能特别有用。

这是一个实验性功能。 其界面和输出可能会发生变化。
CTE表达式 CTE表达式(CTEs)简化了子查询的定义和使用。 它们可以与SELECT子句和INSERTDELETEUPDATEUPSERT语句结合使用。
Computed Columns(计算列) 计算列通过列定义中包含的表达式,,存储从其他列生成的数据。 它们在在与表分区,JSONB列和二级索引结合使用时特别有用。
Foreign Key Actions ON UPDATEON DELETE 外键约束用来控制update或delete被引用列时,受约束列发生的情况。
Virtual Schemas 对于PostgreSQL兼容性,CockroachDB现在支持名称的三级结构:数据库名称>virtual schema名称>object名称。 新的SHOW SCHEMAS语句可用于列出给定数据库的所有virtual schema。
IMPORT IMPORT语句现在以完全分布式方式导入表格数据,现在可以暂停,恢复和取消import job。
INET INET数据类型存储IPv4或IPv6地址。
TIME TIME数据类型存储没有时区的时间。

操作

Feature 描述
测试部署 您现在可以使用AWS CloudFormation模板和Kubernetes自动部署和管理测试CockroachDB集群。
Node Readiness Endpoint 当一个节点在在退役或正在关闭的过程中出现错误,无法接受SQL连接并执行查询时,时,新的/health?ready=1端点返回一个HTTP 503 Service Unavailable状态响应代码。这对于确保负载均衡器不会将流量定向到存活但未“ready”的节点,这是滚动升级期间的必要检查。
节点退役 已停用和停止的节点不再显示在管理界面和命令行界面指标中。
Per-Replica Constraints in Replication Zones(复制区中的每副本约束) 定义复制区域时,可以为每个受影响的副本定义唯一性性约束,这意味着您可以有效地选择每个副本的确切位置。
"Liveness" Range的复制区 群集现在具有针对"liveness" range的预定义复制区,它包含在任何给定时间内节点存活的权威信息。
Timeseries Data Controls((时间序列数据控制)) 现在可以减少CockroachDB群集中中存储的时间序列数据量,或者完全禁用时间序列数据的存储。 只有在使用第三方工具例如例如Prometheus进行时间序列监控时,才建议使用后者。

向后兼容的变化

Change 描述
复制区域 不再支持Positive replication zone constraints。任何存在的Positive constraints都会被无视。这个改变应该不会影响已有的部署,因为Positive constraints已经很长时间没有记录或支持了。
BYTESSTRING的类型转换 目前,这些类型之间的转换与PostgreSQL中的转换方式相同。 新函数encode()decode()可用于替换旧功能。
NaN 对比 NaN的的比较已被重新定义为与PostgreSQL兼容。 NaN现在等于它自己,,并在排序时排在排序时排在所有其他非NULL值之前。
DROP USER 当用户被grants权限时,该用户该用户无法被删除,需要首先移除该用户的权限。
Cluster Settings(集群设置) 已删除过时的kv.gc.batch_size群集设置。
Environment Variables(环境变量) 已删除COCKROACH_METRICS_SAMPLE_INTERVAL环境变量。 依赖它的用户应该将集群设置timeseries.resolution_10s.storage_duration的值减小减小。
Sequences(序列) 从v1.2-alpha.20171113版本开始,序列在KVKV层中的存储存储方式发生了变化。 因此,必须删除并重新创建在该版本之前创建的序列。 由于序列在列的DEFAULT表达式中使用时无法删除,因此必须在删除序列之前删除这些表达式,并在序列之后重新创建。setval()函数可用于将序列的值设置为之前的值。
Reserved Keywords(保留关键字) ROLEVIRTUALWORK已添加为保留关键字,不再允许作为标识符

已知限制

有关我们在CockroachDB v2.0中已知的限制的信息,以及建议的相应的的相应的解决方法,请参阅已知限制.

文档更新

Topic 描述
CockroachDB Training 站点新的章节向您介绍了CockroachDB的基础知识,重点是介绍架构和基础操作知识。
生产清单 本主题现在提供云相关相关的硬件,安全性,负载平衡,监视和警报,时钟同步建议以及扩展的集群拓扑的的指南。 相关的部署的章节也增加了大量此类信息。
监控和警报 此新主题介绍了关于于监控群集整体运行状况和性能的可用工具,以及要发出报警的关键事件和度量标准。
通用错误 此新主题可帮助您了解和解决可能遇到的错误,包括事务的可重试和ambiguous错误。
SQL性能 这个新主题提供了优化CockroachDB中SQL性能的最佳实践。
SQL标准比较 此新主题列出了CockroachDB支持,部分支持和不支持的SQL标准功能。
Selection 查询 这个新主题解释了在CockroachDB中读取和处理数据所涉及的查询和操作的相关功能和语法,以及有关ordering query结果,limiting query结果,子查询和join表达式的详细信息。