Vertica 24.1のリリース

  • hibiki

あけましておめでとうございます。今年も変わらぬご愛顧のほどよろしくお願い申し上げます。
Verticaの最新版がリリースされました。主な新機能および変更点は以下の通りです。


管理

Grafanaダッシュボード

Prometheus metricsを可視化するための次のGrafanaダッシュボードを提供します。

  • Vertica Overview
  • Vertica Queries
  • Vertica Resource Management
  • Vertica Depot

ダッシュボードのソースファイルはGitHubのvertica/grafana-dashboardsリポジトリからダウンロードできます。

クライアント接続

ユーザまたはロールに基づくWorkload routing

WorkloadのUSAGE権限の付与・取消ができるようになります。この権限に基づき、Workload routingが行われます。

Workload routingの優先度

Workload routingに優先度を指定できるようになります。ユーザまたはロールに複数のWorkload routingが適用された場合、この優先度が使用されます。

有効なWorkloadの表示

SHOW AVAILABLE WORKLOADS文を用いて現在有効なWorkloadを確認することができます。

クライアントドライバ

Windowsインストーラを用いたADO.NETドライバのインストール

23.4ではADO.NETドライバはWindowsインストーラからインストールできず、NuGetからインストールする必要がありました。このリリースからどちらも方法でもインストールができるようになり、TIBCO SpotfireなどのツールからADO.NETドライバを使用することができるようになります。

ADO.NETドライバによる読み取り専用ファイルシステムのサポート

Kubernetesなどで使用される読み取り専用ファイルシステムをより良くサポートするため、ADO.NETドライバのロギングが次の通りに変更されます。

  • 設定ファイルが存在しない場合でも自動的に作成は行いません。
  • Windowsのレジストリの読み書きは行いません。
  • ホームディレクトリまたはプロジェクトディレクトリに置かれた設定ファイルを使用します。
  • ロギングの設定を変更するには次のファンクションを使用し、変更はアプリケーションが終了するまで維持されます。
    • SetLogPath(String path)
    • SetLogNamespace(String lognamespace)
    • SetLogLevel(VerticaLogLevel loglevel)

OAuthの設定方法の変更

次のパラメータはOAuthのAuthenticationに設定するように変更されます。

  • auth_url
  • token_url
  • scope
  • validate_hostname

この変更により、OAuthの設定はサーバに集約することができ、クライアント側で設定する必要のあったoauthjsonconfig(JDBC)とOAuthJsonConfig(ODBC)が不要となります。クライアント側では次の設定のみ必要となります。

  • Client secret
  • Access tokenまたはRefresh token

Containers・Kubernetes

使用するAPIのバージョン

VerticaDB CRDはAPIバージョン v1 を使用します。このAPIバージョンの変更はGoライブラリのvclusteropsを配布することで行われ、これはNode Management AgentとHTTPSサービスを用いたRESTインターフェイスを基にしたデータベース管理を行います。

VerticaDB Operator 2.0.0のリリース

VerticaDB Operator 2.0.0はクラスタ内のすべてのNamespaceのオブジェクトを監視できるクラスタ全体をスコープとしています。このOperatorはAPIバージョンとしてv1とv1beta1の両方と互換性があります。また、2.0.0を用いたユーザ権限の付与のワークフローは効率化されています。

イメージの更新

Vertica on Kubernetes minimalとfullのイメージにはadmintoolsとPod間の暗号化内部通信のための固定SSHキーは含まれません。

scrutinizeの収集

VerticaDB CRインスタンスのscrutinizeを収集できるようになります。

VerticaDB CRでのServiceAccountの指定

serviceAccountNameパラメータを用いてVertica DB CRインスタンスとService Accountを関連付けることができます。

Google Secret Managerのサポート

VerticaDB OperatorはGoogle Secret Managerに保管したSecretにアクセスできるようになります。これにより、Google Cloud上でVertica on Kubernetesを使用する際の機微の情報を一元化できるようになります。

Redhat OpenShift anyuidのサポート

Verticaはanyuid Securitu Context Constraintをサポートします。

VerticaDB CRでのカスタムUIDとGIDの指定

VerticaDB CRで使用するUser ID(UID)とGroup ID(GID)を指定するためにrunAsUserとrunAsGroupパラメータを使用することができます。

Spread暗号化通信のデフォルト有効化

Spread TLSがデフォルトで有効となるようencryptSpreadCommパラメータが更新されます。

カスタムスーパーユーザ名の指定

VerticaDB CRでカスタムのスーパーユーザ名を使用するためにsuperuser-nameアノテーションを指定することができるようになります。

Data Collector

新しいSET_DATA_COLLECTOR_POLICYファンクション

SET_DATA_COLLECTOR_POLICY(USING PARAMETER)を用いて個々のData Collectorのポリシーを設定します。これは従来のSET_DATA_COLLECTOR_POLICYとSET_DATA_COLLECTOR_TIME_POLICYを置き換える機能となります。

データロード

自動データロードのパフォーマンス改善

自動データロードを行う際、Verticaは並列実行を行うために複数のバッチに分けて処理を行います。その際、バッチサイズはデータサイズと実行ノード数に基づいて決定されます。このバッチサイズは、EXECUTE DATA LOADERのBATCH_SIZEオプションを用いて上書き指定することができます。

特定のファイルのみを対象とするData Loader

EXECUTE DATA LOADERを実行する際に対象とするファイルを指定できるようになり、Data Loaderはロケーション内のすべてのファイルを確認する必要がなくなります。このオプションは、例えばプッシュモデル、新しいファイルを検知して直接Data Loaderを実行するようなケースで有効です。

DATA_LOADER_EVENTSテーブルの追加

DATA_LOADER_EVENTSシステムテーブルは、指定されたパス、実行成否、再試行回数を含むすべてのData Loaderの情報を記録します。このテーブルを参照する場合、ユーザがアクセスできるData Loaderの情報のみが表示されます。

Iceberg External TableによるFallback Name Mappingのサポート

ParquetファイルがフィールドIDを持たないIcebergデータの読み込みができるようになります。Parquetファイルが必要な情報を持たない場合、VerticaはIcebergメタデータのFallback Name Mappingを使用します。この処理は自動的に行われるため、Verticaのテーブル定義を変更する必要はありません。

データベース管理

LogRotateサービスの導入

新しく導入されたLogRorateサービスを用いて自動的にログファイルのローテーションを行うことができるようになります。以前は、Linuxのlogrorateツールを用いて行っており、この依存性がなくなります。

S3への書き込みパフォーマンスの向上

Verticaは1つのスレッドを用いて書き込みを行います。しかし、1回の書き込みでは通常複数のファイルを対象とすることが多くなります。S3への書き込みの際、並行して書き込みを行うための大きなスレッドプールを使用することができるようになります。このスレッドプールはファイルへのエクスポート、Communal Storageへの書き込みを含むすべてのS3への書き込み処理で使用されます。
スレッドプールのサイズはObjStoreUploadParallelism設定パラメータで制御されます。それぞれのノードがファイル書き込みのための1つのスレッドプールを持ちます。通常、1つまたは2つのスレッドを用いて並行書き込みを行うと良いパフォーマンスを得られます。

Node Management Agentのエラーレポートの改善

ほとんどのNode Management AgentのエンドポイントがRFC7807に基づいたエラーを返すようになります。

HTTPSサービスの変更

エラーレポートの改善

すべてのHTTPSエンドポイントがRFC7807に基づいたエラーを返すようになります。

Subscription状況の提供

新しい/v1/subscriptionsのエンドポイントは次の情報を含むSubscriptionの情報を返します。

  • node_name
  • shard_name
  • subscription_state
  • 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
    },
    ...
  ]
}

DepotおよびDataパスの提供

次のStorage Locationに関するフィールドが/v1/nodesおよび/v1/nodes/node_nameエンドポイントから追加で返されます。

  • data_path:USAGE 'DATA,TEMP'となっているDataパスのリスト
  • depot_path:USAGE 'DEPOT'となっているDataパスのリスト

例えば、次の通りです。

$ 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"
    }
  ]
}

Directed Queries

新しいステータステーブルとファンクション

DIRECTED_QUERY_STATUSシステムテーブルは、実行回数を含むDirected Queriesの情報を記録します。CLEAR_DIRECTED_QUERY_USAGEファンクションを用いて実行回数のリセットを行うことができます。

Eon Mode

Namespaceのサポート

Eon ModeデータベースにおいてNamespaceがサポートされます。Namespaceはスキーマおよびテーブルをグルーピングでき、それぞれのNamespaceに指定されたShard数でデータ分割を行います。NamespaceはVerticaのオブジェクト階層の最上位となります。それぞれのテーブルおよびスキーマは1つのNamespaceに紐付きます。
デフォルトでは、データベースはdefault_namespaceのNamespaceを持ち、データベース作成時に指定されたShard数が使用されます。CREATE NAMESPACE文で新しいNamespaceを作成し、DROP NAMESPACE文で削除します。CREATE TABLEやCREATE SCHEMAを実行する際、紐付けするNamespaceを必ず指定する必要があります。指定がない場合、default_namespaceに紐付きます。

機械学習

MLSUPERVISORロールの権限

MLSUPERVISORロールを持つユーザはIMPORT_MODELSおよびEXPORT_MODELSを用いてモデルのインポート・エクスポートができるようになります。

UDFSロケーションを用いたExportとImport

モデルのインポート・エクスポートを行う際、Amazon S3 BucketやGoogle Cloud StorageのようなObject Storageを使用できるようになります。

Management Console

データベース作成およびRevive時のS3 Bucketの必要要件

データベースを作成またはReviveする際、使用するS3 BucketはCloudFormationテンプレートを配布した際に認証したものである必要があります。

DDL文

ALTER TABLE ... ADD COLUMNによる複数カラムの追加

ALTER TABLE文で複数のカラムを追加する場合、ADD COLUMN句に並べて指定して追加することができるようになります。


その他の変更点については製品ドキュメントのNew and changed in Vertica 24.1をご覧ください。是非、Verticaの最新バージョンをお試しください。

Premium Edition(製品版)のダウンロードサイト:https://support.microfocus.com/downloads/swgrp.html

Community EditionのダウンロードおよびVertica Acceleratorの試用サイト:https://www.vertica.com/try/

製品ドキュメント:https://docs.vertica.com/24.1.x/en/

タグ:
カテゴリ: