Verticaの最新版がリリースされました。OpenText Verticaとして多数の新機能を実装したリリースです。
まずお気づきになられるのがバージョン番号の違いかと思います。一つ前のリリースのバージョンは12.0.4でした。今までであれば、今回のリリースのバージョン番号は12.0.5や13.0となっていました。OpenTextによる買収に伴い、VerticaはOpenText Analytics & AIの製品グループの一員となりました。OpenTextでは毎年四半期ごとに製品のリリースを行うことを目指しており、バージョン番号はリリースされた年と四半期を表しています。よって、今回のリリースは2023年第3四半期に行われたことから、23.3となっています。
主な新機能および変更点は以下の通りです。
クライアント接続
Workload Routing
Workload Routingは、クライアントのワークロード(目的)に合わせてその接続を特定のSubclusterにルーティングする機能を提供します。
このタイプのロードバランスは次のようなケースで有効です:
- データベース管理者はクライアントのIPアドレスではなく、クライアントのワークロードに応じてSubclusterを割り当てることができます。
- クライアントはルーティングされたSubclusterについては知る必要がなく、彼らのワークロードだけを知っている必要があります。
- データベース管理者はWorkload Routingの定義をいつでも変更することができ、すべてのクライアントに対して透過的に適用されます。
クライアントドライバー
ODBC:ロードエラーレポートの改善
COPY文やINSERT Prepared Statementを使用してデータをロードした場合、SQLGetDiagRec()ファンクションは最初の50件のエラー情報を返すことができます。
以前は、SQLGetDiagRec()ファンクションは最初のエラー情報のみを返すことができていました。
ADO.NET:LinuxおよびmacOSのサポート
Windows, Linux, macOSのすべてのプラットフォーム向けのADO.NETドライバーをNuGet.orgから入手いただけるようになります。使用するためには、それぞれのプラットフォームに.NET Core 3.1以上(.NET 6.0を推奨)をインストールする必要があります。
Complex Type
DEFAULTおよびSET USINGの改善
Complex Typeのデータ型のカラムを持つテーブルのスカラー型のカラムにDEFAULT句とSET USING句を指定できるようになります。Complex Typeのデータ型のカラムには引き続き指定することはできません。
ParquetパーサーによるLoose Schema Matching
Parquetパーサーのdo_soft_schema_match_by_nameオプションがComplex Typeのデータ型のフィールドをサポートします。
EXPLODEとUNNESTの結合
EXPLODEとUNNESTの出力結果をクエリ内の一つのテーブルのように用いることができます。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)
LATERALのキーワードはLEFT JOINでは必要です。CROSS JOINでは任意となります。
Kubernetes・Containers
HTTPSサービスの設定
httpServerMode CRDパラメータを用いてVerticaのHTTPSサービスの起動有無を制御できるようになります。
HTTPSサービスのネットワークポート番号の設定
subclusters[i].httpNodePort CRDパラメータを用いてHTTPSサービスが使用するネットワークポート番号を指定することができるようになります。
Prometheus server metrics
Vertica on Kubernetesは自身のHTTPSサービスからServer metricsを公開することができます。クライアントのリクエストを受け付けるようにHTTPSサービスを設定すると、レポーティングや可視化に利用できる時系列Metricsを公開することができます。
データベース管理
Node Management Agent
Node Management Agent(NMA)を使用してVerticaデータベースの管理を行えるようになります。NMAはノードを管理するREST APIを提供します。これにより、各種ツールとの連携を容易にし、ノードにSSHを用いて接続できないなどの環境特有の問題を解決します。
現在のNMAは基本的な管理作業のみを実行できる状態にあります。今後のリリースにて、より複雑なワークフローをサポートするためのエンドポイントやユーティリティを提供します。
HTTPSサービス
VerticaのHTTPSサービスを用いてデータベースの管理ができるようになります。HTTPSサービスはREST APIを提供し、データベースの管理、サーバおよびクラスタへのアクセス、Prometheus metricsの提供が行えます。
HTTPSサービスはMutual mode TLS(mTLS)の設定が必要となります。
Eon mode
SandboxへのSubclusterの追加
Sandbox SubclusterへのSecondary Subclusterの追加および削除ができるようになります。
データエクスポート
EXPORT TO文による既存ディレクトリの上書きおよび追記のサポート
エクスポート先のディレクトリが存在する場合、ifDirExistsパラメータをEXPORT TO PARQUET, EXPORT TO ORC, EXPORT TO JSON, EXPORT TO DELIMITEDに指定することで、既存ディレクトリへの上書きおよびファイルの追記ができるようになります。
データロード
Icebergのスキーマ変更
Verticaは次のスキーマ変更が行われたApache Icebergテーブルを読み込むことができるようになります。
- カラムタイプの変更
- カラムの追加および削除
- Structフィールドの追加および削除
機械学習
PMMLサポートの拡張
VerticaはサポートするPMMLタグおよび属性を拡張します。例えば、FieldRefやLocalTransformationsタグなどです。
インポートしたTensorFlowモデルによるComplex Typeのサポート
PREDICT_TENSORFLOW_SCALARファンクションはComplex Typeの入出力を持つTensorFlowモデルを使った予測を行うことができます。このファンクションは一つのROW型のデータを入出力に使用でき、ROW型はテンソルの一次元配列を持ちます。
Management Console
Keycloakを用いたユーザ認証
Management Console(MC)はユーザ認証を行う際にKeycloakと連携することができるようになります。
各種の企業ID管理ワークフローと連携できるよう、MCは次の認証オプションを提供します。
- Local:ユーザアカウント情報はMCに格納されます。
- Federated:LDAPまたはLDAPSサーバに格納された情報を基にユーザ認証を行います。
- Identity Provider(IDP):IDPで管理される情報を用いてユーザ認証を行います。
プロジェクション
パーティション化されたプロジェクションのRefreshパフォーマンスの改善
以前のリリースでは、すべてのデータのRefreshが完了するまではそのプロジェクションは使用できませんでした。これは、クエリがそのプロジェクションを使用できるまでに時間を要することにつながります。このリリースでは、パーティション化されたテーブルのプロジェクションをRefreshする場合、例えばデータを持つテーブルに新しいプロジェクションを作成する際、最も大きいパーティションキー値を持つパーティションからRefreshを行います。このパーティションのRefreshが完了すると、Verticaは次に大きいパーティションキー値を持つパーティションのRefreshを開始します。このプロセスはすべてのパーティションはRefreshされるまで繰り返されます。これはすなわち、Refresh処理が行われている間、Refreshが終わったパーティションはクエリから使用できる状態となることを表します。
セキュリティ・ユーザ認証
ODBC OAuth認証によるシングルサインオン(SSO)
ODBCドライバーはSSOを用いてサインインするために自動的にブラウザを起動し、Keycloakの認証エンドポイントを表示することができるようになります。このIDPを用いた認証方法は、OAuthAccessTokenをエンドポイントから手動で入手する代替方法となります。
Control channel(Spread)のTLS有効化手順の簡略化
VerticaのノードはControl channelを用いて通信を行います。EncryptSpreadComm設定パラメータを有効化することでTLSを用いた安全な通信を行うことができます。このEncryptSpreadComm設定パラメータをデータベース作成時に指定することができるようになります。以前は、データベース作成後にALTER DATABASE文を用いて設定する必要がありました。
SQLファンクション・ステートメント
セッションユーザの変更
SET SESSION AUTHORIZATION文を用いて現在のSQLセッションにおけるセッションユーザを認証なしで切り替えることができるようになります。これは、テストやデバッグなどで一時的に接続ユーザを変更したいケースなどに有効です。
ストアドプロシージャ
ネストされたストアドプロシージャ
ストアドプロシージャから別のストアドプロシージャまたはメタファンションを実行できるようになります。
トランザクション制御
ストアドプロシージャはすべて正常に完了した場合に自動コミットされます。これに加え、PERFORM COMMITを用いて手動でコミットすることができるようになります。
以前は、ストアドプロシージャを実行する前にトランザクションはコミットされ、さらに呼び出されたSQL文ごとに自動コミットされていました。
セッション情報の維持
ストアドプロシージャはセッション情報の維持をできるようになります。ストアドプロシージャで変更されたセッション情報は実行後も維持されます。
ユーザおよび権限
Modelオブジェクトの権限継承
機械学習のModelオブジェクトは、スキーマ権限を継承できるようになります。権限の継承はModel単位に有効化することができます。
この機能はDisableInheritedPrivileges設定パラメータを用いて無効化することができます。
その他の変更点については製品ドキュメントのVertica 23.3.x New Features and Changesをご覧ください。是非、Verticaの最新バージョンをお試しください。
Premium Edition(製品版)のダウンロードサイト:https://support.microfocus.com/downloads/swgrp.html
Community EditionのダウンロードおよびVertica Acceleratorの試用サイト:https://www.vertica.com/try/
製品ドキュメント:https://www.vertica.com/documentation/vertica/23-3-x-documentation/