Vertica 12.0.4のリリース

  • hibiki

Vertica 12.0.4がリリースされました。

本リリースは前回のリリースに引き続き、12.0のサービスパックの位置づけになり、多くの機能改善を盛り込んだリリースとなっております。

主な新機能および変更点は以下の通りです。


admintools

re_ipタスクのタイムアウト設定

タイムアウトを発生させるまでにre_ipのタスクを実行させることのできる時間をadmintools.confファイルのprepare_timeout_secパラメータを修正することで変更できるようになります。デフォルト値は7,200秒です。

クライアント接続

接続初期処理におけるアイドルタイムアウトの設定

クライアントがセッションを作成するまでの接続初期処理において、サーバがアイドル状態となっているクライアントを待機する時間をIdleTimeoutInitializingConnectionsMs設定パラメータを用いて指定できるようになります。

クライアントホスト名

OSから得られるクライアントのホスト名が次のシステムテーブルのCLIENT_OS_HOSTNAMEカラムに格納されます。

  • SESSIONS
  • CURRENT_SESSION
  • USER_SESSIONS

クライアントドライバ

ODBCドライバおよびvsqlによるM1, M2プロセッサのサポート

ODBCドライバとvsqlがApple M1, M2プロセッサをサポートします。

複合データ型

UNNESTファンクション

ARRAY型のカラム値を展開するUNNESTファンクションが追加されます。UNNESTはEXPLODEと似たファンクションですが、次の違いがあります。

  • UNNESTは要素の値は返しますが、位置番号が返しません。
  • UNNESTは渡されたすべてのARRAY型カラムを自動的に展開します。

EXPLODEファンクションのパフォーマンス改善

EXPLODEファンクションは1行の入力を複数行の出力に変換するファンクションです。通常、入力値をパーティショニングすることの利点はありません。以前は、EXPLODEを使用するクエリはOVER句の指定が必要で、VerticaはEXPLODEを実行する前に入力値のパーティショニングを行っていました。このリリースより、skip_partitioningファンクションパラメータを使用することでパーティショニング処理をスキップし、OVER句の指定を不要とすることができるようになります。

CROSS JOIN EXPLODE

クエリ内でCROSS JOIN EXPLODE句を使用することで、EXPLODEの出力をテーブルと見なし、同一クエリ内で他のテーブルとジョインを行えるようになります。

データベース管理

NotifierによるAmazon simple notification service(SNS)のサポート

Notifierを用いてメッセージをSNSトピックに送ることができるようになります。

Directed Query

INSERT...SELECT文のサポート

INSERT...SELECT文にDirected Queryのヒントを追加し、Annotated Queryを作成できるようになります。

Eon Mode

Sandbox Subclusterの作成

Sandboxは既存のClusterからSecondary Subclusterを切り離し、2つの互いに分離されたクラスタを作成します。これらは同じデータを共有しますが、干渉し合いません。Sandbox上では、新しいテーブルを作成したりライブラリをロードするなどの基本的なデータベース操作やクエリの実行を、他のクラスタに影響を及ぼすことなく行うことができます。例えば、Sandbox上でテーブルを削除してもメインのクラスタ上では削除されません。その逆も同様です。

Sandboxは次の例など多くのユースケースをサポートします。

  • 新しいクラスタを作成してデータをロードすることなしにVerticaの新しいバージョンをテストする。
  • メインクラスタの一貫性に影響を及ぼすことなく新しい機能を試す。
  • 別のチームにデータを共有する。

Sandboxは必要なクリーンアップ処理を行うことで、再度メインクラスタに参加させることができます。

Apache Kafka連携

kafka_conf_secretパラメータ

kafka_conf_secretパラメータを用いて、VerticaとKafkaの連携の際にrdkafkaライブラリに機密性の高い情報を渡さなければならない場合、それを隠すことができます。Verticaはkafka_conf_secretパラメータで渡された情報をログに出力したり、システムテーブルに格納することを行いません。このオプションは、kafka_confパラメータを持つツールおよびファンクションで使用できます。

データロード

Object Store上のExternal Tableの最適化

External TableがObject Store(S2, GCS, Azure)に格納されているデータを使用するに、データが多くの階層を持つパーティショニングがされている場合、パフォーマンスに影響を与える場合があります。クエリがExternal Table上のデータを選択して取得し、かつ多くのディレクトリ階層を用いてパーティショニングされている場合にパフォーマンスを改善するために、ObjectStoreGlobStrategy設定パラメータを使用することで異なった方法でパーティショニングされたデータを読み込むことができます。

Apache Icebergのサポート

Apache Icebergに格納されたParquetデータを用いたExternal Tableを作成できます。Icebergのテーブルはデータファイルとスキーマ情報を持つメタデータから構成されます。他のExternal Tableとは異なり、Icebergを用いたExternal Tableはカラム定義を記述する必要はありません。クエリ実行時にIcebergのメタデータからカラム定義を読み込みます。

機械学習

モデルバージョン管理

モデルバージョン管理は、データベースに登録されたモデルの状態を追跡、管理するための仕組みを提供します。これにより、複数のユーザが個々のアプリケーションで使用するモデルの候補を登録できる環境を構築できます。dbadminユーザとMLSUPERVISORロールを持つユーザがすべての登録されたモデルの状態を管理、変更できます。

ポアソン回帰

Verticaはポアソン回帰アルゴリズムをサポートします。ポアソン回帰は線形回帰、ロジスティック回帰の代わりとして使用され、特に予測値の範囲が正数の場合に有効です。

自己回帰和分移動平均(ARIMA)

Verticaは時系列分析のための自己回帰和分移動平均(AutoRegressive Integrated Moving Average / ARIMA)モデルをサポートします。ARIMAモデルは自己回帰モデルと移動平均モデルを組み合わせたもので、時系列分析の結果と以前の予測の誤りから将来の予測を行います。

パーティショニング

PARTITION ROWを用いた1:多変換のウィンドウパーティショニング

以前は、ウィンドウパーティショニングは1:1の分析ファンクションでのみ使用できました。このリリースでは、PARTITION ROW構文を使用することでウィンドウパーティショニングを1:多の変換ファンクションで使用できるようになります。

パフォーマンス向上

パーティショニングされたProjectionのRefresh

以前は、新しく作成されたProjectionまたは変更されたProjectionはすべてのデータのRefreshが完了するまではクエリに使用されることはできませんでした。このリリースでは、パーティションテーブルのProjectionをRefreshする際、例えばすでにデータを持つテーブルのProjectionを作成した場合、最も高いKeyの範囲を持つパーティションのデータからRefreshを行います。このパーティションのRefreshが完了した後、Verticaは次に高い範囲のパーティションをRefreshします。この処理はすべてのパーティションのRefreshが終わるまで繰り返されます。Refreshが行われている間、すでにRefreshが完了しているパーティションはクエリに使用されることができます。

リソース管理

ユーザのデフォルトResource Pool

DefaultResourcePoolForUsers設定パラメータを用いて新しく作成されたユーザに割り当てるデフォルトのResource Poolを指定できるようになります。

SDK

1:多のUDTFとPARTITION ROW

C++またはPythonで書かれたSingle-phase User-Defined Transform Functions(UDTFs)はisExploderクラスプロパティをサポートします。これは、UDTFが1:多の変換を行うことを示します。もしこのプロパティがgetTransformFunctionPropertiesファクトリメソッドでTrueに設定されると、ファンクションはOVER(PARTITION ROW)句を使用し、UDTFを実行する際にOVER句の指定が不要になります。

セキュリティ・ユーザ認証

OAuth

JSON Web Token validation(keycloak限定)

VerticaはIdentity Providerに問い合わせることなく、OAuth tokenの署名者の確認を行うことでOAuth tokenの確認をすることができるようになります。この機能を有効にするためには、'oauth'のAuthenticationを作成し、JWT validationのパラメータを指定する必要があります。

Just-in-time User Provisioning(keycloak限定)

Just-in-time(JIT) User Provisioningは認証されたユーザを自動的に作成し、Identity Providerから提供された情報を基にロールを割り当てることができます。JIT User Provisioningが有効化されたOAuth token Authenticationでクライアントが認証された際、Verticaは自動的にユーザを作成(そのユーザがすでに存在していない場合のみ)し、Identity Providerによって指定されたロールを割り当てます。

JDBCカスタムトラストストア

JDBCを用いたクライアントとIdentity Providerの接続を安全にするためにカスタムトラストストアを使用することができます。これは、Identity Providerの証明書が信頼された認証局によって署名されていない場合に便利です。

ストアドプロシージャ

スケジュール実行

ストアドプロシージャの自動実行をスケジュールできるようになります。これは、データベース操作のロギング、権限の削除、ロールの作成などの様々なタスクの自動化に役立ちます。

オーバーロードされたストアドプロシージャ

EXPORT_OBJECTSを用いてオーバーロードされたストアドプロシージャの中から特定の実装のソースコードを出力できるようになります。

User-Defined Extensions

パラメータに渡された機密情報の削除

次の条件に当てはまるパラメータおよびセッションパラメータの値はログおよびQUERY_REQUESTSなどのシステムテーブルから自動的に削除され、記録されません。

  • パラメータ名が「secret」または「password」のもの
  • パラメータ名が「_secret」または「_password」で終わるもの


その他の変更点については製品ドキュメントのVertica 12.0.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/docs/12.0.x/HTML/index.htm

タグ:
カテゴリ: