暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Vertica 23.3.x版本新功能

simonchiang 2024-08-28
180

0.简述

Vertica 23.3 版本的新功能包括:

  1. 客户端连接
    • 引入工作负载路由功能,根据客户端工作负载将连接路由至特定子集群。
    • ADO.NET 驱动程序现已支持 Linux 和 macOS 平台。
  2. 复杂类型
    • 支持复杂类型的 Parquet 松散模式匹配和 UNNEST 函数的连接。
    • 表的标量列现在可以使用 DEFAULT 和 SET USING 选项。
  3. 容器与 Kubernetes
    • 新增 Prometheus 服务器指标支持和自定义 HTTP 端口配置。
  4. 数据导出与复制
    • 基于服务器的复制功能,使 Eon Mode 数据库之间的数据复制更加灵活。
  5. 数据库管理
    • 引入了节点管理代理 (NMA) 和 HTTPS 服务,用于数据库管理。
  6. Eon 模式
    • 支持向现有沙盒添加或移除辅助子集群。
  7. 机器学习
    • 扩展了对 PMML 和 TensorFlow 模型的支持,包括复杂类型的处理。
  8. 存储过程
    • 支持嵌套存储过程和事务语义,增强了存储过程的功能和灵活性。
  9. 安全与身份验证
    • ODBC 驱动程序增加了 OAuth 单点登录 (SSO) 支持。
    • 简化了控制通道的 TLS 扩展。
  10. SQL 函数和语句
    • 新增 SET SESSION AUTHORIZATION 语句,用于更改当前会话的授权。
  11. 用户与权限
    • 机器学习模型现在支持继承父架构的权限。

1. 客户端连接

1.1 工作负载路由

工作负载路由允许您根据客户端工作负载创建将客户端连接路由到特定子集群的规则。

这种负载平衡的主要优点如下:

  • 数据库管理员可以将某些子集群与某些工作负载(而不是客户端 IP 地址)关联起来。
  • 客户端不需要了解他们将被路由到的子集群的任何信息,只需要知道他们拥有的工作负载类型。
  • 数据库管理员可以随时更改工作负载路由策略,并且这些更改对所有客户端都是透明的。

有关详细信息,请参阅工作负载路由

2. 客户端驱动程序

2.1 ODBC:改进了行错误报告

使用COPYINSERT预处理语句加载数据时,现在将返回前 50 次失败的诊断信息。以前,仅返回第一次失败的诊断信息。SQLGetDiagRec()SQLGetDiagRec()

有关详细信息,请参阅跟踪负载状态 (ODBC)

2.2 ADO.NET:Linux 和 macOS 支持

ADO.NET 驱动程序现已在 NuGet.org 上面向所有平台提供:Windows、Linux 和 macOS。要使用它,您必须先安装 .NET Core 3.1+(建议使用 .NET 6.0)。

此驱动程序的跨平台支持还为 ADO.NET 客户端驱动程序 23.3.0 及以上版本带来了以下变化:

  • 现在,日志记录在 Windows 注册表中用进行配置Vertica.Data.dll.config,而不是用。 中的现有配置将自动迁移到。有关详细信息,请参阅日志属性HKEY_LOCAL_MACHINE\SOFTWARE\Vertica\ADO.NET\Driver``HKEY_LOCAL_MACHINE\SOFTWARE\Vertica\ADO.NET\Driver``Vertica.Data.dll.config
  • 要使用该驱动程序,您现在可以在项目中引用它,而不是在 .NET Core 中注册它。有关详细信息,请参阅安装 ADO.NET 客户端驱动程序
  • Kerberos 目前仅支持 Windows。

有关安装和使用详细信息,请参阅安装 ADO.NET 客户端驱动程序

3. 复杂类型

3.1 DEFAULT 和 SET USING

现在,包含复杂类型列的表中的标量类型列可以使用 DEFAULT 和 SET USING 选项。请参阅CREATE TABLEALTER TABLE

复杂类型的列仍然被限制使用这些选项。

3.2 Parquet 松散模式匹配

PARQUET解析器选项do_soft_schema_match_by_name现在支持复杂类型。

3.3 EXPLODE 和 UNNEST 的连接

您可以将EXPLODEUNNEST的输出用作查询中的关系。除了 CROSS JOIN,您现在还可以使用 LEFT JOIN 来包含 NULL 结果,如下例所示:

=> ALTER SESSION SET UDPARAMETER FOR ComplexTypesLib skip_partitioning = true;

=> SELECT student, MIN(score), AVG(score) FROM tests
LEFT JOIN LATERAL EXPLODE(scores) AS t (pos, score)
GROUP BY student;
 student | MIN |       AVG
---------+-----+------------------
 Bob     |  78 |               83
 Lee     |     |
 Pat     |     |
 Sam     |  85 | 93.3333333333333
 Tom     |  68 |               79
(5 rows)

对于 LEFT JOIN,LATERAL 关键字是必需的。对于 CROSS JOIN,它是可选的。

4. 容器和 Kubernetes

4.1 HTTP 服务配置

httpServerMode定义资源定义参数控制Vertica 服务器是否启动其 HTTP 服务器。

有关详细信息,请参阅自定义资源定义参数

4.2 自定义 HTTP 端口

自定义资源定义参数允许您在设置为subclusters[i].httpNodePort时为外部 HTTPS 连接设置自定义端口。subclusters[i].serviceType``NodePort

有关详细信息,请参阅自定义资源定义参数

4.3 Prometheus 服务器指标

Kubernetes 上的 Vertica 现在使用 HTTPS 服务公开服务器指标。配置 HTTPS 服务以接受客户端请求后,您可以导出时间序列指标以进行数据报告和可视化。

有关详细信息,请参阅以下内容:

5. 数据导出和复制

5.1 基于服务器的复制

基于服务器的复制将数据从一个 Eon Mode 数据库复制到另一个。数据直接从源数据库的公共存储位置复制到目标数据库的公共存储位置。与vbr基于服务器的复制不同,基于服务器的复制支持跨平台和具有不同节点数的数据库之间的复制。

通常,您使用基于服务器的复制来使目标数据库中的表或架构与源数据库中的相应表或架构保持最新。复制会自动确定源数据库中的更改,并仅将这些更改传输到目标数据库。有关更多信息,请参阅基于服务器的复制

6. 数据库管理

6.1 节点管理代理

ssh现在,您可以使用节点管理代理 (NMA) 管理 Vertica 数据库。NMA 提供用于管理节点的 REST API,在无法连接到 Vertica 节点的情况下,可以更轻松地集成和使用。

NMA 的当前版本适用于基本和常规集群管理任务。未来版本将添加端点和实用程序以支持更复杂的工作流程。

详细信息请参见节点管理代理

6.2 HTTPS 服务

现在,您可以使用 HTTPS 服务管理 Vertica 数据库。HTTPS 服务提供 REST API,用于管理数据库以及以 Prometheus 公开格式访问服务器、集群和主机指标。

HTTPS 服务需要您配置相互模式 TLS (mTLS)。有关详细信息,请参阅HTTPS 服务

7. Eon 模式

7.1 向沙盒中添加其他子集群

您现在可以向现有沙盒添加和移除其他辅助子集群。有关详情,请参阅向现有沙盒添加子集群移除沙盒的辅助子集群

8. 文件导出

8.1 EXPORT TO 语句可以覆盖或附加到目录

如果导出的目标目录存在,您可以使用参数ifDirExistsEXPORT TO PARQUETEXPORT TO ORCEXPORT TO JSONEXPORT TO DELIMITED覆盖或附加新文件到现有目录。

9. 加载数据

9.1 冰山模式的演变

Vertica 现在可以读取经历过以下类型的模式演变的 Apache Iceberg 表:

  • 已更改列类型
  • 添加或删除列
  • 添加或删除结构字段

请参阅创建外部表 ICEBERG

10. 机器学习

10.1 扩展 PMML 支持

Vertica 现在支持其他 PMML 标签和属性,包括FieldRefLocalTransformations标签。有关所有受支持的 PMML 模型类型、标签、子标签和属性的列表,请参阅PMML 功能和属性

10.2 对导入的 TensorFlow 模型的复杂类型支持

PREDICT_TENSORFLOW_SCALAR函数使用具有复杂类型输入和输出列的导入的 TensorFlow 模型进行预测。此函数接受并输出单个ROW,其中 ROW 中的每个字段包含一个 1D ARRAY 张量。有关详细信息,请参阅函数参考页面和TensorFlow 集成和目录结构

要将此函数与导入的 TensorFlow 模型一起使用,您必须_column-type_在调用freeze_tf2_model.py脚本时使用参数 1。有关更多信息,请参阅tf_model_desc.json 概述

11. 管理控制台

11.1 使用 Keycloak 进行用户身份验证

管理控制台 (MC) 与Keycloak集成以验证用户帐户。MC 提供以下身份验证选项以与您的企业身份管理工作流程集成:

  • 本地:用户帐户信息在 MC 内存储和管理。
  • 联合:使用存储在联合 LDAP 或 LDAPS 服务器中的信息对 MC 用户帐户进行身份验证。
  • 身份提供者 (IDP):使用 IDP 管理的信息对 MC 用户帐户进行身份验证。

有关详细信息,请参阅MC 中的用户、角色和权限

12. Projections

12.1 改进分区projection刷新性能

在以前的版本中,新的和更新的投影在完全刷新所有表数据之前不可用于查询。这延迟了投影处理查询请求的可用性。现在,当您刷新分区表的投影时(例如,具有现有数据的表的新投影),刷新操作首先从具有最高键范围的分区加载数据。刷新此分区后,Vertica 开始刷新具有下一个最高分区范围的分区。此过程持续到刷新所有投影分区为止。同时,在刷新操作进行时,已完成刷新过程的投影分区可用于处理查询请求。

13. 安全和身份验证

13.1 ODBC OAuth 的单点登录 (SSO)

Vertica ODBC 驱动程序现在可以自动打开您的 Web 浏览器并将您定向到 Keycloak 的身份验证端点以使用 SSO 登录。这种使用身份提供者进行身份验证的方法是手动从各个端点检索 OAuthAccessToken 的替代方法。

此功能目前仅限于 Keycloak。有关详情,请参阅检索访问令牌

13.2 简化控制通道扩展 TLS

Vertica 节点使用控制通道进行通信。您可以通过启用EncryptSpreadComm来使用 TLS 保护此通信通道。现在,您还可以在创建数据库时设置 EncryptSpreadComm。以前,您只能使用ALTER DATABASE在正在运行的数据库上设置此参数。

有关详细信息,请参阅控制通道扩展 TLS

14. SQL 函数和语句

14.1 为当前会话设置会话授权

SET SESSION AUTHORIZATION语句更改当前 SQL 会话的当前用户和会话用户。更改会话有助于测试和调试。

有关详细信息,请参阅设置会话授权

15. 存储过程

15.1 嵌套存储过程

您现在可以调用存储过程并从其他存储过程内部执行元函数。有关详细信息,请参阅嵌套存储过程

15.2 事务语义

存储过程现在仅在成功执行整个存储过程(包括任何嵌套存储过程)后才会自动提交。您还可以使用 PERFORM COMMIT手动提交。有关详细信息,请参阅事务语义

以前,存储过程在执行之前提交事务,并且每个嵌入式 SQL 语句都在其自己的自动提交的事务中执行。

15.3 会话语义

存储过程现在支持会话语义。存储过程中所做的所有基于会话的更改在执行后都会保留下来。

16. 用户和权限

16.1 模型的继承特权

机器学习模型现在可以继承其父架构的权限。继承的权限可以在模型级别启用,并通过ALTER MODEL实现为显式授权

可以使用DisableInheritedPrivileges禁用此功能,这会禁用数据库级别的权限继承。

二维码.png

最后修改时间:2024-08-29 10:33:32
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论