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

Vertica 24.1.x版本新功能

simonchiang 2024-08-29
158

0.总结

  1. 管理员增强功能:与 Grafana 集成,通过 Prometheus 监控,提供了多个仪表板,如 Vertica 概览和资源管理。
  2. 客户端连接:改进了基于用户角色的工作负载路由,支持规则优先级管理,使得连接管理更高效。
  3. 客户端驱动程序:支持只读文件系统,恢复了 ADO.NET 在 Windows 的安装程序,并集中 OAuth 配置到服务器,简化了认证设置。
  4. 容器和 Kubernetes:切换到 v1 API,更新了 VerticaDB 运算符(2.0.0 版)以增强集群监控,并新增 Kubernetes 管理参数和注释。性能在 Kubernetes 环境中也得到了提升。
  5. 数据加载:优化了自动数据加载,支持并行执行,并新增功能,如加载特定文件,以及 DATA_LOADER_EVENTS 表用于跟踪加载事件。
  6. 数据库管理:引入了 LogRotate 服务以自动轮换日志文件,并提高了对 S3 存储写入的性能。节点管理和 HTTPS 服务的错误报告也得到了改进。
  7. 定向查询和 Eon 模式:Eon 模式支持命名空间,并提供了管理定向查询的新工具。
  8. 机器学习:MLSUPERVISOR 角色新增了权限,支持将模型导入/导出到各种存储系统中。
  9. 管理控制台和表管理:在 S3 上创建和恢复数据库时新增要求,并允许通过单个 ALTER TABLE 语句添加多个列。

1. Admin

1.1 Grafana 仪表板

Vertica 提供以下仪表板来可视化Prometheus 指标

您还可以从vertica/grafana-dashboards 存储库下载每个仪表板的源代码。

有关 Vertica 和 Prometheus 的详细信息,请参阅HTTPS 端点Prometheus 指标

2. 客户端连接

2.1 工作负载路由

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

2.1.1 基于用户和角色的工作负载路由

您现在可以授予撤销对工作负载的 USAGE 权限。有关详情,请参阅工作负载路由

2.1.2 工作负载路由规则优先级

现在,您可以在创建修改路由规则时设置其优先级。当多个路由规则适用于一个用户或其启用的角色时,将使用优先级。有关详细信息,请参阅工作负载路由

2.1.3 查看可用的工作负载

您现在可以使用SHOW AVAILABLE WORKLOADS查看用户可用的工作负载和启用的角色

3. 客户端驱动程序

3.1 ADO.NET:只读文件系统支持

为了更好地支持 Kubernetes 等只读文件系统,对 ADO.NET 驱动程序的日志记录行为进行了以下更改:

  • 如果不存在配置文件,ADO.NET 驱动程序将不再创建配置文件。
  • ADO.NET 驱动程序不再修改或读取 Windows 注册表。
  • ADO.NET 驱动程序现在使用主目录或项目目录中的配置文件,前者优先。
  • 以下函数对日志记录行为所做的更改现在仅持续应用程序的生命周期,并且它们各自的bool persist参数(以前将更改写入配置文件)不再具有任何效果:
    • SetLogPath(String path)
    • SetLogNamespace(String lognamespace)
    • SetLogLevel(VerticaLogLevel loglevel)

3.2 ADO.NET:Windows 安装程序已恢复

在 Vertica 23.4 中,ADO.NET 驱动程序已从 Windows 客户端驱动程序安装程序中删除。此功能已恢复。虽然您仍然可以使用包或本地.dll引用来使用驱动程序,但如果您的用例依赖于与驱动程序交互的某些工具(如 TIBCO Spotfire),您也可以使用安装程序。

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

3.3 OAuth 配置改进

现在可以在 OAuth身份验证记录中设置以下参数。有关这些参数的详细信息,请参阅OAuth 身份验证参数

  • auth_url
  • token_url
  • scope
  • validate_hostname

此功能将 OAuth 配置集中在服务器中,并替换 oauthjsonconfig (JDBC) 和 OAuthJsonConfig (ODBC) 参数,这些参数和其他参数需要在每个客户端上指定。通常,客户端现在只需要指定以下内容即可使用 OAuth 向 Vertica 进行身份验证:

  • 客户机密(针对机密客户)
  • 访问或刷新令牌

有关每个客户端的 OAuth 参数列表,请参阅JDBC 连接属性ODBC DSN 连接属性

4. 容器和 Kubernetes

4.1 v1 API 版本

VerticaDB CRD使用v1API 版本。此 API 版本使用 来管理部署vclusterops,这是一个 Go 库,使用高级 REST 接口通过节点管理代理HTTPS 服务来管理数据库。此v1beta1API 版本已弃用

要将 VerticaDB CR 升级到 API 版本v124.1.0,您必须迁移 API 版本。有关详细信息,请参阅在 Kubernetes 上升级 Vertica

4.2 VerticaDB 运算符 2.0.0

VerticaDB 运算符 2.0.0 是一个集群范围的运算符,可以监视集群内任何命名空间中的对象。此运算符与v1API 版本和已弃用的v1beta1API 版本都兼容。此外,集群管理员使用 2.0.0 授予用户权限的工作流程得到了简化。

有关VerticaDB Operator 2.0.0的详细信息,请参阅以下内容:

4.3 图像更新

Kubernetes 镜像上的最小和完整 Vertica 不再包含管理工具(admintools) 或加密 pod 之间内部通信的静态 SSH 密钥。

有关所有可用映像的列表,请参阅Vertica 映像Vertica Docker Hub 存储库

4.4 VerticaDB 参数的更改

以下列表详细说明了对 VerticaDB 自定义资源定义参数的更改。有关当前参数和注释的完整列表,请参阅自定义资源定义参数Helm 图表参数

4.4.1 新参数

添加了以下自定义资源定义参数:

  • tlsNMASecret
  • serviceAccountName

添加了以下 Helm 图表参数:

  • serviceAccountAnnotations
  • serviceAccountNameOverride
  • reconcileConcurrency.verticaautoscaler
  • reconcileConcurrency.verticadb
  • reconcileConcurrency.eventtrigger

4.4.2 删除的参数

下列已弃用的参数已被删除:

  • communal.kerberosServiceName
  • communal.kerberosRealm

您可以使用communal.additionalConfig来代替这些参数。

4.4.3 重命名参数

下表描述了重命名的参数:

曾用名 新名称
communal.hadoopConfig hadoopConfig
httpNodePort verticaHTTPNodePort
subclusters.isPrimary subclusters.type
subclusters.nodePort subclusters.clientNodePort
superuserPasswordSecret passwordSecret

4.4.4 转换为注释

一些参数被转换为注释。下表描述了注释转换:

参数名称 注释名称
ignoreClusterLease vertica.com/ignore-cluster-lease
communal.includeUIDInPath vertica.com/include-uid-in-path
restartTimeout vertica.com/restart-timeout

4.4.5 新注释

添加了以下注释:

  • vertica.com/run-nma-in-sidecar
  • vertica.com/superuser-name

4.5 仔细检查诊断

您可以运行scrutinize该命令来收集有关 VerticaDB 自定义资源实例的诊断信息。此命令会创建一个 tar 文件,您可以将其上传到 Vertica 支持部门以获取故障排除帮助。

scrutinize有关容器化环境的详细信息,请参阅VerticaDB 的审查

4.6 在 VerticaDB CR 中指定 ServiceAccount

serviceAccountName参数可让您将 VerticaDB CR 实例与服务帐户关联。有关详细信息,请参阅自定义资源定义参数

4.7 支持 Google Secret Manager

VerticaDB 操作员可以访问您存储在Google Secret Manager中的 Secret 。这样,您就可以将 Google Cloud 和 Vertica on Kubernetes 中使用的敏感信息保存在一个位置。

有关详细信息,请参阅机密管理

4.8 在 RedHat OpenShift 中支持 anyuid

Vertica 支持anyuid安全上下文约束 (SCC) 来强制实施增强的安全措施。有关 Vertica 和 OpenShift 的详细信息,请参阅Red Hat OpenShift 集成

4.9 在 VerticaDB CR 中添加自定义 UID 和 GID

设置runAsUserrunAsGroup参数以使用 VerticaDB CR 的用户 ID (UID) 或组 ID (GID) 的任意值。您必须将它们嵌套在 下podSecurityContext

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

4.10 默认启用传播加密

encryptSpreadComm定义资源定义 (CRD) 参数已更新,默认启用 Spread TLS。此外,该参数还接受新值以启用或清除 Spread 加密。

CRD 参数的详细信息请参见自定义资源定义参数。 扩展加密的详细信息请参见控制通道扩展 TLS

4.11 自定义超级用户名

您可以设置superuser-name注释以将自定义超级用户名与 VerticaDB 自定义资源一起使用。有关详细信息,请参阅自定义资源定义参数

5. Data Collector

5.1 SET_DATA_COLLECTOR_POLICY

SET_DATA_COLLECTOR_POLICY (使用参数)函数为数据收集器设置单独的策略。它取代了SET_DATA_COLLECTOR_POLICYSET_DATA_COLLECTOR_TIME_POLICY

6. 数据加载

6.1 自动数据加载性能改进

在自动数据加载期间,Vertica 现在将加载分为多个批次以并行执行。默认情况下,Vertica 根据总数据量和执行器节点数选择批次大小。您可以使用EXECUTE DATA LOADERBATCH_SIZE选项覆盖默认值。

6.2 使用特定文件执行数据加载器

您现在可以调用EXECUTE DATA LOADER并加载特定文件,这样加载器就不会检查该位置的所有文件。如果您的工作流程使用“推送”模型(通知程序会检测新文件并直接执行加载器),则此选项非常有用。

6.3 DATA_LOADER_EVENTS 表

DATA_LOADER_EVENTS系统表记录所有数据加载器的事件,包括路径、加载是否成功以及重试次数。查询该表时,您只会看到您有权访问的数据加载器的事件。

6.4 冰山表支持后备名称映射

即使 Parquet 文件未编码字段 ID,Vertica 现在也可以读取 Iceberg 数据。如果 Parquet 文件不包含所需信息,Vertica 将使用 Iceberg 元数据中的后备名称映射。此过程是自动的,不需要对 Vertica 中的表定义进行任何更改。

7. 数据库管理

7.1 LogRotate 服务

现在,您可以使用 LogRotate 服务自动轮换日志文件。以前,此功能依赖于 Linuxlogrotate工具。LogRotate 服务消除了这种依赖关系。

有关详细信息,请参阅轮换日志文件

7.2 S3 的写入性能

默认情况下,Vertica 使用单个线程执行写入,但单个写入通常包括多个文件或部分文件。对于对 S3 的写入,您可以使用更大的线程池来并行执行写入。此线程池用于对 S3 的所有文件写入,包括文件导出和对公共存储的写入。

线程池的大小由ObjStoreUploadParallelism配置参数控制。每个节点都有一个线程池,用于所有文件写入。通常,每个并发写入器使用一到两个线程会产生良好的效果。

7.3 节点管理代理:改进错误报告

大多数节点管理代理 (NMA) 端点现在会返回符合 RFC7807 规范的错误。有关 NMA 的详细信息,请参阅节点管理代理

7.4 HTTPS 服务

关于HTTPS服务的详细信息,请参阅HTTPS服务

7.4.1 改进错误报告

所有 HTTPS 端点现在都返回符合 RFC7807 规范的错误。

7.4.2 订阅状态

新的/v1/subscriptions端点返回您的订阅信息,包括:

  • node_name
  • shard_name
  • subscription_state:订阅状态(ACTIVEPENDINGPASSIVEREMOVING
  • is_primary:该订阅是否为主订阅

例如:

$ curl -i -sk -w "\n" --user dbadmin:my_password "https://127.0.0.1:$HTTP_SERVER_PORT_1/v1/subscriptions" { "subscriptions_list": [ { "node_name": "node08", "shard_name": "segment0004", "subscription_state": "ACTIVE", "is_primary": false }, ... ] }

7.4.3 仓库和数据路径

以下存储位置字段已添加到/v1/nodes/v1/nodes/_node_name_端点:

  • data_path:用于存储 USAGE ‘DATA,TEMP’ 数据的路径列表。
  • depot_path:用于存储 USAGE ‘DEPOT’ 数据的路径。

例如:

$ curl -i -sk --user dbadmin:my_password https://vmart.example.com:8443/v1/nodes HTTP/1.1 200 OK Content-Type: application/json Content-Length: 648 Connection: keep-alive Server: oatpp/1.3.0 { "detail": null, "node_list": [ { "name": "v_vmart_node0001", "node_id": 45035996273704982, "address": "192.0.2.0", "state": "UP", "database": "VMart", "is_primary": true, "is_readonly": false, "catalog_path": "\/scratch_b\/VMart\/v_vmart_node0001_catalog\/Catalog", "data_path": [ "\/scratch_b\/VMart\/v_vmart_node0001_data" ], "depot_path": "\/scratch_b\/VMart/my_depot", "subcluster_name": "", "last_msg_from_node_at": "2023-12-01T12:38:37.009443", "down_since": null, "build_info": "v24.1.0-20231126-36ee8c3de77d43c6ad7bbef252302977952ac9d6" } ] } $ curl -i -sk --user dbadmin:my_password https://vmart.example.com:8443/v1/nodes/v_vmart_node0001/ HTTP/1.1 200 OK Content-Type: application/json Content-Length: 648 Connection: keep-alive Server: oatpp/1.3.0 { "detail": null, "node_list": [ { "name": "v_vmart_node0001", "node_id": 45035996273704982, "address": "192.0.2.0", "state": "UP", "database": "VMart", "is_primary": true, "is_readonly": false, "catalog_path": "\/scratch_b\/VMart\/v_vmart_node0001_catalog\/Catalog", "data_path": [ "\/scratch_b\/VMart\/v_vmart_node0001_data" ], "depot_path": "\/scratch_b\/VMart/my_depot", "subcluster_name": "", "last_msg_from_node_at": "2023-12-01T12:38:37.009443", "down_since": null, "build_info": "v24.1.0-20231126-36ee8c3de77d43c6ad7bbef252302977952ac9d6" } ] }

8. 定向查询

8.1 新的状态表和功能

DIRECTED_QUERY_STATUS系统表记录已执行的定向查询的信息,包括执行的次数。您可以使用CLEAR_DIRECTED_QUERY_USAGE函数重置单个定向查询或所有定向查询的计数器

9. Eon 模式

9.1 命名空间支持

Eon Mode 数据库现在支持命名空间。命名空间是数据库中模式和表的集合,它们按通用名称分组并细分为由该命名空间定义的分片数。在 Eon Mode 数据库中,命名空间表示 Vertica 对象层次结构中的顶级数据结构。数据库中的每个表和模式都属于一个命名空间。

默认情况下,数据库包含单个命名空间,default_namespace该命名空间是在创建数据库时形成的,其分片数是在设置期间指定的。您可以使用CREATE NAMESPACE语句创建其他命名空间,并使用DROP NAMESPACE删除它们。运行 Vertica 语句和函数(例如CREATE TABLECREATE SCHEMA )时,必须指定对象所属的命名空间或在哪个命名空间下创建它们。如果未指定命名空间,Vertica 会假定表或架构是的成员default_namespace。有关命名空间的详细信息(包括扩展示例),请参阅管理命名空间

10. 机器学习

10.1 MLSUPERVISOR 角色权限

具有MLSUPERVISOR角色的用户现在可以使用IMPORT_MODELSEXPORT_MODELS元功能导入和导出模型。

10.1 导出和导入至 UDFS 位置

您现在可以将模型导入和导出到任何受支持的文件系统或对象存储,例如 Amazon S3 存储桶和 Google Cloud Storage 对象存储。有关更多信息,请参阅IMPORT_MODELSEXPORT_MODELS

11. 管理控制台

11.1 创建和恢复 S3 存储桶的要求

创建或恢复数据库时,您必须指定在部署 CloudFormation 模板时授权的 S3 存储桶。

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

12. Tables

12.1 ALTER TABLE…ADD COLUMN

现在,您可以使用ALTER TABLE添加多个列,每个列使用一个 ADD COLUMN 子句。

二维码.png

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

文章被以下合辑收录

评论