[db tech showcase tokyo 2015]...
TRANSCRIPT
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
マイケルストーンブレーカー発の超高速データベースで実現する分析基盤の簡単構築・運用ステップ
大薗 純平
日本ヒューレット・パッカード株式会社
ビッグデータソフトウェアプラットフォーム事業本部
プリセールスコンサルタント
2015年6月10日
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.2
自己紹介
大薗 純平(おおぞの じゅんぺい)
o Verticaプリセールスコンサルタント@日本HP
o 2012年、HPが Vertica社を買収したタイミングから、Verticaを使用したシステムの提案および構築プロジェクトに複数参画
o 現在、Verticaを含めたビッグデータビジネスに関連する提案活動およびPOCを担当
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.3
Congratulation!
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.4
マイケルストーンブレーカー氏の功績
C-store
1970 1980 2005 2015
技術継承 技術継承 商用化
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.5
とは?
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.6
イメージ
Verticaのイメージと実際
Speed Scalability
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.7
実際
Verticaのイメージと実際
Speed Scalability Simple+
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.8
Verticaの特徴
Speed
Scalability
Simple
o 列指向+超並列構成による圧倒的なパフォーマンス
o Vertica独自のプロジェクションによる圧倒的な速度向上
o マスターノードを持たない、無限のスケールアウト構成
o ノード追加によるリニアな性能向上が可能
o 既存のDBの知識、標準SQLですぐに分析可能
o 複雑なチューニングは不要
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.9
■列指向
■超並列構成
■プロジェクション
超高速データベースソフトウェア
CPU
Memory
Disk
CPU
Memory
Disk
CPU
Memory
Disk
Speed
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.10
Verticaでは、テーブルは論理スキーマとして定義
create table table1(日付 date ,顧客ID(int),店舗 varchar(10),エリアvarchar(10) , 売上高(int));
プロジェクションとは?
プロジェクションは物理スキーマとして定義(自動ツールによりチューニング)
日付 顧客ID 店舗 エリア 売上高
date int varchar(10) varchar(10) Int
日付 顧客ID 店舗 エリア 売上高
0701 10001 新宿 東京 100
0701 10002 新宿 東京 1,000
0702 10003 名古屋 名古屋 1,0000
0703 10004 梅田 大阪 2,400
0703 10005 池袋 東京 1,600
0703 10006 新宿 東京 6,400
0705 10007 品川 東京 1,000
0706 10008 梅田 大阪 1,100
0706 10009 名古屋 名古屋 1,300
日付 売上高
0701 100
1,000
0702 1,0000
0703 2,400
1,600
6,400
0705 1,000
0706 1,100
1,300
Projection-1 Projection-2
エリア 店舗 日付 売上高 顧客ID
大阪 梅田 0703 2,400 10004
0706 1,100 10008
東京 池袋 0703 1,600 10005
品川 0705 1,000 10007
新宿 0701 100 10001
1,000 10002
0703 6,400 10006
名古屋 名古屋 0702 1,0000 10003
0706 1,300 10009
大阪梅田の平均売上高 7/6の売り上げ
クエリー毎に最適化を事前に行うことも可能
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.11
マスターノードのない、真のMPP構成HP Vertica = Shared Nothing MPP マスターノードがあるMPP
→低いConcurrency→高いConcurrency
Clients Clients Clients Clients
すべてのノードがクエリを受けられる
Node#1
CPU
Memory
Node#2
CPU
Memory
Node#3
CPU
Memory
Node#N
CPU
Memory
Node#1
CPU
Memory
Node#2
CPU
Memory
Node#3
CPU
Memory
Node#N
CPU
Memory
Master Node
ClientsClientsClients
クエリが必ず特定ノードを経由する
Scalability
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.12
Simple?
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.13
Vertica構築・運用ステップ
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
Simple
運用構築
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.14
1. Vertica Install
Vertica構築・運用ステップ
任意ノードでrpm & Install Script実行
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
Node#1 Node#2 Node#N…
Verticarpm
①事前準備・予め、Verticaのインストール要件を満たすHW/NW/OS設定としておく・全ノードのOS設定/DIR構成を同一としておく
InstallScript ③Install Script実行
rpm実行により生成されたInstallScriptを実行。どのサーバーをVerticaクラスタに含めるか指定する
Vertica
Node#1 Node#2 Node#N…
Verticarpm
InstallScript
全ノードにVerticaプロセス/モジュール/専用OSユーザ(dbadmin)が生成される
②rpm実行Verticaインストール用rpmファイルを、myVertica(https://my.vertica.com/)からダウンロード。任意の1ノードに配置し、実行
①事前準備(全ノード)②rpm実行(1ノード)③Install script実行(1ノード)
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.15
1. Vertica Install
Vertica構築・運用ステップ
①事前準備 OSインストール前
■構成例(オンプレミス)
Private
Public
冗長化
推奨ディスク構成o すべて内臓ディスクで構成するo OS, カタログ領域とデータ領域の
パーティションを分ける
SAS:300GB x 2
SAS:600GB x N
RAID1(OS, カタログ)
RAID10(データ)
・・・・・
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
ネットワークはPrivate/Publicの2系統
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.16
1. Vertica Install
Vertica構築・運用ステップ
①事前準備 OSインストール前
(ご参考)HP Vertica日本語ガイド http://h50146.www5.hp.com/products/software/hpsoftware/vertica/
項目 内容
Supported Platform Linux(64bit)をサポート:RHEL5.x,6.x / CentOS5.x,6.x / SUSE11.0-11.0SP3 / Debian6,7.0-7.5 etc
LVM FilesystemはLVMで構成しない(データ領域だけでなく、OS, カタログ領域も)
Filesystem ext3またはext4をサポート(ext4推奨)
Swap Space メモリーサイズにかかわらず、2Gbyteを推奨(2Gbyte以上でもサポートします。)SWAP領域は、Verticaのデータ領域と同じDISKには配置しない
Disk Block Size 4,096bytes
Memory 物理Core毎に8GB以上を推奨
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.17
1. Vertica Install
Vertica構築・運用ステップ
①事前準備 OSインストール後項目 内容
Disk Readahead データ領域のデバイスのReadaheadの設定:2,048以上
NTP Services NTPデーモンを有効化
SELinux DisabledまたはPermissiveに設定
Firewall Disabledに設定
CPU Frequency Scaling CPU Idle時、省電力モードにならない設定(設定方法はサーバーに依存)
Transparent Hugepages Disabledまたはmadviseに設定
I/O Scheduler 全領域のデバイスI/O Schedulerをdeadlineに設定
(ご参考)HP Vertica日本語ガイド http://h50146.www5.hp.com/products/software/hpsoftware/vertica/
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.18
1. Vertica Install
Vertica構築・運用ステップ
①事前準備 OSインストール後項目 内容
Support Tools Pstack(CentOSの場合は、gdb), mcelog, Sysstatのインストールを推奨
Default shell インストールユーザーのデフォルトシェルは、BASH Shellとする
LANG Environment インストールユーザーのLANGをUTF-8に設定
TZ Environment インストールユーザーのTimezoneを適切に設定(Asia/Tokyoなど)
Partition データ領域、カタログ領域のパーティションを作成(すべてのノード共通)※データベース作成時に、これらのパーティションのディレクトリ名を指定
(ご参考)HP Vertica日本語ガイド http://h50146.www5.hp.com/products/software/hpsoftware/vertica/
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.19
1. Vertica Install
Vertica構築・運用ステップ
②rpm実行
Node#1 に、rpmファイルをアップロード
Node#1でrootまたはsudo権限ユーザで以下を実行
# rpm -Uvh vertica-7.1.1-12.x86_64.RHEL5.rpm
(ご参考)HP Vertica日本語ガイド http://h50146.www5.hp.com/products/software/hpsoftware/vertica/
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.20
1. Vertica Install
Vertica構築・運用ステップ
②rpm実行
(ご参考)HP Vertica日本語ガイド http://h50146.www5.hp.com/products/software/hpsoftware/vertica/
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.21
1. Vertica Install
Vertica構築・運用ステップ
③Install Script実行
Node#1でrootまたはsudo権限ユーザでInstall scriptを実行
# /opt/vertica/sbin/install_vertica
--hosts node01,node02,node03 (Private Networkを指定)
--rpm vertica-7.1.1-12.x86_64.RHEL5.rpm--ssh-password root’s Password
--dba-user-password dbadmin’s Password
--failure-threshold NONE (NONEとすることでWarning等を無視してインストール)
(ご参考)HP Vertica日本語ガイド http://h50146.www5.hp.com/products/software/hpsoftware/vertica/
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.22
1. Vertica Install
Vertica構築・運用ステップ
③Install Script実行
(ご参考)HP Vertica日本語ガイド http://h50146.www5.hp.com/products/software/hpsoftware/vertica/
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.23
1. Vertica Install
Vertica構築・運用ステップ
③Install Script実行
(ご参考)HP Vertica日本語ガイド http://h50146.www5.hp.com/products/software/hpsoftware/vertica/
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.24
1. Vertica Install
Vertica構築・運用ステップ
③Install Script実行
(ご参考)HP Vertica日本語ガイド http://h50146.www5.hp.com/products/software/hpsoftware/vertica/
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
Vertica
Node#1 Node#2 Node#N…
Verticarpm
InstallScript
全ノードにVerticaプロセス/モジュール/専用OSユーザ(dbadmin)が生成される
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.25
2. DB作成
Vertica構築・運用ステップ
Vertica上にDBを作成する(CUI / GUIで作成可能)
Vertica Install DB作成
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
Vertica
Node#1
PC
TeraTerm/putty etc
Node#2 Node#N
Admintools
ssh
DBで使用するディレクトリを指定する・Vertica定義ファイルを格納するディレクトリ(Catalog)・データを格納するディレクトリ(Data)
データベース
…Management Console
https
ディレクトリだけ指定する
Schema/Table作成
LB設定
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.26
2. DB作成
Vertica構築・運用ステップVertica Install DB作成
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
CUI (admintools)での作成例
Schema/Table作成
LB設定
dbadmin userでadmintools起動
6. Configuration Menu 1. Create Database
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.27
2. DB作成
Vertica構築・運用ステップVertica Install DB作成
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
Schema/Table作成
LB設定
DB名を指定 パスワードを指定 パスワードの確認
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.28
2. DB作成
Vertica構築・運用ステップVertica Install DB作成
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
Schema/Table作成
LB設定
対象ノードの指定カタログ領域とデータ領
域のPathを指定確認画面
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.29
2. DB作成
Vertica構築・運用ステップVertica Install DB作成
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
Schema/Table作成
LB設定
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.30
2. DB作成
Vertica構築・運用ステップVertica Install DB作成
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
Schema/Table作成
LB設定
DB作成完了 DBの状態確認起動できるのは1つの
DBのみ
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.31
3. Schema/Table作成
Vertica構築・運用ステップ
DB上にSchema/Tableを作成(SQL - Create Schema/Table発行)
Vertica Install DB作成
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
Vertica
Node#1
PC
TeraTerm/putty etc
Node#2 Node#N
vsql ssh
スキーマ( データの論理集合)の生成
データベース
…Management Console
スキーマ
DDL
Schema/Table作成
LB設定
テーブルの生成=メタデータのみ(プロジェクション:物理構造は未生成)
ANSI99標準SQL 使用分散キー、ソートキー等の指定は不要
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.32
3. Schema/Table作成
Vertica構築・運用ステップ
DB上にSchema/Tableを作成(SQL - Create Schema/Table発行)
■DDLサンプル
create schema online_sales;
create table online_sales.online_page_dimension
( online_page_key integer not null primary key,
start_date date,
end_date date,
page_number integer,
page_description varchar(100),
page_type varchar(100)
);
Vertica Install DB作成
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
Schema/Table作成
LB設定
ANSI99準拠の標準SQL
分散キー等の設計は不要
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.33
3. Schema/Table作成
Vertica構築・運用ステップVertica Install DB作成
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
Schema/Table作成
LB設定
vsql にログインしてDDLを実行 psql
Postgresのpsqlとほぼ同じインターフェース
メタコマンドも使用可能
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.34
3. Schema/Table作成
Vertica構築・運用ステップVertica Install DB作成
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
Schema/Table作成
LB設定
この段階ではプロジェクションは未生成
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.35
4. LB設定
Vertica構築・運用ステップ
適切に接続ノードの振り分けを行うため、Native Load Balancing機能を有効化
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
Vertica
Node#1
PC
TeraTerm/putty etc
Node#2 Node#N
vsql ssh
Native Load balancing有効化(振り分けポリシーの設定)
データベース
…Management Console
スキーマ
DDL
DB側とクライアント側で設定必要
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.36
4. LB設定
Vertica構築・運用ステップVertica Install DB作成
Schema/Table作成
LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
クライアントシステム
Vertica
①LB有効化(LBポリシーの指定)RoundrobinまたはRandom③ConnectionLoadBalance有効化
②LB用Networkの設定
LBポリシーに準じて振り分け
ダウンノードは振分対象から除外
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.37
4. LB設定
Vertica構築・運用ステップ
①LB有効化(LBポリシーの指定)
以下のポリシーから、選択
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
Load Balance Policy 動作
NONE Load balanceさせない設定(デフォルト)
ROUNDROBIN ノード名順に振り分け
RANDOM ランダムに振り分け
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.38
4. LB設定
Vertica構築・運用ステップ
①LB有効化(LBポリシーの指定)
実行例
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
NONE(Default)からRoundrobinに変更
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.39
4. LB設定
Vertica構築・運用ステップ
②LB用Networkの設定
実行例
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
クライアントから接続するPublicアドレスのSUBNET定義を作成
データベースにSUBNET定義を登録
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.40
4. LB設定
Vertica構築・運用ステップ
③ConnectionLoadBalance有効化(クライアント)
実行例
Vsqlから接続する場合
-Cオプションを付加して接続
$ vsql –h 192.168.195.102 –U dbadmin –C
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
LBが使われている
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.41
4. LB設定
Vertica構築・運用ステップ
③ConnectionLoadBalance有効化(クライアント)
実行例
JDBCから接続する場合
コネクション接続時に、接続文字列に以下のパラメータをセットする
ConnectionLoadBalance=1
ODBCから接続する場合
ODBC DSNにて「Use connection load balancing」にチェックを入れる
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.42
5. 初期Data load
Vertica構築・運用ステップ
データの傾向が分かる、サンプルデータをロード
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
Vertica
Node#1
PC
TeraTerm/putty etc
Node#2 Node#N
データベース
…Management Console
スキーマ
初期プロジェクションの作成最適な圧縮・ソートなし、全カラム保持
ETL Server
APL
Data
Bulkロードで高速インポート
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.43
5. 初期Data load
Vertica構築・運用ステップ
COPYコマンド
• テキストファイルをINPUTとし、バルクロードが可能
COPY <テーブル名> FROM <ファイル名>;
※ファイルのエンコーディングはUTF-8であること
• COPYコマンドは、同一テーブルに同時に複数実行可能
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
Vertica DB Server
TABLE
COPY-- Data File111,222,333:: xSV形式、固定長のファイル
データを自動的にハッシュ分散
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.44
5. 初期Data load
Vertica構築・運用ステップ
COPYコマンドの例Online_sales.load.sql
------------------------------------------------------------------------------------
\set t_pwd `pwd`
\set input_file1 '''':t_pwd'/online_sales_fact.tbl'''
COPY Online_Sales_Fact FROM :input_file1 DELIMITER '|' NULL '' DIRECT;
------------------------------------------------------------------------------------
Online_Sales_Factテーブルに、online_sales_fact.tblファイル、区切り文字が|のものをロード
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.45
5. 初期Data load
Vertica構築・運用ステップVertica Install DB作成
Schema/Table作成
LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
■ロード完了
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.46
5. 初期Data load
Vertica構築・運用ステップVertica Install DB作成
Schema/Table作成
LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
■初期プロジェクションが生成された
データが各ノードに
分散配置されている
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.47
5. 初期Data load
Vertica構築・運用ステップ
■生成されたプロジェクションDDL
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
SELECT
online_sales_fact.sale_date_key,
:
online_sales_fact.transaction_type
FROM online_sales.online_sales_fact
CREATE PROJECTION online_sales.online_sales_fact /*+createtype(L)*/(
sale_date_key,
:
transaction_type
) AS
列の選択&
圧縮タイプの指定
実データの指定
ORDER BY online_sales_fact.sale_date_key,
:
online_sales_fact.transaction_type
列の並び替え
SEGMENTED BY HASH(online_sales_fact.sale_date_key, …online_sales_fact.transaction_type) ALL NODES;
ノードに分散する
HASH KEYの指定
圧縮タイプは未選択
最適な並びでない可能性
最適なキーでない可能性
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.48
6. DB最適化(DB Designer)
Vertica構築・運用ステップ
DB Designerの”Comprehensive”モードでDB初期最適化を実行
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
Vertica
Node#1
PC
TeraTerm/putty etc
Node#2 Node#N
データベース
…Management Console
スキーマ
最適化Projectionの生成圧縮・ソートあり、全カラム保持
Admintools
ssh
https
CUI または GUIから実行可能
query
プロジェクションを自動で再作成
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.49
DB Designer
自動チューニング
今までのRDBMSの知識でテーブル、SQLの作成
最高のパフォーマンスが出せる物理デザインをVerticaが自動で作成
日付 顧客ID 店舗 エリア 売上高
0701 10001 新宿 東京 100
0701 10002 新宿 東京 1,000
0702 10003 名古屋 名古屋 1,0000
0703 10004 梅田 大阪 2,400
0703 10005 池袋 東京 1,600
0703 10006 新宿 東京 6,400
0705 10007 品川 東京 1,000
0706 10008 梅田 大阪 1,100
0706 10009 名古屋 名古屋 1,300
エリア 店舗 日付 売上高 顧客ID
大阪 梅田 0703 2,400 10004
0706 1,100 10008
東京 池袋 0703 1,600 10005
品川 0705 1,000 10007
新宿 0701 100 10001
1,000 10002
0703 6,400 10006
名古屋 名古屋 0702 1,0000 10003
0706 1,300 10009
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.50
1256678125403812788581230807
Student_ID
121046612492901244262125249012671701248100124348312303821240224122278112318061246648
Cappiello, EmiliaDalal, AlanaOrner, KatyFrigo, Avis
Name
Stober, SaundraBorba, Milagros
Sosnowski, HillaryNibert, Emilia
Popovic, TanishaSchreckengost, Max
Porcelli, DarrenSinko, Erik
Tarvin, JulioLessig, Elnora
Thon, MaxTrembley, Allyson
FFFM
Gender
FFFFFMMMMFMF
SophomoreSeniorJuniorSenior
Class
JuniorFreshman
JuniorSophomoreFreshman
SeniorJunior
FreshmanSophomore
JuniorSophomore
Junior
62927664
Score
9096685995766791856382
100
DACD
Grade
AADFACDABDBA
自動で最適なデータ配置を作成
Example query: select avg( Score ) from example whereClass = ‘Junior’ and Gender = ‘F’ and Grade = ‘A’
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.51
1256678125403812788581230807
Student_ID
121046612492901244262125249012671701248100124348312303821240224122278112318061246648
Cappiello, EmiliaDalal, AlanaOrner, KatyFrigo, Avis
Name
Stober, SaundraBorba, Milagros
Sosnowski, HillaryNibert, Emilia
Popovic, TanishaSchreckengost, Max
Porcelli, DarrenSinko, Erik
Tarvin, JulioLessig, Elnora
Thon, MaxTrembley, Allyson
FFFM
Gender
FFFFFMMMMFMF
SophomoreSeniorJuniorSenior
Class
JuniorFreshman
JuniorSophomoreFreshman
SeniorJunior
FreshmanSophomore
JuniorSophomore
Junior
62927664
Score
9096685995766791856382
100
DACD
Grade
AADFACDABDBA
Queryに最適化されたカラム配置に並び替え
データ保持イメージ①
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.52
1256678Cappiello, 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 100A
Student_IDNameScoreClassGender Grade
並び替え
SORT
データ保持イメージ②
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.53
A
D
B
AJunior
Senior
Freshman
Junior
Sophomore
Sophomore
Junior
Junior
FF
F
M
FF
F
F
M
M
M
F
M
F
1256678Cappiello, EmiliaSophomore 62D1254038Dalal, AlanaSenior 92A
1278858Orner, Katy76C
1230807Frigo, Avis64D
1210466Stober, SaundraJunior 901249290Borba, Milagros96
1244262Sosnowski, Hillary68
1252490Nibert, Emilia59F
1267170Popovic, TanishaF Freshman 95A
1248100Schreckengost, MaxSenior 76C
1243483Porcelli, DarrenJunior 67D1230382Sinko, ErikM Freshman 91A
1240224Tarvin, Julio85
1222781Lessig, Elnora63D
1231806Thon, MaxSophomore 82B
1246648Trembley, Allyson100
Student_IDNameScoreClassGender Grade
A
圧縮
データ保持イメージ③
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.54
A
D
B
AJunior
Senior
Freshman
Junior
Sophomore
Sophomore
Junior
Junior
FF
F
M
FF
F
F
M
M
M
F
M
F
1256678Cappiello, Emilia621254038Dalal, Alana
SophomoreSenior 92
1278858Orner, Katy76
1230807Frigo, Avis64
1210466Stober, SaundraJunior 901249290Borba, Milagros96
1244262Sosnowski, Hillary68
1252490Nibert, Emilia59
1267170Popovic, TanishaF Freshman 95A
1248100Schreckengost, MaxSenior 76DC
1243483Porcelli, Darren671230382Sinko, ErikM 91
1240224Tarvin, Julio85
1222781Lessig, Elnora63CD
1231806Thon, MaxJunior
Freshman
Sophomore 82
DA
F
DA
B
1246648Trembley, Allyson100
Student_IDNameScoreClassGender
F
Grade
AJuniorJuniorJuniorJuniorJunior
AA
90100
1st I/OReads entire
column
2nd I/O 3rd I/O 4th I/O
offset offset
少ないIOで効率的に検索
Example query: select avg( Score ) from example whereClass = ‘Junior’ and Gender = ‘F’ and Grade = ‘A’
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.55
6. DB最適化(DB Designer)
Vertica構築・運用ステップ
DB Designerの”Comprehensive”モードでDB初期最適化を実行
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
6. Configuration Menu2. Run Database
Designer対象DBの選択
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.56
6. DB最適化(DB Designer)
Vertica構築・運用ステップ
DB Designerの”Comprehensive”モードでDB初期最適化を実行
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
パスワード入力ログ/生成DDL出力先指定
プロジェクション名指定
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.57
6. DB最適化(DB Designer)
Vertica構築・運用ステップ
DB Designerの”Comprehensive”モードでDB初期最適化を実行
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
■Comprehensive(DB全体)□Incremental(特定のクエリ)の選択
対象スキーマの選択
□Comprehensiveでもqueryを指定が可能■統計情報を取得するかどうか■DDLを生成して後から実行するか、この対話形式の中でプロジェクションを作成するかの選択
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.58
6. DB最適化(DB Designer)
Vertica構築・運用ステップ
DB Designerの”Comprehensive”モードでDB初期最適化を実行
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
K-safeの指定1を選択した場合はレプリカを1つ隣のノードに
持つ
確認/実行
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.59
6. DB最適化(DB Designer)
Vertica構築・運用ステップVertica Install DB作成
Schema/Table作成
LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
■プロジェクションの構造が変わった
件数の少ないプロジェクションは非分散になった
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.60
■生成されたプロジェクションDDL
SELECT
online_sales_fact.sale_date_key,
:
online_sales_fact.transaction_type
FROM online_sales.online_sales_fact
CREATE PROJECTION online_sales.online_sales_fact_DBD_3_seg_VMart_DBD /*+createtype(D)*/(
sale_date_key ENCODING DELTARANGE_COMP,
:
transaction_type ENCODING RLE ) AS
列の選択&
圧縮率の指定
実データの指定
ORDER BY online_sales_fact.transaction_type,
:
online_sales_fact.pos_transaction_number
列の並び替え
SEGMENTED BY HASH(online_sales_fact.pos_transaction_number) ALL NODES; ノードに分散する
HASH KEYの指定
6. DB最適化(DB Designer)
Vertica構築・運用ステップVertica Install DB作成
Schema/Table作成
LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
定義が変わった
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.61
7. 追加Data load
Vertica構築・運用ステップ
以降、順次データをロードし最適化されたProjectionにデータを格納
Vertica Install DB作成Schema/Table
作成LB設定
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
Vertica
Node#1
PC
TeraTerm/putty etc
Node#2 Node#N
データベース
…Management Console
スキーマ
最適化Projectionにロード
ETL Server
APL
Data
Bulkロードで高速インポート
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.62
8. DB Tuning(DB Designer)
Vertica構築・運用ステップ
DB Designerの”Incremental”モードで追加SQLに対して最適化を実行
Vertica Install DB作成 Schema作成 Table作成
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
Vertica
Node#1
PC
TeraTerm/putty etc
Node#2 Node#N
Admintools
ssh
…Management Console
https
データベース
スキーマ
Projectionの追加生成圧縮・ソートあり・必要カラムのみ
CUI または GUIから実行可能
query
プロジェクションを自動で追加作成
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.63
8. DB Tuning(DB Designer)
Vertica構築・運用ステップ
DB Designerの”Incremental”モードで追加SQLに対して最適化を実行
6. Configuration Menu2. Run Database
Designer対象DBの選択
Vertica Install DB作成 Schema作成 Table作成
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.64
8. DB Tuning(DB Designer)
Vertica構築・運用ステップ
DB Designerの”Incremental”モードで追加SQLに対して最適化を実行
パスワード入力ログ/生成DDL出力先指定
プロジェクション名指定
Vertica Install DB作成 Schema作成 Table作成
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.65
8. DB Tuning(DB Designer)
Vertica構築・運用ステップ
DB Designerの”Incremental”モードで追加SQLに対して最適化を実行
□Comprehensive(DB全体)■Incremental(特定のクエリ)の選択
対象スキーマの選択
■統計情報を取得するかどうか■DDLを生成して後から実行するか、この対話形式の中でプロジェクションを作成するかの選択
Vertica Install DB作成 Schema作成 Table作成
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.66
8. DB Tuning(DB Designer)
Vertica構築・運用ステップ
DB Designerの”Incremental”モードで追加SQLに対して最適化を実行
チューニングしたいQueryの記載されたファ
イルPathを指定確認/実行
Vertica Install DB作成 Schema作成 Table作成
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
K-safeの指定1を選択した場合はレプリカを1つ隣のノードに
持つ
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.67
8. DB Tuning(DB Designer)
Vertica構築・運用ステップVertica Install DB作成 Schema作成 Table作成
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
■プロジェクションが追加された
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.68
8. DB Tuning(DB Designer)
Vertica構築・運用ステップVertica Install DB作成 Schema作成 Table作成
初期Data loadDB最適化
(DB Designer)DB Tuning
(DB Designer)追加Data load
■生成されたプロジェクションDDL
SELECT
online_sales_fact.online_page_key
FROM online_sales.online_sales_fact
CREATE PROJECTION online_sales.online_sales_fact_DBD_2_seg_VMart_DBD_inc /*+createtype(D)*/
(
online_page_key ENCODING RLE
) AS
列の選択&
圧縮タイプの指定
実データの指定
ORDER BY online_sales_fact.online_page_key 列の並び替えSEGMENTED BY HASH(online_sales_fact.online_page_key) ALL NODES;
ノードに分散する
HASH KEYの指定列を絞ったプロジェクションが生成
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.69
その他:データ再編成処理
• Verticaでは、DefragmentationやVACUUMといった再編成処理の必要なし
• Tuple Moverと呼ばれるメンテナンス処理(≒ Defragmentation、VACUUM)が定期的にバックグラウンドで実行され、常にデータ配置を最適化
• Tuple Mover実行中も検索やロードは可能
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.70
優れたGUIベースの無償バンドルツールで複数ノードを透過的に運用管理可能
その他:マネージメントコンソール
データベース操作・設定
•管理画面からのデータベースのスタートとストップ、リバランス操作が可能
•データベースデザイナーの実行、SQL実行計画の確認が可能
•各種パラメータセッティング
MPP監視に適したユーザインタフェース
•自動的にノード数に応じたシステム構成をグラフィカルに表示
•システム全体の動作状況を監視
•各ノードへドリルダウンし、個別ノードのログ、リソース利用状況の可視化が可能
各種データをリアルタイムにモニタリング
•各ノードのリソース利用状況
•実行中および任意の時間帯の実行済みSQL文
•ライセンス利用状況・ログ
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.71
Simple!
© Copyright 2014 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.72
HP Vertica Community Editionデータ量1TB/クラスター構成3ノードまで、
無期限でお試しいただけます
HP Verticaの全ての機能を使えます
Community Edition用のインストールガイド(日本語)もご用意しています
Let’s download!