A21 列指向DB HP Vertica ~その圧倒的な高速検索の謎を解き明かす~ byKeizo Aizawa

4,198
-1

Published on

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,198
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
82
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

A21 列指向DB HP Vertica ~その圧倒的な高速検索の謎を解き明かす~ byKeizo Aizawa

  1. 1. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.列指向DB HPVertica~その圧倒的な高速検索の謎を解き明かす~2013年5月30日日本ヒューレット・パッカード株式会社HPソフトウェア事業統括 Vertica事業部プリセールスマネージャー 相澤 恵奏
  2. 2. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.2Vertica事例(WWで2500社以上)CommunicationsConsumerMarketingOnline Web andGamingHealthcare RetailFinancial Services大統領選挙
  3. 3. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.3HP Vertica Analytics PlatformBig Dataのためのリアルタイム解析データベースプラットフォーム 高速性: 列指向RDBMSの超高速検索ANSI-SQL99に準拠しているRDBMS:SQLを使用して大量データの超高速分析、検索が可能(従来製品より50~1000倍の高速性) 拡張性: 超並列処理(MPP)アーキテクチャによるスケールアウトx86サーバにLinuxをインストールしたものを並べていくことにより、無限の拡張性 簡易性: 既存のDBAが直ちに利用可能 複雑なチューニング不要 柔軟性: スモールスタートからエンタープライズ規模までアプライアンスでは無く、ソフトウェアは製品での販売(1Tbyte ~)
  4. 4. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.4Vertica = 解析用プラットフォームソフトウェア製品分析・検索処理に特化したDBエンジンです。DatabaseDatabase(OLTP)Apps.FilesレポートOLAPアプリダッシュボードデータの抽出、変換、ロード(ETL)データソースデータ抽出解析用DBエンジンデータ分析既存の業務データ・分析SQL・UDxODBCJDBCHDFSODBCJDBC
  5. 5. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.5Vertica Systems 概要2008 Top 10TechStartups2007 “CoolVendor” DataMgmt.2008 Top100 BestStartups2007 Top 20Cutting EdgeTechnologies• 分析用DBソフトウェアベンダー• 設立:2005年• 本社:米国 マサチューセッツ州• Michael Stonebrakerが産みの親Postgres, C-Storeの開発者• 注目ベンチャーとして数々の賞を受賞• 2011/3/22 HPが買収完了を発表• 2012/12/1 HPに統合完了
  6. 6. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.6Michael Stonebrakerによるデータベース開発INGRES POSTGRES Aurora C-storeRDBMS Object DB CEPColumn-oriented DBIngres Corp.ComputerAssociatesIllustraInformixStreamBaseSystemsVerticaHewlettPackard1970 1980 2000 2010商用化技術継承技術SybaseSQL ServerAster DataGreenplumNetezza・B-trees・Replication・Rules/triggers・Object relational・Complex datatype・Streamingdata‘processing・Column oriented・Compression・MPP
  7. 7. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.7HP Vertica Analytics Platformの特徴自動パフォーマンスチューニングDatabase DesignerColumnar storageand executionContinuousperformanceClusteringCompression列指向RDBMS データ圧縮機能超並列アーキテクチャーノードダウン時の継続実行機能HDFS ConnectorNEWVerticaから HDFSに配置されているファイルの読み込みが可能標準のBI, ETLツールと連携AnalyticsR言語をサポート
  8. 8. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.8Columnar storage and execution5/05/095/06/095/05/095/06/09143.74143.7537.0337.13AAPLAAPLBBYBBYAAPL NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 143.74 NYSE NYSE NYSE 5/05/09AAPL NYASE NYAASE NYSE NYASE NGG YSE NYGGGSENYSE NYSE NYSE 143.74 NYSE NYSE NYSE 5/06/09BBY NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSENYSE NYSE 37.03 NYSE NYSE NYSE 5/05/09BBY NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSENYSE NYSE 37.13 NYSE NYSE NYSE 5/06/09NQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNYSENYSENYSENQDSNYSENYSENYSENQDSAAPLAAPLBBYBBY143.74143.7537.0337.135/05/095/06/095/05/095/06/09AAPL NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 143.74 NYSE NYSE NYSE 5/05/09AAPL NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 143.74 NYSE NYSE NYSE 5/06/09BBY NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 37.03 NYSE NYSE NYSE 5/05/09BBY NYASE NYAASE NYSE NYASE NGGYSE NYGGGSE NYSE NYSE NYSE 37.13 NYSE NYSE NYSE 5/06/09Reads 3 columnsReads all columnsSELECT AVG(price) FROM tickstoreWHERE symbol = ‘AAPL” AND date = ‘5/06/09’行指向 - 従来型SELECT AVG(price) FROM tickstoreWHERE symbol = ‘AAPL” AND date = ‘5/06/09’ディスクI/Oとメモリ量の劇的な削減列指向 - Vertica検索に最適なカラム(列)指向のRDBMS
  9. 9. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.9データの属性に応じた最適な圧縮アルゴリズムで50~90%のデータ圧縮データ検索時のI/O量が減り、より高速な処理を実現物理ストレージの容量削減処理日 お客様番号 取引データ5/05/20095/05/20095/05/20095/05/20095/05/20095/05/20095/05/20095/05/20095/05/20095/05/20095/05/20090000001000000100000030000003000000500000110000011000002000000260000050000005100000525/05/2009, 16RLEアルゴリズム000000102241010192549DeltaEncoding Raw Data Compressed Data100.25302.43991.2373.45134.09843.11208.13114.2983.0743.98229.76LZOアルゴリズムÞìÃp:±æ+©>Hì&ì¥YÛ¡×¥©éa½?50ÓJCompressionデータ圧縮機能
  10. 10. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.10シェアードナッシング方式によりリニアに性能向上すべてのノードが同じ役割を実行可能node01専用データ領域node02専用データ領域node03専用データ領域node01Massively Parallel Processing (MPP)SymmetricMulti-Processing (SMP)MPPSMP密結合•HP Neoiew性能ノード数性能ノード数従来型DBMS(データ共有型)Verticanode02 node03検索クエリ3 4103Clustering超並列処理(MPP)アークテクチャー
  11. 11. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.11#3 #4 #5 #6#1node01#2最大2つのレプリカを保持可能自動リプリケーションによる障害発生時サービス継続node02 node03 node04 node05 node06#3 #4 #5#6 #1 #2#1 #2 #3 #4#5 #6ノードダウン時の継続実行機能Continuous performance
  12. 12. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.12DB管理者> 論理スキーマ・テーブル作成> サンプルセット・良く使用するクエリ・サンプルデータ最高のパフォーマンスが出せる物理デザインを提供 自動で最適なデータ圧縮、列の並び替えを行い、検索を高速化 定型検索に最適なデータ配置を追加で作成することが可能 INDEXの作成は不要ハード構成を考えず論理設計 物理構成を考慮しデータ配置DB管理者の負担を最小限にDatabase Designer (DBD)> 物理スキーマ作成、データ圧縮・最適な検索になるようデータ圧縮、列の並び替えを自動的に実施・定常的なデータの取り込みを考慮DBデザイン機能
  13. 13. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.13Projectionとは?Projectionは物理スキーマとして定義各列の圧縮方法、列の配置、分散KEYの定義、がProjectionには含まれる。データが格納されるのはTableでは無く、Projectionになる。日付 エリア 店舗 顧客ID 売上高date varchar(10) varchar(10) Int Int日付 エリア 店舗 顧客ID 売上高0701 東京 新宿 10001 1000701 東京 新宿 10002 1,0000702 名古屋 名古屋 10003 1,00000703 大阪 梅田 10004 2,4000703 東京 池袋 10005 1,6000704 東京 新宿 10006 6,4000705 東京 品川 10007 1,0000706 大阪 梅田 10008 1,1000706 名古屋 名古屋 10009 1,300エリア 店舗 売上高大阪 梅田 2,400大阪 梅田 1,100東京 池袋 1,600東京 品川 1,000東京 新宿 100東京 新宿 1,000東京 新宿 6,400名古屋 名古屋 1,0000名古屋 名古屋 1,0000顧客ID 売上高10001 10010002 1,00010003 1,000010004 2,40010005 1,60010006 6,40010007 1,00010008 1,10010009 1,300Projection-1 Projection-2 Projection-3Verticaでは、Tableは論理スキーマとして定義create table table1(日付 date ,エリアvarchar(10) ,店舗 varchar(10),顧客ID(int),売上高(int));
  14. 14. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.14Projectionとは?TableユーザはProjectionを意識する必要なく、Tableに対してクエリーを実行すれば良い。SuperProjectionすべての列を含み、汎用的な圧縮、並び替えを事前にしているデータセットQuery SpecificProjection必要な列のみクエリーに特化した圧縮並び替えQuery SpecificProjection必要な列のみクエリーに特化した圧縮並び替えもっとも検索コストが低いプロジェクションをVerticaが自動選択ユーザはProjectionを意識する必要はない
  15. 15. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.15最適な圧縮、最適な列配置、 最適なソートが事前に実施されたデータセットProjectionとは?Table:A Table:BQuery Specific Projection(特定のクエリーに特化したProjection)SELECT A.1c,A.2c from TableA where A.3 = 100;DatabaseDesinerがクエリーを解析し、クエリーに最適なProjectionを追加で作成1 2 3Query Specific ProjectionPre-JOIN-Projection(事前にJOINしたProjection)SELECT A.5c,B.2c from TableA,TableB where A.3c = B.3c;すべてのクエリーに汎用的に対応できる、SuperProjection(Comprehensive Projection)すべての列を含み、列の型やカーディナリティーを考慮して、DatabaseDesinerが自動的に作成圧縮 圧縮圧縮 圧縮圧縮圧縮圧縮圧縮圧縮圧縮圧縮圧縮圧縮圧縮圧縮圧縮圧縮Pre-Join Projection
  16. 16. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.161256678125403812788581230807Student_ID121046612492901244262125249012671701248100124348312303821240224122278112318061246648Cappiello, EmiliaDalal, AlanaOrner, KatyFrigo, AvisNameStober, SaundraBorba, MilagrosSosnowski, HillaryNibert, EmiliaPopovic, TanishaSchreckengost, MaxPorcelli, DarrenSinko, ErikTarvin, JulioLessig, ElnoraThon, MaxTrembley, AllysonFFFMGenderFFFFFMMMMFMFSophomoreSeniorJuniorSeniorClassJuniorFreshmanJuniorSophomoreFreshmanSeniorJuniorFreshmanSophomoreJuniorSophomoreJunior62927664Score9096685995766791856382100DACDGradeAADFACDABDBA自動で最適なデータ配置を作成Example query:select avg( Score ) from example whereClass = ‘Junior’ and Gender = ‘F’ and Grade = ‘A’
  17. 17. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.171256678125403812788581230807Student_ID121046612492901244262125249012671701248100124348312303821240224122278112318061246648Cappiello, EmiliaDalal, AlanaOrner, KatyFrigo, AvisNameStober, SaundraBorba, MilagrosSosnowski, HillaryNibert, EmiliaPopovic, TanishaSchreckengost, MaxPorcelli, DarrenSinko, ErikTarvin, JulioLessig, ElnoraThon, MaxTrembley, AllysonFFFMGenderFFFFFMMMMFMFSophomoreSeniorJuniorSeniorClassJuniorFreshmanJuniorSophomoreFreshmanSeniorJuniorFreshmanSophomoreJuniorSophomoreJunior62927664Score9096685995766791856382100DACDGradeAADFACDABDBAQueryに最適化されたカラム配置に並び替えデータ保持イメージ①
  18. 18. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.181256678Cappiello, EmiliaF Sophomore 62D1254038Dalal, AlanaF Senior 92A1278858Orner, KatyF Junior 76C1230807Frigo, AvisM Senior 64D1210466Stober, SaundraF Junior 90A1249290Borba, MilagrosF Freshman 96A1244262Sosnowski, HillaryF Junior 68D1252490Nibert, EmiliaF Sophomore 59F1267170Popovic, TanishaF Freshman 95A1248100Schreckengost, MaxM Senior 76C1243483Porcelli, DarrenM Junior 67D1230382Sinko, ErikM Freshman 91A1240224Tarvin, JulioM Sophomore 85B1222781Lessig, ElnoraF Junior 63D1231806Thon, MaxM Sophomore 82B1246648Trembley, AllysonF Junior 100AStudent_IDNameScoreClassGender Grade並び替えSORTデータ保持イメージ②
  19. 19. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.19ADBAJuniorSeniorFreshmanJuniorSophomoreSophomoreJuniorJuniorFFFMFFFFMMMFMF1256678Cappiello, EmiliaSophomore 62D1254038Dalal, AlanaSenior 92A1278858Orner, Katy76C1230807Frigo, Avis64D1210466Stober, SaundraJunior 901249290Borba, Milagros961244262Sosnowski, Hillary681252490Nibert, Emilia59F1267170Popovic, TanishaF Freshman 95A1248100Schreckengost, MaxSenior 76C1243483Porcelli, DarrenJunior 67D1230382Sinko, ErikM Freshman 91A1240224Tarvin, Julio851222781Lessig, Elnora63D1231806Thon, MaxSophomore 82B1246648Trembley, Allyson100Student_IDNameScoreClassGender GradeA圧縮データ保持イメージ③
  20. 20. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.20ADBAJuniorSeniorFreshmanJuniorSophomoreSophomoreJuniorJuniorFFFMFFFFMMMFMF1256678Cappiello, Emilia621254038Dalal, AlanaSophomoreSenior 921278858Orner, Katy761230807Frigo, Avis641210466Stober, SaundraJunior 901249290Borba, Milagros961244262Sosnowski, Hillary681252490Nibert, Emilia591267170Popovic, TanishaF Freshman 95A1248100Schreckengost, MaxSenior 76DC1243483Porcelli, Darren671230382Sinko, ErikM 911240224Tarvin, Julio851222781Lessig, Elnora63CD1231806Thon, MaxJuniorFreshmanSophomore 82DAFDAB1246648Trembley, Allyson100Student_IDNameScoreClassGenderFGradeAJuniorJuniorJuniorJuniorJuniorAA901001st I/OReads entirecolumn2nd I/O 3rd I/O 4th I/Ooffset offsetデータ保持イメージ④-検索スピードExample query:select avg( Score ) from example whereClass = ‘Junior’ and Gender = ‘F’ and Grade = ‘A’
  21. 21. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.21Create Projection文SELECTEXAMPLE. gendar ,EXAMPLE.class ,EXAMPLE.grade ,EXAMPLE.scoreFROM EXAMPLECREATE PROJECIOTN student_table_P1(gendar ENCODING RLE ,class ENCODING RLE ,grade ENCODING RLE ,score ENCODING DELTVAL) AS列の選択&圧縮率の指定実データの指定ORDER BY EXAMPLE.gendar ,EXAMPLE.class ,EXAMPLE.grade列の並び替えSEGMENTED BY HASH(EXAMPLE.class , EXAMPLE.score) ALL NODES;ノードに分散するHASH KEYの指定
  22. 22. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.22Verticaの特徴 - 圧倒的な検索パフォーマンス列指向データベース• ディスクI/Oを劇的に削減• 列指向に最適されたDBエンジンにより高速検索• 50~1000倍の高速化データ圧縮• 最大90%の圧縮率• 圧縮したままで内部演算処理超並列アーキテクチャー• Shared Nothing クラスタリングによるリニアな性能向上• No Specialized Node• 業界標準x86サーバ(ソフトウェア製品)高可用性• 最大2つのレプリカを保持可能• 自動リプリケーションによる障害発生時サービス継続自動データベースデザイン• 対話形式のGUIにより容易にDBの管理が可能• 検索に最適なデータ配置をシステムが自動的に作成データロード• メモリ経由とディスク直接の2方式のロード• ローディング中もクエリーのパフォーマンスは低下しない標準的なSQLインタフェース• ANSI SQL-99準拠• JDBC/ODBC/ADO.netドライバ拡張分析• 空間解析などの独自の関数をあらかじめ用意• R言語や事前に用意されたSDKでUser Defined Functionの作成可能• 関数は並列アーキテクチャーで利用可能
  23. 23. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.23DEMO#1 Vertica install (インストールの簡易性)#2 DBD(DatabaseDesigner) (自動チューニングの説明)#3 R言語との連携#4 Hadoopとの連携#5 Udxの例(Github掲載のSentimental分析の実装)
  24. 24. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.24VMware Workstation 83 Nodes on Vmware WorkstationInstall 環境(例)each1 processer core1.6 GB MemoryRed HatEnterpriseLinux 6.2Red HatEnterpriseLinux 6.2VM VMHP EliteBook 2540p
  25. 25. Function Setup + Usage-- Define functionCREATE LIBRARY rlibAS ‘/path/rcode.R’ LANGUAGE R;CREATE TRANSFORM FUNCTION KmeansAS LANGUAGE R NAME kmeansCluFactory LIBRARY rlib;-- Use functionCREATE TABLE point_data (x FLOAT, y FLOAT );SELECT Kmeans(x, y)OVER() FROM point_data;R Source CodeUDx in R Example: K-Means Clustering# Example: K-means (k=5)# Input: two-dimensional points# Output: the point coordinates plus their assigned# clusterkmeansClu <- function(x){cl <- kmeans(x,5,10)res <- data.frame(x[,1:2], cl$cluster)res}kmeansCluFactory <- function(){list(name=kmeansClu,udxtype=c("transform"),intype=c("float","float"),outtype=c("float","float","int"),outnames=c(“col1",“col2","cluster") )}
  26. 26. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.26C++でのUserDefinedFunctionの設定方法C++(UserDefinedFunciton)に関して• Github上に様々なExtentionPackagesが準備されている。• https://github.com/vertica/Vertica-Extension-Packages
  27. 27. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.27Hadoop連携に関して■HDFS上のファイルをロードdbadmin=> copy test1234 with source hdfs(url=http://192.168.47.30:50070/webhdfs/v1/user/root/test.csv, username=root);Rows Loaded-------------4(1 row)■HDFS上のファイルをExternal Tableとして定義dbadmin=> create external table hadoop_bb (a int, b int) as copy sourcehdfs(url=http://192.168.47.30:50070/webhdfs/v1/user/root/test.csv, username=root);CREATE TABLEdbadmin=> select * from hadoop_b;a | b---+---1 | 22 | 33 | 44 | 5(4 rows)
  28. 28. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.28HadoopとVerticaによるデータ活用支援サービスVerticaHadoop分散処理基盤 Hadoop大規模データ分析に用いられるソフトウエアのデファクト・スタンダード分析データベースVertica大量データからの高速な検索に適した新世代カラム指向データベースConnectors$ € ¥FlumeSqoopさまざまなデータERPを代表としたビジネスデータは もちろんのこと様々なデータを集めるテータを収集し、それぞれのクラスタに向く処理を実行し、データを受け渡して利用・連携・保管し、データを活用する支援をいたします。
  29. 29. © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.29はじめようHadoopとVertica ! パッケージ並列処理のスケールアウトと組み合わせの良さを実感できる最小構成標準バンドルCloudera Enterprise1年間365日24時間保守込みのサブスクリプションVertica 1TB Licenseライセンスと1年間平日 9:00-17:30保守Red Hat Enterprise Linux Server1年間365日24時間保守込みのサブスクリプションHP BladeSystem c7000エンクロージャおよびGbEスイッチHP ProLiant BL460c Gen8サーバx 8 = ( 1+4 Hadoop ) + ( 3 Vertica )各ブレード CPU: 1P/8C Memory :32GB Disk: 900GB x21年間 365日24時間保守初期セットアップ作業Vertica3 NodeHadoop1+4 NodeHadoopとVerticaによるデータ活用支援サービスと ソフトウエアとハードウエアおよびセットアップ作業を、ひとつのパッケージで ご提供いたします。

×