Vertica 10.1がリリースされました。このリリースはVerticaが持つ分析データベース技術をさらに一歩進めるものとなります。Vertica 10.1では引き続き皆様にお約束していた様々な機能をお届けいたします。例えば、最もご要望の声の高かった機械学習アルゴリズムXGBoostの実装、Management Consoleの改善によるクラウド環境におけるVerticaの管理作業の簡易化、ParquetフォーマットでのComplex Data Typeの完全なサポート、Eon ModeによるGoogle Cloud Platformのサポート機能拡張、Microsoft AzureでのEon Modeベータ版の提供開始、などです。今回のVerticaの進化も是非お試しください。
Vertica 10.1の主な新機能および変更点は以下の通りです。
Backup, Restore, Recovery, Replication
Eon Modeにおけるオブジェクトレベルバックアップ・リストアのサポート
Eon Modeにてオブジェクトレベルのバックアップ・リストア・レプリケーションを行えるようになります。個々のスキーマやテーブルのバックアップ、完全バックアップまたはオブジェクトレベルバックアップから個々のテーブルやスキーマのリストア・レプリケーションができるようになります。
Google Cloud Storageのサポート
Google Cloud Platform上のEnterprise ModeとEon ModeにおいてGoogle Cloud Storageを用いたバックアップ・リストアができるようになります。サポートしている操作は、完全バックアップ・完全リストア・部分リストア・オブジェクトレベルバックアップ・オブジェクトレベルリストアです。
Google Cloud Storageを用いたバックアップ・リストアはGoogle Cloud Platform上で稼働するデータベースに限って使用することができます。例えば、AWSでCommunal Storageを用いたデータベースのバックアップ先としてGoogle Cloud Storageを使用することはできません。
設定ファイルの新しいセクション
設定ファイルの[S3]セクションが[CloudStorage]セクションに置き換わります。また、S3に関する設定パラメータの名称が「s3_<パラメータ名>」から「cloud_storage_<パラメータ名>」に変更になります。すでに既存のS3の設定パラメータをお使いのデータベースにおいては10.1でも現行通りに動作します。
設定ファイルの新しいパラメータ
設定ファイルに次のパラメータが追加されます。
- [CloudStorage]セクション:
- cloud_storage_ca_bundle 使用するSSLサーバ証明書の指定
- cloud_storage_concurrency_delete クラウドストレージ上のファイルを削除する際に使用するスレッドの数の指定
- [Transmission]セッション
- concurrency_delete Enterprise Modeにおけるファイルを削除する際に使用するスレッドの数の指定
新しいサンプル設定ファイル
Enterprise ModeおよびEon Modeにおいてサポートするクラウドストレージを用いたバックアップ・リストアを行うことを想定した設定ファイルのサンプルとしてbackup_restore_cloud_storage.iniが追加されます。
データベース管理
ノードヘルスチェックにおけるローカルStorage Locationの確認
ノードヘルスチェック時に次のStorage Locationに対してVerticaのプロセスが読み書きできることを自動的に確認するようになります。
- TEMP, DATA
- TEMP
- DATA
- DEPOT
データ型
Parquetファイルを用いたExternal TableにおけるStruct型・Array型の複合型のサポート
ParquetフォーマットのカラムはStruct型を持つことができVerticaではROW型で表します。また、Array型はVerticaではARRAY型で表します。Parquetファイルを用いたExternal Tableにおいて、これら2つのデータ型の複合型を定義できるようになります。例えば、Array型をフィールドに持つStruct型やStruct型のArray、などです。
ORCファイルによるComplex Data Typeのサポートの開始
ORCファイルを用いたExternal Tableにおいて、ROW型を用いてORCのStruct型を表すことができるようになります。構文はParquetファイルと同様です。この変更に伴い、以前から用いられていたStruct型のフィールドをカラムに展開する方法は非推奨となります。
Array型およびMap型については、External Tableのカラムとして定義することはできますが、現時点ではデータの抽出はできません。
Eon Mode
Depotデータの固定の拡張
Depotのデータの固定はTable・Partitionの単位で可能でしたが、10.1からProjectionの単位でも固定することができるようになります。
既存のSubclusterの複製
既存のSubclusterの設定を複製して新しいSubclusterを作成できるようになります。Subclusterをadmintoolsのdb_add_subclusterツールで作成する際、新しい「--like」オプションを用いることで元のSubclusterと同等の設定を用いることができます。この機能により、Secondary Subclusterを用いてクエリのスループットを向上させる際の手順が簡素化できます。
Apache Kafka Integration
Notifierの暗号化
10.1よりNotifierによるデータのやりとりを暗号化できるようになります。
Spark Integration
SparkとScalaの新しいバージョンのサポート
Spark Connectorのバージョンが新しくなります。これにより、Scala 2.12とSpark 2.4.1/3.0の組み合わせがサポートされます。
データロード
Parquetメタデータのキャッシュ
SQLステートメントの実行計画を作成する際に読み込んだParquetファイルのメタデータをキャッシュし、実行時に再利用するようになります。
このキャッシングにより、読み込み回数の削減・ネットワーク遅延の削減が期待されます。ParquetファイルがAPI実行回数に基づいて課金されるファイルシステムの場合、コストの削減にも貢献できます。
このキャッシュにはローカルファイルシステムのTEMP Storage Locationが用いられます。
JSON・Avroパーサーによる配列のサポート
JSON・Avroのデータをロードする際、一次元の配列をそのまま読み込むことができるようになります。
Parquetパーサーによる緩いスキーママッチングのサポート
デフォルトでは、Parquetパーサーは厳密なスキーママッチングを使用します。データの読み込みはParquetファイルのすべてのカラムを定義された順番通りに行う必要があります。これに加え、緩いスキーママッチングを用いることができるようになり、必要なカラムのみを読み込むことができます。緩いスキーママッチングでは、カラムの定義順の代わりにカラム名を用います。そのため、テーブルのカラム名はそれに合わせる必要があります。また、データ型は同一またはキャスト可能なものである必要があります。
機械学習
XGBoostのサポート
10.1より、大規模なデータセットの回帰・分類に使われる教師あり学習のアルゴリズムの1つであるXGBoost(eXtreme Gradient Boosting)をサポートします。XGBoostアルゴリズムとそれに用いられる関数・モデルは完全にVertica内に実装されており、外部のツールは一切必要ありません。
Soundexのサポート
Verticaは、英単語を4つの文字コードに変換する音声近似アルゴリズムの1つであるSoundexをサポートします。この文字コードは同音異義語で共通となることが理想の結果です。Soundexは例えば、「Smithと似た名前の人を探して(Smytheなど)」のような質問に対して有効です。
Management Console
パスワードセキュリティの向上
Management Consoleのユーザに対するパスワードおよびログインセキュリティの制約に次の新しい要件を設定できます。
- Password length
- Password minimum / maximum lifetime
- Login attempt limits
- Account lockout duration
- Security questions
セルフサービスパスワードリセット
初回のManagement Consoleへのログイン時にSecurity questionsを設定できます。これにより、Management Consoleのログイン画面にあるForgot Password機能を用いてパスワードをリセットすることができます。
Amazon Web Services上での新しいデータベース作成ウィザード
AWSでEon Modeのデータベースを作成するための新しいウィザードが提供されます。このウィザードはより直感的に利用できるデザインになっています。
AWSおよびGCP上でのSubcluster作成時のインスタンスオプション
AWSまたはGoogle Cloud PlatformでSubclusterを作成する際、今までは既存のインスタンスと同じタイプ、同じストレージ設定を使用する必要がありました。10.1からはこの制約がなくなり、業務要件に合わせたSubclusterを作成できるようになります。
AWS Cloud Formation Templateを用いたデータベース作成時のテストデータのロード
AWS Cloud Formation Templateを用いて4ノードのデータベースを作成する際、TestDriveのテストデータをロードするオプションが追加されます。
クエリ実行管理
IGNORECONSTヒントの新しいエイリアス
Directed queryにおいてIGNORECONSTのエイリアスとして「:v」がサポートされます。
SDKの拡張
Scalar Functionによる複数戻り値のサポート
User-decided Scalar Function(UDSF)が複数の値を返すことができるようになります。複数の値を返す際はROW型を用います。
セキュリティ・ユーザ認証
デフォルトで使用されるパスワードハッシュアルゴリズムの変更
MD5によるパスワードのハッシュは非推奨となり、今後のリリースで廃止されます。 これに伴い、SecurityAlgorithmパラメータのデフォルト値はSHA512に変更されます。 SecurityAlgorithmパラメータのNONE値は削除されました。これまではNONEを指定すると以前のデフォルト値であったMD5を使用していました。NONEを指定したデータベースを10.1にアップグレードすると、SecurityAlgorithmパラメータの値はMD5に変更されます。
新しいPROFILEのパラメータ
次のパラメータがPROFILEに追加されます。
- PASSWORD_MIN_CHAR_CHANGE パスワードを変更する際、以前のパスワードと最低限違わなければならない文字数の指定
- PASSWORD_MIN_LIFE_TIME パスワードを変更できるまでの最低日数の指定
事前にハッシュされたパスワードのユーザへの割り当て
CREATE USER文およびALTER USER文において、事前にハッシュされたパスワードを受け付けられるようになります。
CA Bundle
CREATE CA BUNDLE文を用いてCA Bundleを作成できるようになります。
SQLファンクション・ステートメント
WITH句の再帰処理
WITH句においてRECURSIVEオプションをサポートします。WITH RECURSIVE句はUNIONまたはUNION ALLのクエリを反復処理させることができます。これは、上司部下の関係や木構造を持つ分類体系などの自己参照データを処理する際に便利です。
IMPLODEファンクション
IMPLODEファンクションは1つのカラムの複数の値から1つの配列データを返します。これは10.0で実装されたEXPLODEファンクションの逆の動きです。この2つのファンクションを一緒に用いることで、配列データを展開し、データをフィルタリングさせ、配列データに戻すといったような一連の処理を行うことができます。
EXPLODEファンクションによる複数配列の展開
EXPLODEファンクションは一度の呼び出しで1つ以上の配列を展開できるようになります。また、返すカラムの順番は必ずしも配列データが先頭である必要もなくなります。
CREATE OR REPLACE VIEWに必要な権限
CREATE OR REPLACE VIEW文を用いてView定義の置き換えを行う際、以前はViewの所有者である必要がありましたが、今後はViewに対するDROP権限とViewを作成するSchemaに対するCREATE権限の2つが必要条件となります。
サポートされる外部データ型
favroparser・KafkaAvroParserによるAvro論理型
Verticaは次のAvro論理型をサポートします。
- Decimal
- Date
- Time
- Timestamp
- Duration
サポートプラットフォーム
Management ConsoleはMicrosoft Edgeをサポートします。
テーブル
テーブルカラム定義の上限
Verticaのテーブルは最大9600のカラムを持つことができます。
SET USING/DEFAULT句におけるサポートする式の拡張
Flattened TableのSET USING/DEFAULT句に記述できる式が拡張され、式の中でサブクエリが返す値と自身のカラムの値を同時に使用できるようになります。
User-Defined Extensions
ファンクション引数の上限
User-defined functionにおいて9600個までの引数をサポートします。
その他の変更点については製品ドキュメントのVertica 10.1.x New Features and Changesをご覧ください。是非、Verticaの最新バージョンをお試しください。
Premium Edition(製品版)のダウンロードサイト:https://support.microfocus.com/downloads/swgrp.html
Community Editionのダウンロードサイト:https://www.vertica.com/download/vertica/community-edition/