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 8.1.0 新機能

5 views

Published on

Vertica 8.1.0 新機能

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Vertica 8.1.0 新機能

  1. 1. HPE Vertica 8.1 May, 2017
  2. 2. Deploy and Analyze Anywhere エクサバイトスケールのパフォーマンス Unified architecture delivers frictionless data movement and orchestration for thousands of concurrent users In-Database分析機能の拡充 Applied Machine Learning, geospatial analytics, and more クラウドおよびオープンソースとの連携強化 MSFT Azure cloud support, native Hadoop ORC and Parquet readers enable data analysis-in-place, optimized Spark and Kafka integration Best-Fit Engineering 妥協なきビッグデータ分析プラットフォームで データ指向の組織を支援 HPE Vertica 8.0.0 “Frontloader” 概要
  3. 3. Vertica Analytics Platform v8.1の主要なアップデート エクサバイトスケールの パフォーマンス – フラッタンテーブル 非正規化テーブルで抽象化するこ とで、正規化されたスキーマへの クエリ処理と比較し、高速化やマ ネジメントを簡単に。 – 高速ロード – 複数ノードで、ス レッド処理の並列化で高速化 – セッションレベルのメモリ効率化 クエリオブジェクトレベルでのラ イフタイムで管理 – SQLプランのoptimizer directions – ダイレクトテットクエリが複雑な サブクエリJoinや分析をサポート – Management Console カタログサイズのモニター&ア ラート In-Database分析機能の拡充 – Spark 2.0 / Scala 2.11対応 – Kafka schema registryサポート フレキシブルなデータパイプライ ンの運用 – Kafkaパイプラインからのロード時 のマルチノードスレッドの利用 – Hadoopラックアウェアネス ネットワーク利用の効率化、 Verticaパフォーマンスの向上 – Hadoopクラスターダウン時のクエ リキャンセル – Vertica on Azure 15ノードクラスターテンプレート クラウドおよびオープンソース との連携強化 – サポートベクターマシーン(SVM) 二項分類サポート – データ欠損値の補完 – 近似パーセンタイル データ探索の効率化 3
  4. 4. エクサバイトスケールの パフォーマンス 4
  5. 5. フラッタンテーブル(Flattened Tables) 5 A B Fact C D Fact_ABDC Normalized Columns Denormalized Columns – 非正規化したテーブルの作成やメンテナンスを簡素化 – スタースキーマのJoin処理と比較し、高速パフォーマンスを実現 – フラッタンテーブルへのクエリ処理はJOIN処理無しで実行可能 – ディメンジョンを緩やかに更新する環境に最適 – 非正規化したデータは、ライセンス利用としてカウントしない Normalized Star-Schema De-Normalized Flattened Table
  6. 6. 正規化されたスキーマ(スタースキーマ、スノーフレークスキーマ) 6 • 巨大なファクトテーブル「W」 を中心に、いくつかのディメン ジョン(マスター)テーブル 「D, I, E, R」とリレーション • (基本は)データ重複なし 正規化スキーマ
  7. 7. 正規化されたスキーマ(スタースキーマ、スノーフレークスキーマ) 7 正規化スキーマ • 多くのJoin処理  処理コストが高く、遅い  チューニングが困難
  8. 8. チューニング:非正規化したテーブルを作成(大福帳) 8 • 多くのJoin処理  処理コストが高く、遅い  チューニングが困難 • Join処理の削減  処理コストが低く、高速  チューニング不要(削減) 非正規化 正規化スキーマ 非正規化テーブル +
  9. 9. チューニング:非正規化したテーブルを作成(大福帳) 課題 9 I. 2ステップのロード II. D, E, I, Rテーブルで更新があった場合、手動更新が必要 正規化スキーマ 非正規化テーブル +
  10. 10. Vertica 8.1 新機能:フラッタンテーブル 10 ディメンジョン(マスター)群 非正規化テーブル +
  11. 11. Vertica 8.1 新機能:フラッタンテーブル 11 I. 1ステップのロード II. D, E, I, Rテーブルに更新があった場合、 refresh_column コマンドで一括更新可能 III. ディメンジョン(マスター)とファクトのカラムの関連付けは動的にOn/Offが可能 ディメンジョン(マスター)群 非正規化テーブル +
  12. 12. 従来のテーブル定義 12 Customer dimension​ Cid​ Name​ Age​ 1​ Alice​ 25​ 2​ Bob​ 30​ 3​ Eve​ 28​ Order fact​ Order_id Cust_id Amount​ 100​ 1​ 15.00​ 200​ 1​ 1000.00​ 300​ 2​ -50.00​ 400​ 3​ 100.00​ 500​ 2​ 200.00​CREATE TABLE custDim ( cid int PRIMARY KEY, name varchar(20), age int ); CREATE TABLE orderFact ( order_id int PRIMARY KEY, cust_id int, amount numeric; ); ディメンジョン(マスター) ファクト
  13. 13. フラッタンテーブルの作り方(1)Default句 13 CREATE TABLE orderFact ( order_id int PRIMARY KEY, cust_id int, cust_name varchar(20) DEFAULT ( SELECT name FROM custDim WHERE custDim.cid = cust_id ), amount numeric; ); Flattened​ Order​ fact​ Order_id Cust_id Cust_name Amount​ 100​ 1​ Alice​ 15.00​ 200​ 1​ Alice​ 1000.00​ 300​ 2​ Bob​ -50.00​ 400​ 3​ Eve​ 100.00​ 500​ 2​ Bob​ 200.00​ Customer dimension​ Cid​ Name​ Age​ 1​ Alice​ 25​ 2​ Bob​ 30​ 3​ Eve​ 28​ CREATE TABLE custDim ( cid int PRIMARY KEY, name varchar(20), age int ); ディメンジョン(マスター) ファクト カラムを追加してデフォルト値を定義 ロード時に反映
  14. 14. フラッタンテーブルの作り方(2)SET USING句 14 Flattened​ Order​ fact​ Order_id Cust_id Cust_name Amount​ 100​ 1​ - 15.00​ 200​ 1​ - 1000.00​ 300​ 2​ - -50.00​ 400​ 3​ - 100.00​ 500​ 2​ - 200.00​ Customer dimension​ Cid​ Name​ Age​ 1​ Alice​ 25​ 2​ Bob​ 30​ 3​ Eve​ 28​ CREATE TABLE custDim ( cid int PRIMARY KEY, name varchar(20), age int ); ディメンジョン(マスター) ファクト カラムを追加してSET USING値を定義 CREATE TABLE orderFact ( order_id int PRIMARY KEY, cust_id int, cust_name varchar(20) SET USING ( SELECT name FROM custDim WHERE custDim.cid = cust_id ), amount numeric; ); ロード完了後、別コマンドで反映
  15. 15. Management Console カタログサイズのモニタリング、アラート – Management Consoleにて、カタログサイズ とそのメモリサイズをモニタリング – System adminは、カタログメモリサイズのア ラート通知を取得可能 – アラート閾値は、割り振りメモリ合計のパー センテージで設定 15
  16. 16. ノードごとのカタログサイズを確認するSQLサンプル SELECT node_name ,max(ts) AS ts ,max(catalog_size_in_MB) AS catlog_size_in_MB FROM ( SELECT node_name,trunc((dc_allocation_pool_statistics_by_second."time")::TIMESTAMP, 'SS'::VARCHAR(2)) AS ts ,sum((dc_allocation_pool_statistics_by_second.total_memory_max_value - dc_allocation_pool_statistics_by_second.free_memory_min_value)) / (1024 * 1024) AS catalog_size_in_MB FROM dc_allocation_pool_statistics_by_second GROUP BY 1,trunc((dc_allocation_pool_statistics_by_second."time")::TIMESTAMP, 'SS'::VARCHAR(2)) ) foo GROUP BY 1 ORDER BY 1; 16
  17. 17. Faster copy data load operations – スレッド並列処理を各ノードで同時実行 – 最大3倍のパフォーマンス 17 Better performance for a lot of (50) small files
  18. 18. In-Database分析機能の拡充 18
  19. 19. 8.1における機械学習に関する新機能 サポートベクターマシンへの対応/欠損値の補完 etc 19 アルゴリズム モデル訓練 予測 評価 線形回帰 ロジスティック回帰 K-means ナイーブベイズ分類器 SVM モデル管理 モデル情報のサマ リ モデル名の変更 モデルの削除 DBオブジェク トとして管理 データ準備 正規化+α データバラ ンシング サンプリン グ 外れ値(異 常値)検出 欠損値の補 完 大量データ の推定値
  20. 20. サポートベクターマシーン(SVM)アルゴリズムへの対応 過剰適合をコントロールした二項分類 – ロジスティック回帰で実行していたような二項分類を実行可能であり、さらに、 過剰適合をコントロール可能 – より大容量のデータをより高速に二項分類可能 – テキスト分類やIoT等、幅広く分野で利用可能 – 例: ローン申し込み者が、破産する可能性を収入、学歴、住宅ローンなどの ファクターから推測 20 SELECT SVM_classifier(‘my_model’, ‘applicant_data_table’, ‘chance’, ‘income, education, <…>’); モデル名 入力テーブル(トレー ニングデータ) 予測したいカラム 予測のためのカラム (予測因子)
  21. 21. 欠損値が補完可能に 欠損値に対して、平均値あるいはモードの2つの方法で補完可能 – 機械学習で使用するデータに欠損値があると精度が下がるため、欠損 値を機械的に補完する機能 – 欠損値に対して、平均値あるいはモードの2つの方法で、補完可能 – 手動でテーブルに対して欠損値を補完するような作業が必要なくなり、 Vertica内の関数で、機械的に欠損値を補うことが可能 – 例: 体重、性別、サッカーをするかどうかのデータからなるテーブルが与 えられていて、体重のデータの一部が欠落しているとします。欠損値 を補完する関数により、性別とサッカーチームのメンバーであるかど うかに基づいて、学生をグループ化してそれぞれに値を埋めることが 可能です。 21 Name Weight Gender Plays Football Y/N John 190 M Y Mike 220 M Y Cindy - F N Claudia 150 F N Marc - M Y Jane 135 F N Bryan 270 M N
  22. 22. 正規化を実施する際にパラメーターを指定して実行可能に トレーニング時に適用した正規化と同じ条件で正規化可能 – 正規化を実行する際に、適用したパラメーターを保存しておき、該当のパラメーターを使用して、同じパ ラメーターで正規化実行可能に – 下記3つの関連関数で実現可能 – NORMALIZE_FIT:各列の正規化パラメーターを計算し、オプションで正規化されたデータを含むビューを出力 – NORMALIZE_APPLY:正規化パラメーターを新しいデータに適用 – REVERSE_NORMALIZE:正規化したデータを非正規化 – 例:年齢と収入を特徴とするテーブルを操作しながら、ユーザーはminmax正規化を適用してデータをス ケーリングし、アルゴリズムを使用して予測モデルを訓練します。この訓練されたモデルを使用して見え ないデータを予測する前に、ユーザーはこの新しいデータに対して正規化を適用して、同じパラメーター を使用してスケーリングされるようにすることができます。 22
  23. 23. 正規化を実施する際にパラメーターを指定して実行可能に トレーニング時に適用した正規化と同じ条件で正規化可能 入力デー タ トレーニ ングデー タ テスト データ 正規化され たデータ 正規化 正規化のパラ メーター トレーニング アルゴリズム 予測モデル 予測アルゴリ ズム 正規化の適用 正規化され たテスト データ テストデー タでの予測 新機能!!
  24. 24. 機械学習のモデルをDBオブジェクトとして管理可能に 一般ユーザーでモデルの作成・削除可能 – 機械学習のモデルについても、テーブルの他のDBオブジェクトと同じように、 一般ユーザーで作成・削除などの管理が可能に – GRANTコマンドで、他のユーザーにも権限付与可能 – ALTER MODEL文でモデルの変更可能 – DROP MODEL文でモデルの削除可能 – 下記の関数が今後廃止予定 – SELECT RENAME_MODEL(‘old_model_name’, ‘new_model_name’); – SELECT RENAME_MODEL(‘old_model_name’, ‘new_model_name’, ‘optional_model_owner’); – SELECT DELETE_MODEL(‘model_name’); – SELECT DELETE_MODEL(‘model_name’, ‘optional_owner’); 24
  25. 25. 大規模データセットの推定値を高速取得可能に APPROXIMATE_MEDIANとAPPROXIMATE_PERCENTILEの2つの関数 – APPROXIMATE_MEDIANとAPPROXIMATE_PERCENTILEという2 の関数を追加し、大規模データセットに対するMEDIANと PERCENTILEの推定値を高速取得可能に – 例①: allsalesテーブルの全ての売り上げの概算の中央値 – 例②:各州の売り上げに対するおおよその50パーセンタイルの値 26 dbadmin=> SELECT APPROXIMATE_MEDIAN (sales) FROM allsales; APPROXIMATE_MEDIAN -------------------- 20 (1 row) dbadmin=> SELECT state, APPROXIMATE_PERCENTILE(sales USING PARAMETERS percentile=0.5) AS median FROM allsales GROUP BY state; state | median -------+-------- NY | 20 MA | 35 (2 rows)
  26. 26. 8.1における機械学習に関する新機能一覧 新機能 概要 SVM分類 トレーニングデータに基づいて、あるカテゴリまたは他のカテゴリにデータを 割り当てる分類アルゴリズムを追加 IMPUTE関数 平均値またはモードのいずれかを使用して、データ内のパーティションごとに 欠損値を補完可能に 新しい正規化の関数 新しい正規化の関数、NORMALIZE_FIT、APPLY_NORMALIZE、 RESERSE_NORMALIZEを追加し、正規化関連のパラメーターを保持可能に 新しい構文 機械学習の関数でUSING PARAMETERSシンタックスを使用可能に モデルのセキュリティ 機械学習のモデルに対するセキュリティ設定が可能に ALTER MODELとDROP MODELの追 加 これまでのRENAME_MODELをALTER MODELに、DELETE_MODELを DROP_MODELに置き換えより直感的に操作可能に APPROXIMATE_MEDIANと APPROXIMATE_PERCENTILEの追加 新しい関数を使用して、大きなデータセットの推定値を高速取得可能に 27
  27. 27. クラウドおよびオープンソース との連携強化 28
  28. 28. Vertica Spark Connector 概要 Verticaの格納データレイアウトに最適化された、双方向のデータコネクター Node 1 Node 2 Node 3 HPE Vertica Executor Executor Task Task Task Task Task Task RDD Dataframe WORKER NODE WORKER NODE Partition Partition Partition Partition Partition Partition Spark Dataframe to Vertica (S2V) Spark Dataframeから Vertica tableへのデータロード HPE Vertica Connector for Apache Spark Node 4 Vertica to RDD/Dataframe (V2S) VerticaからSpark RDDおよびDataframe へのデータエクスポート
  29. 29. Vertica Spark Connector を利用することによるメリット – Vertica上のテーブルデータをデータソースとして、Sparkによる分析を可能にする(V2S) – Sparkでの処理が困難な大量データに対する複雑なクエリーは、Verticaの高速エンジンを活用してIn-Databaseで処理 – 結果をSparkオブジェクトにエクスポートし、Sparkエコシステムを活用した分析に引き渡すことが可能 – Sparkを高速で拡張性の高いETLとして活用(S2V) – Spark側で実行した高度な変換処理の結果セットを、Verticaの並列性、HDFSとの接続性およびオープンソースデータ フォーマットとの親和性を活かして効率的にデータロード可能 Executor Executor Task Task Task Task Task Task RDD Dataframe Vertica Table Data Segment Node 1 Vertica Table Data Segment Node 2 Vertica Table Data Segment Node 3 WORKER NODE WORKER NODE Partition Partition Partition Partition Partition Partition HPE Vertica Vertica 8.1より、Spark ConnectorがSpark 2.0 / Scala 2.11に対応
  30. 30. Kafka “schema registry” サポート – スキーマレジストリは、Kafkaベースのメッセージスト リーム基盤Confluent Platformのコンポーネントのひと つ(Confluent3.0: Kafka 0.10 にて機能をサポート) – Avroデータのスキーマ定義(フォーマット)を一元的 に管理することが可能 – 異なるIoTデバイスから生成されるさまざまなログを柔 軟かつ容易に世代管理することが可能 31 gen 1 gen 2 gen 2 gen 1 gen 2 schema registry Manufacturer I Manufacturer II 例)Smart Meters
  31. 31. Hadoopラックアウェアネス – Verticaパフォーマンスの改善 – ラック間のネットワークトラフィックを削減 – VerticaノードはHadoopラックを考慮し、クエリ処理を 実行 3232 Rack I Rack II Rack III
  32. 32. IoT dataのデータ変換(ETL) – CREATE TABLE AS SELECTをサポート Machine data – Semi-structured data Flex Table Instant SQL view Structure on read
  33. 33. Vertica on Azure - 15 nodes (90TB) までプロビジョニング可能に Vertica on Azure http://tinyurl.com/hpxho9v 34 既存のAzure環境内に Vericaをプロビジョニングする ことが可能になった Vertica management console も同時にオートインストール可能 になった
  34. 34. Platform support update 36
  35. 35. Server • RHEL/CentOS 7.3 • Oracle Enterprise Linux (Compatible Mode) 7.3 • LVM Support on RHEL 6.8 Hadoop/Kafka • HDP 2.5 • MapR 5.2 • Kafka 0.10 Client Drivers • MS Windows Server 2016 for ADO.NET and ODBC drivers UNIX • AIX 7.1 • Mac OS X 10.12 サポートプラットフォーム– 追加
  36. 36. Server • RHEL/CentOS 6.5 Hadoop/Kafka • CDH 5.6 • HDP 2.3 • MapR 4.1, 5.0 • Kafka 0.8 UNIX • AIX 5.3, 6.1 • Mac OS X 10.9 サポートプラットフォーム – EoL(サポート外)
  37. 37. ODBC driver 下位互換を強化 39 – 課題: Verticaのクライアントドライバーは、上位互換のみのサポート (DBアップグレード時に、旧バージョンのクライアントドライバーの継続利用が可能) 従い、クライアントドライバーのアップグレードを行うためには、DBのアップグレードが 必須となり、クライアントドライバーの新機能を使用したいユーザーの障壁となっていた – Vertica 8.1~: ODBCクライアントドライバーは、下位互換もサポート 最新のクライアントバージョンで以下のServer VersionのVerticaにアクセスすることが可能 7.1.x 7.2.x 8.0.x 8.1.x 8.1.x Yes Yes Yes Yes 8.0.x Yes Yes 7.2.x Yes Yes Yes 7.1.x Yes Yes Yes Yes ODBCClientVersion Server Version Forward Compatible Backwards Compatible - NEW
  38. 38. Thank you

×