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

Vertica 12.0.4版本新功能

simonchiang 2024-08-28
517

0.简述

Vertica 12.0.4 版本的新功能包括:

  1. Admintools: 提供了设置 re_ip 超时的功能,以便在超时前执行特定任务。
  2. 客户端连接: 引入了在连接初始化期间设置空闲超时的选项,并记录客户端的主机名。
  3. 复杂类型处理: 新增了 UNNEST 函数,以及对 EXPLODE 函数性能的优化,支持交叉连接 EXPLODE。
  4. Kubernetes 支持: 增强了对服务器端加密、配置参数、仓库卷类型设置等的支持,并引入了 EventTrigger 自定义资源定义。
  5. 数据库管理: 引入了对 Amazon SNS 通知程序的支持。
  6. Eon 模式: 新增了子集群沙盒功能,使得在相互隔离的环境中操作同一数据集成为可能。
  7. 机器学习: 支持模型版本控制、泊松回归以及 ARIMA 时间序列分析。
  8. 存储过程: 允许计划执行存储过程,并查看重载存储过程的具体实现。
  9. 升级路径优化: 允许直接升级到比当前版本更高的任何 Vertica 版本,而无需逐步升级。
  10. 用户定义的扩展: 支持可编辑的用户定义扩展和会话参数,并且这些参数可自动从日志和系统表中删除。

1. admintools

1.1 设置 re_ip 超时

您可以通过编辑中re_ip的设置来配置在超时之前执行给定任务的 时间。默认情况下,此参数设置为 7200(秒)。[prepare_timeout_sec](https://docs.vertica.com/12.0.x/en/admin/managing-db/managing-nodes/reconfiguring-node-messaging/#re_ip_Timeout)``admintools.conf

2. 客户端连接

2.1 在连接初始化期间设置空闲超时

您可以设置IdleTimeoutInitializingConnectionsMs配置参数来更改在创建会话之前,服务器在连接初始化的每个步骤中等待空闲客户端的时间长度。

2.2 客户端主机名

客户端的主机名(由其操作系统报告)现在记录在下表的 CLIENT_OS_HOSTNAME 列中:

3. 客户端驱动程序

3.1 ODBC 和 vsql:支持 M1 和 M2 处理器

ODBC 和 vsql 客户端驱动程序现在支持 Apple M1 和 M2 处理器。有关详细信息,请参阅客户端驱动程序支持

4. 复杂类型

4.1 UNNEST 函数

新的UNNEST函数可扩展一个或多个数组列。UNNEST 与 EXPLODE 类似,但有两个主要区别:

  • UNNEST 返回元素值但不返回位置。
  • UNNEST 自动扩展传递给它的所有数组。

4.2 EXPLODE性能优化

EXPLODE函数将一行输入转换为多行输出,每个集合元素一行。因此,对输入进行分区通常没有任何好处。以前,使用 EXPLODE 的查询需要 OVER 子句,而 Vertica 在调用 EXPLODE 之前对输入进行分区。现在,您可以使用函数参数并省略 OVER 子句来跳过此分区步骤skip_partitioning

4.3 交叉连接爆炸

您可以在查询中使用 CROSS JOIN EXPLODE 将EXPLODE的输出用作关系,如下例所示:

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

=> SELECT student, score FROM tests
   CROSS JOIN EXPLODE(scores) AS t (pos, score)
   ORDER BY score DESC;
 student | score
---------+-------
 Sam     |    98
 Sam     |    97
 Bob     |    92
 Tom     |    91
 Sam     |    85
 Tom     |    82
 Bob     |    79
 Bob     |    78
 Tom     |    75
 Tom     |    68
(10 rows)

有关详细信息,请参阅根据结果加入

5. 容器和 Kubernetes

5.1 服务器端加密 (SSE)

Kubernetes 上的 Veritca 支持所有三种类型的 S3 SSE:

  • SSE-3
  • 证交所
  • 上证所

有关详细信息,请参阅配置公共存储自定义资源定义参数

5.2 设置配置参数

您可以使用参数在Vertica服务器中设置配置参数communal.additionalConfig

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

5.3 设置仓库卷类型

您可以使用 参数将仓库存储在 emptyDir 卷中local.depotVolume。使用 emptyDir 卷时,local.storageClasslocal.requestSize参数仅适用于存储在 PersistentVolumes 中的数据。

有关自定义资源参数的详细信息,请参阅自定义资源定义参数。有关卷类型的详细信息,请参阅Kubernetes 文档

5.4 EventTrigger 自定义资源定义 (CRD)

EventTrigger CRD 扩展了Kubernetes Job工作负载资源,以监视 VerticaDB 自定义资源 (CR) 的状态变化。当 VerticaDB CR 上的条件变为指定状态时,EventTrigger 会运行 Job。

有关详细信息,请参阅EventTrigger CRD

5.5 在子集群名称中使用下划线字符

您现在可以在子集群名称中使用下划线字符 (“_”)。有关子集群命名约定的详细信息,请参阅Kubernetes 上的子集群

5.6 没有私钥的 Vertica 镜像

Kubernetes 上的 Vertica 提供了一个不包含静态 SSH 密钥的映像,用于对 Pod 之间的内部通信进行身份验证。这要求您向自定义资源 (CR) 提供 SSH 密钥。您可以将 SSH 密钥隐藏在 Secret 中然后使用该字段将该 Secret 传递给 CR sshSecret

有关映像和将 SSH 密钥传递给 CR 的详细信息,请参阅以下内容:

5.7 自定义名称标签

您可以使用标签自定义 VerticaDB CRD 应用程序的名称app.kubernetes.io/name

spec: labels: app.kubernetes.io/name: app-name

如果您不添加自定义name标签,则默认值为vertica。有关 name 标签的更多详细信息,请参阅Kubernetes 文档

5.8 删除 VerticaDB 后删除 PVC

当您删除 VerticaDB 自定义资源时,VerticaDB 操作员会删除与该实例关联的所有 PVC。有关 Kubernetes 上的 Vertica 持久存储的详细信息,请参阅Kubernetes 上的容器化 Vertica

6. 数据库管理

6.1 Amazon 简单通知服务 (SNS) 通知程序

现在,您可以使用通知程序向 SNS 主题发送消息。有关详细信息,请参阅为简单通知服务 (SNS) 配置报告

7. 定向查询

7.1 INSERT…SELECT 提示

您现在可以使用定向查询提示注释INSERT…SELECT语句的查询。

8. 文档更新

8.1 数据探索

如果数据在架构中没有明确指定,那么开发表定义以便加载数据可能非常困难。Vertica 提供了可用于探索数据和优化表定义的工具。这些工具和流程现在在文档的新顶级部分“数据探索”中进行了描述。

9. Eon 模式

9.1 子集群沙盒

沙盒化可让您从现有集群中分离出辅助子集群,从而产生两个相互隔离的集群,它们共享相同的数据,但不会互相干扰。创建沙盒后,您可以执行标准数据库操作和查询,例如创建新表或加载库,而不会影响另一个集群。例如,删除沙盒化子集群中的表不会删除主集群中的表,反之亦然。

沙盒支持许多用例,其中包括:

  • 测试新版本的 Vertica,无需启动新集群并重新加载数据。
  • 在不损害主集群一致性的情况下尝试功能。
  • 通过授予另一个团队访问沙盒子集群的权限来与他们共享数据。

移除沙盒并执行必要的清理任务后,子集群可以重新加入主集群。

10. Apache Kafka 集成

10.1 kafka_conf_secret 参数

kafka_conf_secret 参数会隐藏您必须传递给 rdkafka 以配置 Vertica 和 Kafka 集成的敏感数据。Vertica 不会记录或存储您在 kafka_conf_secret 中传递的值。

此选项在使用 kafka_conf 参数的工具和功能上可用。

有关详细信息,请参阅直接设置 Kafka 库选项Apache Kafka 集成

11. 加载数据

11.1 对象存储上的外部表的优化

当外部表使用存储在对象存储(S3、GCS 或 Azure)上的数据,并且该数据具有多个分区级别时,性能可能会受到影响。ObjectStoreGlobStrategy 配置参数允许您使用不同的策略读取和修剪分区,从而在查询具有选择性且分区目录级别较多时提高性能。使用此设置,对对象存储 API 的调用会减少。有关详细信息,请参阅对象存储上的分区

11.2 冰山支持

您现在可以定义由Apache Iceberg存储的 Parquet 数据支持的外部表。Iceberg 表由描述架构的数据文件和元数据组成。与其他外部表不同,Iceberg 外部表不需要指定列定义 (DDL)。信息是在查询时从 Iceberg 元数据中读取的。对于某些数据类型,您可以调整列定义,例如指定 VARCHAR 大小。请参阅CREATE EXTERNAL TABLE ICEBERG

12. 机器学习

12.1 模型版本控制

模型版本控制提供了一种基础架构,用于跟踪和管理数据库中已注册模型的状态。版本控制基础架构支持协作环境,多个用户可以在其中为各个应用程序提交候选模型。dbadmin 和具有MLSUPERVISOR角色的用户可以管理和更改所有已注册模型的状态,包括哪些模型目前正在生产中。

Vertica 提供以下模型版本控制功能:

有关模型版本控制环境的详细信息和深入示例,请参阅模型版本控制

12.2 泊松回归

Vertica 现在支持泊松回归算法来对计数数据进行建模。泊松回归是线性回归或逻辑回归的替代方法,当所需的预测范围是非负实数或整数时非常有用。

12.3 自回归综合移动平均线 (ARIMA) 支持

Vertica 现在支持用于时间序列分析的自回归综合移动平均 (ARIMA) 模型。ARIMA 模型结合了AUTOREGRESSORMOVING_AVERAGE模型的功能,根据先前的时间序列值和先前预测的误差做出未来预测。您可以使用ARIMA函数创建和训练 ARIMA 模型,并使用PREDICT_ARIMA函数进行预测。

有关使用 ARIMA 模型进行训练和预测的深入示例,请参阅ARIMA 模型示例

13. 分区

13.1 使用 PARTITION ROW 对 1:N 转换函数进行窗口分区

以前,窗口分区只能用于 1:1 分析函数。现在,PARTITION ROW语法可用于窗口分区 1:N 转换函数。

14. 性能改进

14.1 刷新分区投影

在以前的版本中,新的和更新的投影在完全刷新所有表数据之前无法用于查询。这会延迟投影处理查询请求的可用性。

现在,当您刷新分区表的投影(例如,具有现有数据的表的新投影)时,刷新操作首先从具有最高键范围的分区加载数据。刷新此分区后,Vertica 开始刷新具有下一个最高分区范围的分区。此过程持续进行,直到刷新所有投影分区。同时,在刷新操作进行期间,已完成刷新过程的投影分区可用于处理查询请求。

15. 资源管理

15.1 默认用户资源池

新的配置参数DefaultResourcePoolForUsers允许您配置分配给新用户(包括 LDAP 用户)的默认用户资源池。有关详细信息,请参阅用户资源分配

16. SDK 更新

16.1 一对多 UDTF 和 PARTITION ROW

用 C++ 和 Python 编写的单阶段用户定义转换函数 (UDTF) 现在支持isExploderclass 属性,该属性指示 UDTF 是否执行一对多转换。如果在getTransformFunctionProperties工厂方法中将此属性设置为 True,则该函数默认使用 OVER(PARTITION ROW) 子句,因此在调用 UDTF 时无需指定 OVER 子句。用户还可以在调用一对多 UDTF 的 SELECT 查询中包含任何表达式。

有关此类属性和一对多 UDTF 的更多信息,请参阅UDTF 的分区选项TransformFunctionFactory 类。请参阅Python 示例:explode,获取详细介绍一对多 UDTF 的深入示例。

17. 安全和身份验证

17.1 开放授权

17.1.1 JSON Web 令牌验证

Vertica 现在可以通过验证 OAuth 令牌的签名者来验证 OAuth 令牌,而无需联系身份提供者。要启用此功能,请创建使用“ ”的身份验证记录oauth,并将身份验证参数设置为使用 JWT 验证。有关详细信息,请参阅配置 OAuth 身份验证

17.1.2 即时用户配置

即时 (JIT) 用户配置是根据身份提供者提供的信息自动配置经过身份验证的用户及其角色的行为。当客户端使用 OAuth 令牌向 Vertica 进行身份验证时,身份验证记录将启用 JIT 用户配置,Vertica 会自动创建用户(如果 Vertica 中尚不存在该用户)。此外,如果 Keycloak 是身份提供者,Vertica 会向用户授予 Keycloak 指定的角色。

例如,如果客户端提供 OAuth 令牌以Alice具有角色的用户身份进行身份验证director,但Alice在 Vertica 中不存在,则 Vertica 会自动创建用户Alice,并向其授予身份验证记录。此配置还使用 Keycloak 作为身份提供者,因此 Vertica 向其授予角色director作为默认角色

有关详细信息,请参阅即时用户预配For details, see Just-in-time user provisioning

17.2.3 JDBC:自定义信任库

您可以使用自定义信任库来保护 JDBC 客户端与身份提供商之间的连接。如果您的身份提供商的证书不是由知名证书颁发机构签署的,则此功能非常有用。

信任库的路径及其密码通过以下连接属性指定:

  • oauthtruststorepath
  • oauthtruststore密码

如果未指定 oauthtruststorepath,JDBC 客户端将使用默认信任库。

有关此连接属性和其他连接属性的详细信息,请参阅JDBC 连接属性。有关配置 OAuth 的详细信息,请参阅配置 OAuth 身份验证

18. 存储过程

18.1 计划执行

您现在可以安排存储过程的自动执行。这可用于自动执行各种任务,例如记录数据库活动、撤销权限或创建角色。有关详细信息,请参阅计划执行

18.2 查看重载的存储过程

现在,您可以使用EXPORT_OBJECTS查看重载存储过程的特定实现的源代码。有关详细信息,请参阅导出对象

19. 升级

19.1 升级到高于当前版本的任何 Vertica 版本

以前,Vertica 升级是增量式的,要求您升级到升级路径中的每个主要和次要 Vertica 版本。现在,您可以跳过中间版本,直接升级到高于当前版本的任何 Vertica 版本。

20. 用户定义的扩展

20.1 可编辑的用户定义扩展和会话参数

满足以下任何条件的用户定义的扩展会话参数都会自动从日志和系统表(如QUERY_REQUESTS )中删除:

  • 命名为“秘密”或“密码”
  • 以“_secret”或“_password”结尾

二维码.png

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

文章被以下合辑收录

评论