Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Vertica 9.1.0 新機能

8 views

Published on

Vertica 9.1.0 新機能

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Vertica 9.1.0 新機能

  1. 1. Vertica 9.1.0 新機能のご紹介 マイクロフォーカスエンタープライズ株式会社 Vertica事業部 May, 2018
  2. 2. 概要  計算とストレージアーキテ クチャー機能の分離 ポイント  クラウドの活用  可変ワークロードに対応す るためのインフラストラク チャーの管理が容易 概要  Voltage SecureDataとの統合 の改善 ポイント  Vertica内外の機密データの 保護が向上 概要  インデータベース機械学習 機能の新機能 ポイント  時間、相関、不安定なモデ ルを削減する最適な特徴を 選択  新しいアルゴリズムと評価 関数がマーケットアプリを 拡張 Eonモード 製品版へ セキュリティ 統合の強化 機械学習の 新機能 Vertica 9.1 – 3つの主要なエンハンスメント 1 2 3 バージョン9.1の新機能については、下記をご覧ください: https://my.vertica.com/docs/9.1.x/HTML/index.htm#Authoring/NewFeatures/9.1/9.1.0/NewFeaturesandChangesIn9.1.htm
  3. 3. その他の 9.1新機能  ライセンス - AWSマーケットプレース上の時間単位計上(5/8リ リース予定) - 外部テーブル(ORC/Parquet)のライセンス監視追 加  アップグレード前にソート順が不一致のバ ディープロジェクションを修正するスクリプト を実行  パフォーマンスの向上 - Distinct集計処理の高速化( ResegmentMerge) - ワイドテーブルに対するMergeout処理の高速化  データロード時のS3セッションパラメーターを サポート  マネージメントコンソール - 外部テーブルのデータ量モニタリング - Eonデータベースのプロビジョニングとリバイブ  S3上へのシェープファイルのインポート/エク スポート対応  DBオブジェクトの権限などの変更履歴テーブ ル追加  Hadoopトークンベースの認証サポート  SparkコネクターのVertica RPMへの同梱  KafkaパーサーがFlexパーサーと同機能保持。 Verticaをインストール時にKafkacatユーティリ ティー追加  SDK - C++ と Java のユーザー定義関数のキャンセルをサ ポート - Python Udxがユーザー定義変換関数をサポート
  4. 4. Eonモード
  5. 5. クラウド上のデータウェアハウスのためのEonモード Amazon Microsoft Azure Google Cloud Amazon S3 第1世代 クラウドをデータセンターとして使用 (IaaS) 第2世代 計算とストレージの分離 ユースケース • データセンターコストの節約 • 高速デプロイ コスト削減 • ハードウェア減価償却 • ハードウェアメンテナンス • ソフトウェアの購入または減価 償却 • ソフトウェアメンテナンス • 消費電力 • データセンターの床面積 • プロビジョニング時間 • バックアップインフラス トラクチャー • バックアップメディア • 調達コスト ユースケース • クラウドエコノミクスの活用 • 多様なワークロード コスト削減 • ピークワークロードのためのプロビジョニングのコスト • ワークロードに余裕がある間も課金 • 使用していないときの計算用のコスト • 休止状態ではない • 新しいワークロードを処理するためのデータの移動 • 新しいサブクラスターをスピンアップするのではない
  6. 6. SUN MON TUES WED THU FRI SAT x1 x2 x4 コンピューティング キャパシティー データロード アドホック分析 四半期クローズレポート ダッシュボード Eonモードは様々なワークロードに適用可能
  7. 7. 新しいレベルでのワークロードの分離と柔軟性 サブクラスター機能、異なる可変のワークロードに使用される同じデータ ダッシュボード 夜間データロード 月末報告 アドホックデータサイエンス S3 それぞれのアクティビティにはそれぞれ 独自のサブクラスターが用意されており、 必要に応じてジョブに最適なインスタン スタイプをプロビジョニング
  8. 8. Eonモードを使用するケース  AWS上での使用  変動があるワークロード - 需要が増えた場合に、データベースを定期的にスケールアップしたい場合 - 使用頻度が低い間に定期的にスケールダウンしたい場合 - プロジェクトあるいはワークロードのフェーズ間でシャットダウンおよび休止状態にしたい場合  簡単なAWSマーケットプレイスへのアクセス - 時間課金: - Redhat: https://goo.gl/DMcR5M - Amazon Linux: https://goo.gl/q4iGG8 - BYOL/Community: - Redhat: https://goo.gl/Y7umeA - Amazon Linux: https://goo.gl/Bt4njL
  9. 9. Node Optimizer Execution Engine Depot Storage API Node Optimizer Execution Engine Depot Storage API Node Optimizer Execution Engine Depot Storage API Vertica Eonモードのアーキテクチャー Shared Storage
  10. 10. Eonモードのコンセプト  Communal storage(共用ストレージ) – すべてのノードが使用するROSファイル用の集中化された 永続性のある格納場所(現時点では、AWSのS3)。データベース容量は、計算ノード上のディス ク容量によって制限されません  Depot(デポ) – 高パフォーマンスを提供するために、最近アクセスされたROSデータを格納する 計算ノード上のキャッシュレイヤー。 デポは、共用ストレージへの経路でデータをキャッシュす ることにより、データのロードを高速化します  Shards(シャード) – 共用ストレージ内のデータは、「シャード」と呼ばれる部分に分割されま す。各計算ノードは、カバレッジと冗長性を確保するために1つ以上のシャードに紐付けられま す  Sub-Cluster(サブクラスター) – クエリセット(例:データロード)が他のクエリ(例:ダッ シュボード)に影響を与えないように、アクティビティ分離のために「フォルトグループ」に よってノードをサブクラスタリングすることができます  シャードとサブスクリプションの詳細情報: https://my.vertica.com/docs/9.1.x/HTML/index.htm#Authoring/Eon/ShardsAndSubscriptions.htm  Eonアーキテクチャーのドキュメント: https://my.vertica.com/docs/9.1.x/HTML/index.htm#Authoring/Eon/Architecture.htm%3FTocPath%3DUsing%2520Eon %2520Mode%7CEon%2520Mode%2520Overview%7C_____1
  11. 11. Eonモードでまだサポートされていない機能  プロシージャー  一時テーブルに対するPK、FK、ユニーク制約の有効化  ストレージポリシー  KV(ヒント)クエリ  ワークロードアナライザー  Compact_storage  グローバルの一時テーブル  MCの拡張モニタリング
  12. 12. Eonモードでサポートされない予定の機能  WOS  moveout  バックアップとリストア(vbr.pyは非サポート)  リカバリ  エラスティッククラスター(ローカルセグメンテーション、スケーリングファ クター、リバランスクラスター、リバランステーブルを含む  プリジョインプロジェクション  MinMaxObject と rollover_minmax_object  スタンバイノード  Group化されたROS
  13. 13. アナリティクス
  14. 14. 機械学習ワークフローの強化 Business Understanding Data Analysis & Understanding Data Preparation Modeling Evaluation Deployment Machine Learning Speed ANSI SQL Scalability Massively Parallel Processing Deploy Anywhere Outlier Detection Normalization Imbalanced Data Processing Sampling Missing Value Imputation And More… SVM Random Forests Logistic Regression Linear Regression Ridge Regression Naive Bayes Cross Validation And More… Model-level Stats ROC Tables Error Rate Lift Table Confusion Matrix R-Squared MSE In-Database Scoring Speed Scale Security Pattern Matching Date/ Time Algebra Window/ Partition Date Type Handling Sequences And More… Sessionize Time Series Statistical Summary SQL SQLSQL SQLSQL UNIFIED PLATFORM V9.1 Enhancements V9.1 エンハン スメント
  15. 15. 主成分分析(PCA)  課題: 多くの相関性のある特徴量(Feature)を利用した機械学習モデルを作成する場合、 長時間のトレーニング時間が必要になり、精度の低いモデルが作成される課題があっ た。また、多くの特徴量がある場合、可視化するのが困難であった。  解決策: 主成分分析(SVDベース)は、データ特徴量を削減するのによく利用される手 法であり、Verticaのインデータベースに機能を組み込んだ。  長所: リニアに相関のない一連の特徴量の新しいセットを手に入れ、保持したい特徴量 の数を直接選択することができるようになった。あるいは、保持したい分散のカット オフ値を選択し、必要なコンポーネント数が関数から分かるようになった。これによ り、アルゴリズムの実行時間が短縮でき、特徴量とコンポーネントを可視化しやすく なった。  使用例: 各国のGDPPとCO2排出量のデータ(1970~2010年)とHDI(84 カラム)のテーブルを2列まで削減し、2次元で視覚化 特徴量の次元削減でモデル精度向上
  16. 16. Original data PCA() function PCA model Transformed data APPLY_PCA(… num_components=k) APPLY_INVERSE_PCA() function Approximated data APPLY_PCA(… num_components=k) New data Training function (e.g. LOGISTIC_REG, RF_CLASSIFIER) Predict function (e.g. PREDICT_LOGISTIC_REG, PREDICT_RF_CLASSIFIER) Predicted values (e.g. will user click the ads) Model Transformed new data n rows, p cols n rows, k cols PCA/SVDの活用シーン
  17. 17. 9.1で追加された評価関数  ROCに基づくAUC(Area-Under-Curve)評価機能  F1スコア評価関数を用いたPR曲線(Precision-Recall-Curve) Confusion Matrix for Binary Classifier
  18. 18. AUC(Area-Under-Curve)と ROC曲線  一般的に、ROC曲線は、分類器の出力を調べるために2進分類の評価に使用  ROC曲線は、異なる閾値に対する真陽性率と偽陽性率との間のトレードオフを示す  真陽性率が高く、偽陽性率が低いほど良い  AUCがより大きい場合、通常良いとされる(最大値は1) 𝑻𝒓𝒖𝒆 𝑷𝒐𝒔𝒊𝒕𝒊𝒗𝒆 𝑹𝒂𝒕𝒆 = 𝑇𝑟𝑢𝑒 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒𝑠 𝑇𝑟𝑢𝑒 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒𝑠 + 𝐹𝑎𝑙𝑠𝑒 𝑁𝑒𝑔𝑎𝑡𝑖𝑣𝑒𝑠 𝑭𝒂𝒍𝒔𝒆 𝑷𝒐𝒔𝒊𝒕𝒊𝒗𝒆 𝑹𝒂𝒕𝒆 = 𝐹𝑎𝑙𝑠𝑒 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒𝑠 𝐹𝑎𝑙𝑠𝑒 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒𝑠 + 𝑇𝑟𝑢𝑒 𝑁𝑒𝑔𝑎𝑡𝑖𝑣𝑒𝑠
  19. 19. F1スコア評価関数を用いたPR曲線  𝑷𝒓𝒆𝒄𝒊𝒔𝒊𝒐𝒏 = 𝑇𝑟𝑢𝑒 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒𝑠 𝑇𝑟𝑢𝑒 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒𝑠+𝐹𝑎𝑙𝑠𝑒 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒𝑠  𝑹𝒆𝒄𝒂𝒍𝒍 = 𝑇𝑟𝑢𝑒 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒𝑠 𝑇𝑟𝑢𝑒 𝑃𝑜𝑠𝑖𝑡𝑖𝑣𝑒𝑠+𝐹𝑎𝑙𝑠𝑒 𝑁𝑒𝑔𝑎𝑡𝑖𝑣𝑒𝑠  F1-Score is the harmonic mean:  𝑭𝟏 = 2 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 × 𝑅𝑒𝑐𝑎𝑙𝑙 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 + 𝑅𝑒𝑐𝑎𝑙𝑙
  20. 20. F1スコア評価関数を用いたPR曲線  Precision-Recallは、クラスが非常に不均衡な場合の予測の成功の尺 度  PR曲線は、異なる閾値に対する精度とリコールのトレードオフを 示す  両方のスコアが高いことは、分類器が正確な結果(高精度)を返 していることと、肯定的な結果が大多数であること(高いリコー ル)を示す  F1スコアは、精度とリコールの調和平均。精度とリコールの両方が 高い場合、分類器のF1スコアは高くなる
  21. 21. Voltage SecureData との統合
  22. 22. VerticaとVoltage SecureDataの統合 9.1まで Public Network HDFSCloudBackups  LDAP、GSS/Kerberosなどによる認証  OpenSSLによるクライアント/サーバ通信  柔軟なユーザー/ロール構築  列レベルのアクセス制御 UDx for Voltage UDx for Voltage Protect at Load - “Copy” or “Insert” Secure Access Data - “Select” + 9.1から  クラスタ内の各ノードでデータロード時に並列に暗号化  保護されたデータの分析と処理  権限が与えられたユーザーのアクセスで復号化 これはVerticaのみの拡張。 ユーザーはVoltage SecureData Server を所有する必要あり。 機密データを保護
  23. 23. 統合の概要  Voltage SecureData統合関連のドキュメント: https://goo.gl/a1LtpS  テーブルのスキーマやダッシュボードを変更せずに暗号化可能  機密度が高いPII(クレジットカード番号、社会保障番号など)に重点を置 く  GitHub上のVoltage Java UDXの置き換え  Verticaクラスターは1つのみのSecureDataクラスターとやりとり可能  より多くの列を暗号化するためのパフォーマンスの影響。すべてのデータ に対してハードウェアレベルの暗号化を行う方が良い。
  24. 24. 機密データを保護された列に変換するために、 SecureData UdxをFPE(フォーマット保持暗号化)に使用 COPY users(name, ssn_raw FILLER VARCHAR(11), cc_num, ssn AS VoltageSecureProtect(ssn_raw USING PARAMETERS format='ssn', config_dfs_path='/voltagesecure/conf')) FROM 'users.csv' DELIMITER ','; SELECT * FROM users; name | ssn | cc_num -------+-------------+--------------------- Alice | 613-52-2222 | 1111-2222-3333-4444 Bob | 284-46-3333 | 2222-3333-4444-5555 Carol | 019-79-4444 | 3333-4444-5555-6666 (3 rows) CREATE ACCESS POLICY ON users FOR COLUMN cc_num CASE WHEN NOT has_role('trusted_app') THEN VoltageSecureProtect(cc_num USING PARAMETERS format='cc', config_dfs_path='/voltagesecure/conf') ELSE cc_num END ENABLE; SELECT * FROM users; name | ssn | cc_num -------+-------------+--------------------- Alice | 613-52-2222 | 1111-10PD-S98R-LK5J Bob | 284-46-3333 | 2222-JT3K-UU13-VM1V Carol | 019-79-4444 | 3333-4DBC-QEV1-H79B (3 rows)
  25. 25. SecureData UDxを使用して保護された列を復号化 SELECT VoltageSecureProtectAllKeys('1111-2222-3333-4444' USING PARAMETERS format='CC') OVER (); data | protected ---------------------+--------------------- 1111-2222-3333-4444 | 1111-AOJV-H6OM-6RJD 1111-2222-3333-4444 | 1111-FPMR-ZW7J-S6EO 1111-2222-3333-4444 | 1111-10PD-S98R-LK5J (3 rows) SELECT name, ssn FROM users_secure u JOIN (SELECT VoltageSecureProtectAllKeys('1111-2222-3333-4444' USING PARAMETERS format='cc', config_dfs_path='/voltagesecure/conf') OVER ()) pak ON u.cc_num = pak.protected; name | ssn -------+------------- Alice | 613-52-2222 (1 row)
  26. 26. ライセンス
  27. 27. 外部テーブル(ORC/Parquet)のライセンス監視追加 SELECT audit_license_size(); audit_license_size ---------------------------------------------- Raw Data Size: 0.00GB +/- 0.00GB License Size : 500.00GB Utilization : 0% Audit Time : 2018-03-26 17:39:07.236713-04 Compliance Status : The database is in compliance with respect to raw data size. ... (1 row) SELECT database_size_bytes, audited_data FROM license_audits ORDER BY audit_end_timestamp DESC LIMIT 4; database_size_bytes | audited_data ---------------------+-------------- 150 | Total 150 | External -- NEW audited data type 0 | Flex 0 | Regular (4 rows)
  28. 28. アップグレード
  29. 29. アップグレード前にソート順が不一致のバディープロ ジェクションを修正するスクリプトを実行  異なるソート順のプロジェクションはバディーではない  すでに非推奨はアナウンス済みであったが、9.1で完全に非対応  ノードダウン時の更なる性能改善のために完全に削除する必要あり  詳細情報は下記を参照ください: - https://my.vertica.com/9-1-pre-upgrade-script/
  30. 30. パフォーマンスの向上
  31. 31. Distinct集計処理の高速化
  32. 32. パフォーマンス例
  33. 33. ワイドテーブルに対するMergeout処理の高速化 9.1より前 9.1以降 200MB, 1スレッド 5%, マルチスレッド 毎回1つのコンテナを開く 行数が十分に大きい場合はいつでも複数のコン テナを開く いくつかのタプルを読む より多くのタプルを読む コンテナを何度も閉じて再オープンする コンテナを閉じて再オープンする回数はより少 ない 3 • ワイドテーブルに対するmergeoutの性能を改善 • Generalプールでクエリを実行中のユーザーは、メモリ依存のクエリの場合、遅いと感じる可能性あり。その 場合、"alter resource pool tm memorysize '200M';"でtmプールのメモリサイズを変更することによってパフォーマ ンスが変化するか確認可能 • ユーザーは、ニーズに合わせてこれらのプールを調整可能 • 関連ブログ: https://my.vertica.com/blog/improve-efficiency-mergeout-wide-tables/
  34. 34. パフォーマンス例 3
  35. 35. マネージメントコンソール
  36. 36. MCにおけるテーブルの視覚化:バージョン9.1前後 • 9.1より前 • Table Utilizationアクティビティページから、ネイティブのVerticaテーブルの状態を確 認可能 • HCatalogテーブル(Apache HiveデータをHCatalog経由でVerticaにインポート)を表示 していなかったため、Verticaの外部テーブルの情報は制限あり • 9.1以降 • Table Utilizationページが次の情報を表示するように • Vertica外部テーブル(Vertica上で作成された外部テーブル) • Hcatalogテーブル • MCのInfastractureページ(Storage Viewタブ)にテーブル情報を追加することで、 テーブル情報へのアクセスが簡単に
  37. 37. Infrastructure | Storage view: データベースのVertica外部 テーブルを表示 MCはStorage Viewページに外部テーブルおよび/またはHcatalogの両方を表示。MCは、情報について次の2つの テーブルを照会:v_catalog.hcatalog_schemataおよびv_internal.external_table_details フィルタリングと自動サイズ変更 のオプションが利用可能
  38. 38. Infrastructure | Storage view: データベースのHcatalogの 詳細情報表示 v_catalog.hcatalog_schemata を参照することにより、Hcatalogの詳細情報をMCが表示
  39. 39. ユーザー定義関数
  40. 40. Pythonのユーザー定義関数  N行をM行にマッピングする関数 - もっとも一般的なタイプの関数  C++、Java、Rではすでにサポート済み - 9.1ではPythonに追加  他のPythonユーザー定義関数と同じものをインストール: - CREATE LIBRARY pylib AS ‘path-to-library’ LANGUAGE ‘Python’; - CREATE TRANSFORM FUNCTION TopKPerPartition AS NAME ‘TopKPerPartitionFactory’ LIBRARY pylib;
  41. 41. パフォーマンス例(C++と比較)
  42. 42. Thank you

×