mariadb columnstore 始めませんか?

81
MariaDB ColumnStore はじめませんか? JPMUG 代表 カワノ

Upload: kawano-kazuyuki

Post on 21-Jan-2018

444 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: MariaDB ColumnStore 始めませんか?

MariaDB ColumnStoreはじめませんか?JPMUG 代表 カワノ

Page 2: MariaDB ColumnStore 始めませんか?

ColumnStoreとは?

Page 3: MariaDB ColumnStore 始めませんか?

ColumnStoreの歴史

Page 4: MariaDB ColumnStore 始めませんか?

ColumnStoreとは?

チューニングレスで⾼い検索パフォーマンスを実現するDWH特化型データベース

Page 5: MariaDB ColumnStore 始めませんか?

ColumnStoreとは?

•分析/集計処理に最適なカラムストアエンジン•MySQLとの互換性•専⽤HD不要•リニアにスケールアウト

Page 6: MariaDB ColumnStore 始めませんか?

ColumnStoreとは?

パフォーマンス改善の切り札

Page 7: MariaDB ColumnStore 始めませんか?

アーキテクチャ

•⼤規模並列処理(MassivelyParallelProcessing)

Page 8: MariaDB ColumnStore 始めませんか?

アーキテクチャ

⼤規模並列処理

Clients

UserModule

PerformanceModule

ColumnStore DistributedDataStorage

Usersessions

MariaDBSQLFrontEnd

QueryEngine

LocalStorage,SANEBS,HDFS…

Page 9: MariaDB ColumnStore 始めませんか?

アーキテクチャ

対称型マルチプロセッシング(SMP)

Clients

UserModule

PerformanceModule

ColumnStore DistributedDataStorage

Usersessions

MariaDBSQLFrontEnd

QueryEngine

LocalStorage,SANEBS,HDFS…

Page 10: MariaDB ColumnStore 始めませんか?

アーキテクチャ

⼤規模並列処理

• ユーザーモジュール• MariaDB Serverインスタンスと並⾏スケーリングを扱うためのプロセス

Page 11: MariaDB ColumnStore 始めませんか?

アーキテクチャ

⼤規模並列処理

• パフォーマンスモジュール• パフォーマンスモジュールはデータの保存、検索、管理を受け持ち、クエ

リー操作に対するブロックへのリクエストを処理し、クエリーに応えるプロセス。

Page 12: MariaDB ColumnStore 始めませんか?

アーキテクチャ

⼤規模並列処理

• ストレージ• オンプレミスで動作するときは、ローカルストレージや、SANなどの共通

ストレージを使⽤可能• AmazonEC2環境では、ephemeralまたはElasticBlockStore(EBS)を使⽤可能• シェアードナッシング環境でデータの冗⻑化が必要な場合、GlusterFSや

ApacheHadoopDistributedFileSystem(HDFS)を使⽤可能

Page 13: MariaDB ColumnStore 始めませんか?

アーキテクチャ

システムデータベース

• calpontsys :• ColumnStoreテーブルのメタデータを管理

• infinidb_querystats :• クエリパフォーマンス情報を管理

• infinidb_vtable :• クエリ実⾏の⼀部である⼀時テーブルの作成に使⽤されます。ColumnStoreクエリを実⾏するすべてのユーザーは、このデータベース上で、⼀時テーブルオプションを作成する必要があります。

Page 14: MariaDB ColumnStore 始めませんか?

アーキテクチャ

ExtentMap

• 物理的なセグメントファイル内に存在する論理ブロック

• エクステント及び対応するブロックを管理

• データの抽出と配置は、エクステントマップにより⾼速で処理される

• リアルタイム解凍と圧縮• バージョンバッファーファイル

(UNDO)

Page 15: MariaDB ColumnStore 始めませんか?

アーキテクチャ

ExtentMap

SELECTCOL– D

FROMTABLE

WHERECOL- D BETWEEN110 AND180

;

Page 16: MariaDB ColumnStore 始めませんか?

アーキテクチャ

ExtentMap

SELECTCOL– D

FROMTABLE

WHERECOL- D BETWEEN110 AND180

;

Page 17: MariaDB ColumnStore 始めませんか?

リニアにスケールアウト

17

Page 18: MariaDB ColumnStore 始めませんか?

おまけ

Transaction

Engine Transactions XAColumnstore YES NOMyISAM NO NOInnoDB YES YES

Page 19: MariaDB ColumnStore 始めませんか?

Transaction

ColumnStore vsInnoDB

sysbench# sysbench --test=oltp --db-driver=mysql --mysql-socket=/usr/local/mariadb/columnstore/mysql/lib/mysql/mysql.sock--num-threads=1 --max-requests=500 --max-time=0 --oltp-test-mode=complex --mysql-user=sbtest--mysql-password=sbtest --oltp-test-mode=nontrx --oltp-nontrx-mode=insert run

※ columnstoreは並列度が1じゃないとlockエラーするのでnum-threads=1で⽐較

Page 20: MariaDB ColumnStore 始めませんか?

Columnstore Install

Page 21: MariaDB ColumnStore 始めませんか?

Install

Preparing for ColumnStore Installationhttps://mariadb.com/kb/en/the-mariadb-library/preparing-for-columnstore-installation/

• 上記サイトを参考にCentOS 7.2 にSingle Server構成でインストール

Item DescriptionPhysicalServer 8coreIntel/AMD,32GBMemory

Storage LocaldiskwithappropriateRAIDredundancyornetworkattachedstorage

MinimumHardwareSpecification

Page 22: MariaDB ColumnStore 始めませんか?

Install

ColumnStore関連パッケージインストール#yum-yinstallboostexpectperl perl-DBIopenssl zlib filesudo libaio rsync snappynet-toolsperl-DBD-MySQL

RPMパッケージ取得 &解凍#wgethttps://downloads.mariadb.com/ColumnStore/1.0.9/centos/x86_64/7/mariadb-columnstore-1.0.9-1-centos7.x86_64.rpm.tar.gz#tarzxvf mariadb-columnstore-1.0.9-1-centos7.x86_64.rpm.tar.gz#rpm-ivh *.rpm

Page 23: MariaDB ColumnStore 始めませんか?

Install

RPMパッケージインストール#rpm-ivh *.rpm

RPMパッケージ確認#rpm-qa |grepmariadbmariadb-columnstore-libs-1.0.9-1.x86_64mariadb-columnstore-platform-1.0.9-1.x86_64mariadb-columnstore-common-1.0.9-1.el7.centos.x86_64mariadb-columnstore-client-1.0.9-1.el7.centos.x86_64…

Page 24: MariaDB ColumnStore 始めませんか?

Install

ColumnStore初期設定#/usr/local/mariadb/columnstore/bin/postConfigureSelectthetypeofSystemServerinstall[1=single,2=multi](2)>1EnterSystemName(columnstore-1)>columnstore-1SelectthetypeofDataStorage[1=internal,2=external](1)>1Enterthelist(Nx,Ny,Nz)orrange(Nx-Nz)ofDBRoot IDsassignedtomodule'pm1'(1)>1=====PerformingConfigurationSetupandMariaDB ColumnStore Startup=====...Enter'mcsmysql'toaccesstheMariaDB ColumnStore SQLconsoleEnter'mcsadmin'toaccesstheMariaDB ColumnStore Adminconsole

Page 25: MariaDB ColumnStore 始めませんか?

Console

Page 26: MariaDB ColumnStore 始めませんか?

SQLコンソール mcsmysql

•MariaDB CoumnStore ⽤コンソール• mysql コンソールと使⽤⽅法は同⼀

Page 27: MariaDB ColumnStore 始めませんか?

管理コンソール mcsadmin

• ColumnStore Administrative Console• 起動/停⽌• UM/PM構成管理• 統計情報取得

Page 28: MariaDB ColumnStore 始めませんか?

管理

mcsadmin Command

[myuser@srv1~]#mcsadminMariaDB Columnstore AdminConsoleenter'help'forlistofcommandsenter'exit'toexittheMariaDB Columnstore CommandConsoleuseup/downarrowstorecallcommandsActive AlarmCounts:Critical=0,Major=0,Minor=0,Warning=0,Info=0CriticalActiveAlarms:mcsadmin>quit

Page 29: MariaDB ColumnStore 始めませんか?

管理

Systemoperation

停⽌[myuser@srv1~]#mcsadmin stopSystem [y]起動[myuser@srv1~]#mcsadmin startSystem再起動[myuser@srv1~]#mcsadmin restartSystem [y]

Page 30: MariaDB ColumnStore 始めませんか?

管理

Viewingsystemstatus

[myuser@srv1~]#mcsadmin getSystemStatusgetsystemstatus Wed Aug3014:27:232017Systemcolumnstore-1Systemand ModulestatusesComponent StatusLastStatusChange------------------ ------------------------- --------------------------------------System ACTIVEFri Jun 10 01:50:46 2016Module pm1ACTIVE Fri Jun 10 01:50:43 2016

Page 31: MariaDB ColumnStore 始めませんか?

管理

Viewingprocessstatus

[myuser@srv1~]#mcsadmin getProcessStatusgetprocessstatus Wed Aug3014:27:232017Systemcolumnstore-1MariaDB Columnstore Process statusesProcess ModuleStatusLastStatusChange ProcessID--------------------- ----------- ----------- ---------------------------------- -------------ProcessMonitor pm1ACTIVEFriJun1001:50:042016 2487ProcessManager pm1 ACTIVEFriJun1001:50:102016 2673…

Page 32: MariaDB ColumnStore 始めませんか?

管理

Viewingnetworkconfiguration

[myuser@srv1~]#mcsadmin getSystemNetworkConfiggetsystemstatus Wed Aug3014:27:232017Systemcolumnstore-1Systemand ModulestatusesComponent StatusLastStatusChange------------------ ------------------------- --------------------------------------System ACTIVEFri Jun 10 01:50:46 2016Module pm1ACTIVE Fri Jun 10 01:50:43 2016

Page 33: MariaDB ColumnStore 始めませんか?

管理

Viewingmoduleconfiguration

[myuser@srv1~]#mcsadmin getModuleConfiggetmoduleconfig Wed Aug3014:27:232017ModuleNameConfiguration

Module'um1'Configuration informationModuleType =umModuleDesc =UserModule#1ModuleIPAdd NICID1=10.100.7.80ModuleHostName NICID1=srvhst2…

Page 34: MariaDB ColumnStore 始めませんか?

管理

Commandrepeatoption

[myuser@srv1~]#mcsadmin getProcessStatus -r2repeatingthecommand'getProcessStatus'every2seconds,enterCTRL-Dtostop…

Page 35: MariaDB ColumnStore 始めませんか?

Dataimport

Page 36: MariaDB ColumnStore 始めませんか?

インポート

• cpimport インポート専⽤コマンド• ⾼速にデータロード可能

• LOADDATAINFILE,INSERTINTOSELECTFROMもサポート• 内部的にはcpimportコマンドで実⾏

Page 37: MariaDB ColumnStore 始めませんか?

cpimport

Page 38: MariaDB ColumnStore 始めませんか?

インポート

cpimport 読み込み対象ファイル

• 区切り⽂字は ”|”がデフォルト• -sオプションで区切り⽂字指定

• テーブルカラムとデータの並び順を⼀致させる• ⼀致しない場合は別途 jobfileを作成する必要がある

• ⽇付フォーマットは”yyyy-mm-dd “にしておく• フォーマット違いは全て 0000-00-0000:00:00 になる

Page 39: MariaDB ColumnStore 始めませんか?

インポート

cpimport

• データロード中でもテーブル参照可能• ロード完了後に追加分の参照ができるようになる

• トランザクションログへの出⼒はされない

Page 40: MariaDB ColumnStore 始めませんか?

インポート

cpimport 実⾏例

[myuser@srv1~]# cpimport sampletable1/tmp/table1.csv–s ‘,’–E ‘”’Localeis:CColumndelimiter:,EnclosedbyCharacter:”

UsingtableOID3278asthedefaultJOBIDInputfile(s)willbereadfrom:/root/tmp…2017-08-3116:16:37(18403)INFO:Fortablesample.table1:10000rowsprocessedand10000rowsinserted.…2017-08-3116:16:37(18403)INFO:Bulkloadcompleted,totalruntime:1.22974seconds

DB TABLE Filepath option

Page 41: MariaDB ColumnStore 始めませんか?

INSERTSELECTLOADDATAINFILE

Page 42: MariaDB ColumnStore 始めませんか?

インポート

INSERTSELECT使⽤時の注意点

• デフォルトの区切り⽂字が ’7 ‘•データに 7が含まれる場合infinidb_import_for_batchinsert_delimiter変数の値を任意のascii_valueに変更する必要がある

Page 43: MariaDB ColumnStore 始めませんか?

インポート

INSERTSELECT,LOADDATAINFILE共通の注意点

•ロードするデータファイルサイズが⼤きい場合バッファサイズ不⾜でロードに失敗する• ERROR1815(HY000)atline1infile:’table1.sql':Internalerror:CAL0006:IDB-2008:Theversionbufferoverflowed.IncreaseVersionBufferFileSize orlimittherowstobeprocessed.

Page 44: MariaDB ColumnStore 始めませんか?

インポート

INSERTSELECT,LOADDATAINFILE共通の注意点

•VersionBufferFileSizeの変更⼿順は2つ• Columnstore.xml を編集• configxml.sh スクリプトでColumnstore.xmlを編集

•Columnstore.xml とは?• ColumnStore 専⽤の設定ファイルを記述したXMLファイル

Page 45: MariaDB ColumnStore 始めませんか?

インポート

VersionBufferFileSize確認/変更

[myuser@srv1~]# cd/usr/local/mariadb/columnstore/etc/[myuser@srv1~]# viColumnstore.xml…<VersionBuffer>

<!-- VersionBufferFileSize mustbeamultipleof8192.OneversionbufferfilewillbeputoneachDBroot.--><VersionBufferFileSize>1GB</VersionBufferFileSize>

</VersionBuffer>…

Page 46: MariaDB ColumnStore 始めませんか?

インポート

VersionBufferFileSize確認/変更

[myuser@srv1~]# cd/usr/local/mariadb/columnstore/bin/

[myuser@srv1~]# configxml.sh getconfig VersionBuffer VersionBufferFileSizeCurrentvalueofVersionBuffer /VersionBufferFileSize is1GB

[myuser@srv1~]# configxml.sh setconfig VersionBuffer VersionBufferFileSize 10GBOldvalueofVersionBuffer /VersionBufferFileSize is1GBVersionBuffer /VersionBufferFileSize nowsetto10GB

section variablecommand

Page 47: MariaDB ColumnStore 始めませんか?

インポート

cpimport vsLOADDATAINFILE

CSV 10,000,000件 約1GB

Page 48: MariaDB ColumnStore 始めませんか?

データサイズの確認

Page 49: MariaDB ColumnStore 始めませんか?

データサイズの確認

• columnstore_info StoredProcedure• total_usage()• table_usage()

ColumnStore InformationSchemaTableshttps://mariadb.com/kb/en/the-mariadb-library/columnstore-information-schema-tables/#columnstore_extents

Page 50: MariaDB ColumnStore 始めませんか?

データサイズの確認

全体の使⽤サイズ

MariaDB [(none)]> callcolumnstore_info.total_usage();+-------------------------+----------------------------+|TOTAL_DATA_SIZE|TOTAL_DISK_USAGE|+-------------------------+----------------------------+|1.49GB |1.58GB |+-------------------------+----------------------------+

Page 51: MariaDB ColumnStore 始めませんか?

データサイズの確認

Table毎の使⽤サイズ

MariaDB [(none)]> callcolumnstore_info.table_usage(NULL,NULL);+-----------------------+---------------------+---------------------------+-------------------------+---------------------+|TABLE_SCHEMA|TABLE_NAME|DATA_DISK_USAGE|DICT_DISK_USAGE|TOTAL_USAGE|+-----------------------+---------------------+---------------------------+-------------------------+---------------------+|loadtest |load_cpimport |638.90MB |140.08MB |778.98MB||loadtest |load_infile |638.89MB |140.08MB |778.97MB |+-----------------------+---------------------+---------------------------+-------------------------+---------------------+

Page 52: MariaDB ColumnStore 始めませんか?

Cross-EngineJoinssetting

Page 53: MariaDB ColumnStore 始めませんか?

クロス・エンジン結合設定

• ColumnStoreテーブルと⾮ColumnStoreテーブルを結合する場合別途設定が必要• Columnstore.xml 定義変更• ColumnStore 再起動

ColumnStoreクロス・エンジン結合の構成https://mariadb.com/kb/ja/configuring-columnstore-cross-engine-joins/

Page 54: MariaDB ColumnStore 始めませんか?

クロス・エンジン結合設定

CrossEngineSupport変更

[myuser@srv1~]# cd/usr/local/mariadb/columnstore/etc/[myuser@srv1~]# viColumnstore.xml…<CrossEngineSupport>

<Host>127.0.0.1</Host><Port>3306</Port><User>mydbuser</User><Password>pwd</Password>

</CrossEngineSupport>…

Page 55: MariaDB ColumnStore 始めませんか?

Executionplan

Page 56: MariaDB ColumnStore 始めませんか?

実⾏計画及び統計情報の取得

• EXPLAINでは有益な情報を得られない•専⽤関数 calSetTrace(),calGetTrace()を使⽤する

Page 57: MariaDB ColumnStore 始めませんか?

実⾏計画及び統計情報の取得

calSetTrace(),calGetTrace()

MariaDB [test]> select calSetTrace(1);MariaDB [test]> select item,name from snmp.raw_201607limit 1000;MariaDB [test]> select calGetTrace();

Desc Mode Table TableOID ReferencedColumns PIOLIOPBEElapsed RowsBPSPM raw_201607 3000 (item,time) 0 2287 34078 0.014 1915TNSUM - - - - - - 0.006 1000

MariaDB [test]> select calSetTrace(0);

Page 58: MariaDB ColumnStore 始めませんか?

実⾏計画及び統計情報の取得

実⾏計画の⾒⽅Desc Mode Table TableOID ReferencedColumns PIO LIO PBE Elapsed Rows

BPS PM raw_201607 3000 (item,time) 0 2287 34078 0.014 1915

TNS UM 0.005 1000

Page 59: MariaDB ColumnStore 始めませんか?

実⾏計画及び統計情報の取得

実⾏計画の⾒⽅Desc Mode Table TableOID ReferencedColumns PIO LIO PBE Elapsed Rows

BPS PM raw_201607 3000 (item,time) 0 2287 34078 0.014 1915

TNS UM 0.005 1000

BPS BatchPrimitiveStep 列ブロック⾛査及びデータ取得CES CrossEngineStep クロスエンジンJoinの実⾏DSS DictionaryStructureStep 特定の可変⻑⽂字列値に対するディクショナリスキャンHJS HashJoinStep Hashjoinの実⾏HVS HavingStep 実⾏結果に対するHavingの実⾏SQS SubQueryStep サブクエリ実⾏TAS TupleAggregationstep PMノードからUMで中間集約結果受信TNS TupleAnnexationStep 結果作成(filter,orderby,limit…)TUS TupleUnionstep サブクエリ結果結合TCS TupleConstantStep 定数処理WFS WindowFunctionStep Window function実⾏

Page 60: MariaDB ColumnStore 始めませんか?

実⾏計画及び統計情報の取得

実⾏計画の⾒⽅Desc Mode Table TableOID ReferencedColumns PIO LIO PBE Elapsed Rows

BPS PM raw_201607 3000 (item,time) 0 2287 34078 0.014 1915

TNS UM 0.005 1000

Partition Blocks Eliminated• エクステントマップにより読み⾶ばしたブロックサイズ• この値が0の場合、エクステントマップの恩恵を得られていない

Page 61: MariaDB ColumnStore 始めませんか?

実⾏計画及び統計情報の取得

キャッシュクリア

MariaDB [test]> selectcalFlushCache();MariaDB [test]> select item,name from snmp.raw_201607limit 1000;MariaDB [test]> select calGetTrace();

Desc Mode Table TableOID ReferencedColumns PIO LIOPBEElapsed RowsBPSPM raw_201607 3000 (item,time) 37341 2287 34078 0.014 1915TNSUM - - - - - - 0.006 1000

MariaDB [test]> select calSetTrace(0);

Page 62: MariaDB ColumnStore 始めませんか?

実⾏計画及び統計情報の取得

selectcalGetStats();

MariaDB [test]> selectcount(*)fromwide2;…1rowinset(0.22sec)

MariaDB [test]> selectcalGetStats();QueryStats:MaxMemPct-0;NumTempFiles-0;TempFileSpace-0B;ApproxPhyI/O-1931;CacheI/O-2446;BlocksTouched-2443;PartitionBlocksEliminated-0;MsgBytesIn-73KB;MsgBytesOut-1KB;Mode-Distributed

Page 63: MariaDB ColumnStore 始めませんか?

ExtentMap

Page 64: MariaDB ColumnStore 始めませんか?

エクステントマップ確認

•調査対象のカラムOID取得• editemプロセスからエクステントマップ情報を取得• 引数にカラムID必須

Page 65: MariaDB ColumnStore 始めませんか?

エクステントマップ確認

カラムOID取得

Select`schema`,`tablename`,`columnname`,`objectid`

Fromcalpontsys.syscolumn

Where`schema` =‘対象スキーマ名’and`tablename`=‘対象テーブル名’and`tablename`=‘対象カラム名’

;

Page 66: MariaDB ColumnStore 始めませんか?

エクステントマップ確認

editemプロセスから情報取得

[myuser@srv1~]# /usr/local/mariadb/columnstore/bin/editem -o3019ColOID=3019,NumExtents =1,width=4234496- 238591(4096)min:0,max:3,seqNum:10,state:valid,fbo:0,DBRoot:1,part#:0,seg#:0,HWM:0;status:avail…

Page 67: MariaDB ColumnStore 始めませんか?

エクステントマップ確認

editemプロセスから情報取得

[myuser@srv1~]# /usr/local/mariadb/columnstore/bin/editem -o3298ColOID=3298,NumExtents =2,width=81311744- 1319935(8192)min:notset,max:notset,seqNum:0,state:valid,fbo:0,DBRoot:1,part#:0,seg#:0,HWM:8191;status:avail1418240- 1426431(8192)min:notset,max:notset,seqNum:0,state:invalid,fbo:0,DBRoot:1,part#:0,seg#:1,HWM:1575;status:avail

Page 68: MariaDB ColumnStore 始めませんか?

エクステントマップが機能しない(使えない)パターン

Datatypes Colmun Size Enable

TINYINT - ●

SMALLINT - ●

INTEGER/INT - ●

BIGINT - ●

DECIMAL/NUMERIC

- ●

DOUBLE/REAL - ×

FLOAT - ×

DATE - ●

DATETIME - ●

CHAR 8バイト以下 ●

9バイト以上 ×

VARCHAR 7バイト以下 ●

8バイト以上 ×

•その他• ⽇本語(UTF-8)の場合

1⽂字あたり3バイトなので注意• Min/Max値に差が無い場合

Page 69: MariaDB ColumnStore 始めませんか?

制限

• primarykeyの指定ができない• Indexの作成ができない•レプリケーション⾮対応•対応カラム型に制限あり

Page 70: MariaDB ColumnStore 始めませんか?

Datatypes ColumnSize Description

BIGINT 8-bytes Alargeinteger.Numericvaluewithscale0.Signed:-9,223,372,036,854,775,806to+9,223,372,036,854,775,807Unsigned:0to+18,446,744,073,709,551,613

CHAR 1,2,4,or8bytes Holdslettersandspecialcharactersoffixedlength.Maxlengthis255.Defaultandminimumsizeis1byte.

DATE 4-bytesDatehasyear,month,andday.Theinternalrepresentationofadateisastringof4bytes.Thefirst2bytesrepresenttheyear,.5bytesthemonth,and.75bytesthedayinthefollowingformat:YYYY-MM-DD.Supportedrangeis1000-01-01to9999-12-31.

DATETIME 8-bytes Adateandtimecombination.Supportedrangeis1000-01-0100:00:00to9999-12-3123:59:59.

DECIMAL/NUMERIC 2,4,or8bytes Apackedfixed-pointnumberthatcanhaveaspecifictotalnumberofdigitsandwithasetnumberofdigitsafteradecimal.Themaximumprecision(totalnumberofdigits)thatcanbespecifiedis18.

DOUBLE/REAL 8bytesStoredin64-bitIEEE-754floatingpointformat.Assuch,thenumberofsignificantdigitsisabout15andtherangeofvaluesisapproximately+/-1e308.TheMySQLextensiontospecifyprecisionandscaleisnotsupported.“REAL”isasynonymfor“DOUBLE”.

FLOAT 4bytes Storedin32-bitIEEE-754floatingpointformat.Assuch,thenumberofsignificantdigitsisabout6andtherangeofvaluesisapproximately+/- 1e38.TheMySQLextensiontospecifyprecisionandscaleisnotsupported.

INTEGER/INT 4-bytes Anormal-sizeinteger.Numericvaluewithscale0.Signed:-2,147,483,646to2,147,483,647.Unsigned:0to4,294,967,293

SMALLINT 2-bytes Asmallinteger.Signed:-32,766to32,767.Unsigned:0to65,533.

TINYINT 1-byte Averysmallinteger.Numericvaluewithscale0.Signed:-126to+127.Unsigned:0to253.

VARCHAR 1,2,4,or8bytesor8-bytetoken

Holdsletters,numbers,andspecialcharactersofvariablelength.Maxlength=8000bytesorcharactersandminimumlength=1byteorcharacter.

Page 71: MariaDB ColumnStore 始めませんか?

まとめ

Page 72: MariaDB ColumnStore 始めませんか?

ColumnStoreとは?

チューニングレスで⾼い検索パフォーマンスを実現するDWH特化型データベース

Page 73: MariaDB ColumnStore 始めませんか?

ColumnStoreとは?

•コア数,ノード数を増やすことでリニアにスケールアウト•エクステントマップによるI/Oコスト削減

Page 74: MariaDB ColumnStore 始めませんか?

ColumnStoreとは?

要件をきちんと把握した上であれば

使えます!

Page 75: MariaDB ColumnStore 始めませんか?

ColumnStore始めませんか?

Page 76: MariaDB ColumnStore 始めませんか?

ColumnStore 1.1

Page 77: MariaDB ColumnStore 始めませんか?

ColumnStore 1.1

• 1.1ではいくつかのエキサイティングな新機能が追加• ColumnStoreエンジンとMariaDBサーバーはGPLライセンス• ⼀部の新しいコンポーネントはLGPLとBSLのライセンス

Page 78: MariaDB ColumnStore 始めませんか?

ColumnStore1.1

Features

Data engine MariaDB 10.2base

Streaming/API バルクインポートAPI

HighAvailability GlusterFSサポート(HA)Analytics ユーザー定義集計関数,WindowFunctions

DataTypes TEXT型,Blob型のサポートEaseofUse バックアップ&リストアツールの提供Performance クエリ&メモリ処理改善Security MariaDB Audit pluginと統合Certifications

Page 79: MariaDB ColumnStore 始めませんか?

ColumnStore1.1

DataStreaming:ColumnStore DataAPI

•ストリーミングバルクインサート•直接PMノードへ書き込み要求を⾏う• ⼀括インポートのために巨⼤なCSVファイルを作成する必要が

ない• C++• LGPLlicensed

ColumnStore BulkWriteSDKhttps://mariadb.com/kb/en/library/columnstore-bulk-write-sdk/

Page 80: MariaDB ColumnStore 始めませんか?
Page 81: MariaDB ColumnStore 始めませんか?

Thankyouso,somuch!