SlideShare a Scribd company logo
1 of 30
Download to read offline
Modern Analytical DBに関するTopics
   - Column-DBの話題もあるよ! -


                                 2012.11.21
                列指向DBをみんなで勉強する会
                  Takeshi Yamamuro@maropu



                                              1
Introduction
• 名前
  – 山室健(Takeshi Yamamuro)


• 興味のあること
  – データ工学 / データベース周辺技術
     • PostgreSQL                         Twitter: maropu
     • 探索,圧縮,並び替え
  – Modern Hardware(CPU/GPU)によるアルゴリズム性能改善


• 本日の引用一覧
  – https://docs.google.com/spreadsheet/ccc?key=0AnhMe3L1c3Z5
    dFZ0TklsQUo5MlhDWHhReEM5NmpDQWc#gid=0

                                                            2
Notice
• 今回紹介する話題の範囲
  – C-StoreとMonetDB/X100周辺で発表された論文
  – Column-DBはDB分野的にHW-conscious optimizationに分
    類されるため‘列配置’と直接関係のない話題も




                                              3
長期的に見たAnalytical DBの方向性
• Stone Breaker, “What Does ‘Big Data’ Mean and Who Will
  Win?”, XLDB, 2012




                                                           4
長期的に見たAnalytical DBの方向性
• Stone Breaker, “What Does ‘Big Data’ Mean and Who Will
  Win?”, XLDB, 2012




                                                           5
長期的に見たAnalytical DBの方向性
• Stone Breaker, “What Does ‘Big Data’ Mean and Who Will
  Win?”, XLDB, 2012




                                                           6
Introduction to Modern Analytical DB   7
関連するDB研究の変遷
        ~1980’s           ~2000’s                                                        ~2012
                        Asilomar                                           Claremont
                        Report [Ber98]                                     Report [Agr09]

                                                             Int’l Workshop on Data
                                                             Management on New Hardware (DaMoN)
Columnar-storage                                             2005
for statistical
applications (1970’s)       Bottleneck shifts in databases                         VLDB 10 years
                            [Ail99, Bon99, Rao99]                                  best paper [Bon09]
              DSM [Geo85]
                                                        C-Store                   Vertica
                                                     2005
            DSM in Bubba, highly-
            parallel DB [Geo85]                                    Architecture shifts [Sto07]
                                      MonetDB
                    Around 1996                         Spin-off
                                                        in 2005                   2008
                                                        MonetDB/X100              Vectorwise
                                                                                                        8
データ構造
【前提】DBMSにおける処理の流れ                        処理




                SQL              メタデータ
字句解析/構文解析
                                 表情報、型情報
               Parser    Catalog
プラン最適化         Query
前処理とコストモデルに                       統計情報
よるプラン選択                           値の分布
              Planner    Statistics
 実行エンジン         Plan
 データアクセス                          ストレージ
 絞り込み、結合                          データベース
              Executor   Storage

                                              9
データ構造
   Modern Analytical DB周辺の話題                                 処理


                                                  メタデータ
                                                  カラム圧縮情報
                              SQL                 カラム複製情報
                                                  ソート情報
プラン最適化
圧縮コストモデル
                             Parser    Catalog
並列コストモデル
階層メモリコストモデル
分析処理独特な前処理
                             Query
- ベクトル処理の考慮
                                                 ストレージ
                            Planner    Statistics
                                                BAT(DSM), PAX, data
                                                 morphing, fractured
実行エンジン                        Plan               mirros, clotho,
tuples-at-a-time pipeline                        MV(ROS/WOS)
圧縮を考慮したPN処理
NSM/DSMの切り替え
HW-awareなPN処理
                            Executor   Storage
- sort/join/agg./scan
- cache-aware algorithms
- 並列/ベクトル処理実行                          関連技術の範囲
                                                                       10
Column-Stores vs. Raw-Stores [Dan08]
• 性能差を起こす本質的な違いは何か?

• 列志向化によるI/O削減は本質的な理由ではなく、
  compression/late materialization/join optimization等
  のプラン最適化が性能向上の鍵
                                     Figure 5から引用




                                                    11
ストレージ構成とプラン最適化
• 列志向(DSM)にした場合の重要な考慮点
 – 余剰に発生すjoinコストへの対処
 – プランノード(PN)のposition filter処理




        NSM                       DSM



                                        12
余剰に発生するjoinコストへの対処
• tupleに復元するために必要なjoin処理
                                              SELECT * FROM xxx;



                                                    A.pid = B.pid

 テーブルxxx                         Column A                                 Column B
  Name    Age                    pid    Name                        pid   Age
  Alice   28                      1         Alice                   4     24
                 sorted values



   Bill   24                      5         Bill                    5     24
  Bob     32                      2         Bob                     1     28
   Jill   24                      4          Jill                   3     29
  Steve   29                      3     Steve                       2     32

                ※pidはMonetDBのBATにおけるoid [Bon09]                                      13
ストレージ構成とプラン最適化
• Joinコストを軽減するための手法
 – 1. fractured mirrors [Rav02]やsuper projection [And12]の
   ように元の順序関係を維持したストレージ構成で最適化
 – 2. join Index [Val89](下図)、さらにjoin高速化で対処

  join index
                        column A                 column B
                           Name     join index        Age
                            Alice     3               24
        sorted values




                             Bill     2               24
                            Bob       5               28
                             Jill     1               29
                            Steve     4               32
                                                            14
join高速化関係の論文
•   Martina-Cezara Albutiu et al., Massively Parallel Sort-Merge Joins in Main
    Memory Multi-Core Database Systems, VLDB, 2012
•   S. Blanas et al., Design and Evaluation of main memory Hash Join
    Algorithms for Multi-core CPUs, SIGMOD, 2011
•   C. Kim et al., Sort vs. Hash Revisited: Fast Join Implementation on Modern
    Multi-Core CPUs, VLDB, 2008
•   Mehul A. Shah et al., Fast Scans and Joins using Flash Drives, DaMon, 2008
•   S. Chen et al., Improing Hash Join Performance through Prefetching, ACM
    TODS, 2007
•   S. Manegold et al., Optimizing main-Memory Join on Modern Hardware,
    IEEE TKDE, 2002
•   S. Manegold et al., What happens during a join dissecting CPU and
    Memory Optimization Effects, VLDB, 2000
•   P. A. Boncz et al., Database Architecture Optimized for the New
    Bottleneck: Memory Access, VLDB, 1999
                                                                            15
PNのposition filter処理 [Mig09]                      SELECT * FROM xxx
                                                   WHERE Age > 25;
 • selectノードが対象とするカ
   ラム以外の絞り込みはpidを
   用いて実施*                                                 A.pid = B.pid


 • selectノードのpush-down処                         Scan Node
                                              position filtered
                                                                    Copy Node
   理によりプランの下端部が
   有向グラフに                                                                 σ
                                                                      Age > 25

                                          pid        Name            pid   Age
 • copyノードが入力されたpid
                                          1           Alice
                          sorted values
                                                                      4       24
   集合からbitmapを作成して                        5            Bill           5       24
   scanノードに転送                             2           Bob             1       28
                                          4            Jill           3       29
                                          3          Steve            2       3216
*C-Storeのソースコードを参照
Vectorwize & Vertica



                       17
VectorwizeとVerticaの設計概要
• Vectorwise(旧MonetDB/X100) [Mar12]
  ストレージ構成

  – NSM/PAX~DSM/PAXで変更
     • DDLからの指定も可能だが、自動最適化も
  – データの圧縮はPFor系 [Mar06]
     • disk array(~1GiB/s)を前提にCPU高速な圧縮アルゴリズムを採用
  – position delta tree [Hem10]による高速な更新処理
     • 更新系と参照系のデータ構造を分割、あとでマージ処理




                                              18
VectorwizeとVerticaの設計概要
• Vectorwise(旧MonetDB/X100) [Mar12]
  プラン最適化/実行エンジン

  – tuples-at-a-time processing model [Bon05]を採用
  – プラン実行中のNSM/DSMの切り替え [Min04][Mar08]
     • 実行operatorによって最適なtuple構造が異なる
  – CPUのベクトル命令(SIMD)の活用
     • Intel SSE4.2を活用した高速な文字列処理 [Vec09]
     • ベクトル化のためのselectノードのpush-up処理 [Mar08]
  – exchange operatorsを用いたプランの並列化 [Ani10]
     • Volcano-style parallelism
  – JITコンパイルでの高速化 [Som11j, Som11v](future works)

                                                   19
VectorwizeとVerticaの設計概要
• Vectorwise構成からのPick-up 1/3
                 CPU高速な圧縮アルゴリズム [Mar06]
                 – Vectorwizeの基本設計はI/O転送速度とCPU処理速度の
                   均衡をとりながら性能の最大化を目指す
                 – 復元速度がGiB/s以上のlight-weightな圧縮手法を採用
                     30.0%                                                                               10.0

                                                                    最近の整数圧縮手法
 compression ratio




                                                                                                               decompress speed
                                                                                                         7.5
                                     compression ratio
                     20.0%
                                     decompress speed




                                                                                                                    (GiB/s)
                                                                                                         5.0

                     10.0%
                                                                                                         2.5


                      0.0%                                                                               0.0
                             delta        varbyte        bintpltv   optp4delta   vseblocks   vsesimple
                                                                                                                                  20
                                               使用ライブラリ: http://integerencoding.isti.cnr.it/
VectorwizeとVerticaの設計概要
• Vectorwise構成からのPick-up 1/3
  CPU高速な圧縮アルゴリズム [Mar06]
  – Vectorwizeの基本設計はI/O転送速度とCPU処理速度の
    均衡をとりながら性能の最大化を目指す
  – 復元速度がGiB/s以上のlight-weightな圧縮手法を採用
       文字列圧縮手法(単位はMiB/s)




                  引用:http://code.google.com/p/lz4/   21
VectorwizeとVerticaの設計概要
• Vectorwise構成からのPick-up 2/3
  tuples-at-a-time processing model [Bon05]を採用
  – 実行パイプライン上で一回のnext()コールに対して複数の
    tupleを処理する実行方式
  – 独立した処理を同時に処理することでCPU効率化を図る
    • instruction-level parallelism、SIMD最適化




                                              22
VectorwizeとVerticaの設計概要
• Vectorwise構成からのPick-up 2/3
  tuples-at-a-time processing model [Bon05]を採用




                                Figure 10から引用    23
VectorwizeとVerticaの設計概要
• Vectorwise構成からのPick-up 3/3
  ベクトル化のためのselect句のpush-up処理 [Mar08]
  – 選択率が高い場合はベクトル処理を優先したほうが良い
    ケースがあるため、selectノードをpush-upする




                      選択率が高い場合はSIMDで処理



                               論文内から引用


                                         24
VectorwizeとVerticaの設計概要
• Vertica(旧C-Store) [And12]
  ストレージ構成
  – super projectionとnon-super projectionによる構成
     • projectionは制限的なmaterialized view
     • super projectionは元の順序関係を全て明示的に保持
  – read and write optimized stores
     • 更新系と参照系のデータ構造を分割、あとでマージ処理
  – プランのscan operatorは6つの圧縮タイプに対応
     • run-length encoding、block dictionary、…




                                                 25
VectorwizeとVerticaの設計概要
• Vertica(旧C-Store) [And12]
  プラン最適化/実行エンジン
  – multi-thread/pipeline対応の実行エンジン
  – tuples-at-a-time processing model
  – 圧縮の効率的利用 [Mig09]
     • 圧縮データを直接処理可能な実行operators
     • 圧縮データ読み込みのコストモデル化
  – Send/Recs operatorによるプラン実行の分
    散化(volcano-style exchange operator)

                              Figure 3から引用



                                             26
VectorwizeとVerticaの設計概要
• Vertica構成からのPick-up 1/2
  Super ProjectionとNon-Super Projectionによる構成
  – 初期のC-Store[Sto05]の頃はprojection単位(列の論理グ
    ループ)のDSM構成だったが、joinコスト(join index経由)
    が打ち消せずにVertica移行時に構成を変更




              Table 1から引用        Example 1から引用




                                             27
VectorwizeとVerticaの設計概要
• Vertica構成からのPick-up 1/2
  Verticaが保持しているColumn-DB系のPatent
  – http://worldwide.espacenet.com/searchResults?compact=false
    &ST=singleline&query=Vertica&locale=en_EP&DB=worldwide.e
    spacenet.com

  –   DATABASE DESIGNER, US8290931
  –   QUERY OPTIMIZER, US2008033914
  –   MODULAR QUERY OPTIMIZER, US8312027
  –   DATABASE STORAGE ARCHITECTURE, US2011016157
  –   QUERY OPTIMIZER WITH SCHEMA CONVERSION, US8086598
  –   AUTOMATIC VERTICAL-DATABASE DESIGN, US2008040348

                                                             28
C-Store Source Code Reading
• 現状読める唯一のColumn-DB Source Code
  – MonetDBはX100に関しては非公開
  – http://db.csail.mit.edu/projects/cstore
  – 現在コードをチェック中、次回やるなら報告したい




                                              29
最期に・・・
• 推薦する「これは読んでおけ!」論文
 – Column-DBってあれでしょ?列方向にデータをシリアライ
   ズするやつ、と思っている方はコチラ→[Dan08]

 – 最新のVectorwise/Verticaの設計が知りたい方は
   [Mar12][And12]を参照
   • これらの引用論文を辿っていくと大体関連論文を網羅可能




                                     30

More Related Content

What's hot

[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...
[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...
[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...Insight Technology, Inc.
 
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...Insight Technology, Inc.
 
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009Ryota Watabe
 
[db tech showcase Tokyo 2017] E34: データベース・サービスを好きなところで動かそう Db2 Warehouse by 日...
[db tech showcase Tokyo 2017] E34: データベース・サービスを好きなところで動かそう Db2 Warehouse by 日...[db tech showcase Tokyo 2017] E34: データベース・サービスを好きなところで動かそう Db2 Warehouse by 日...
[db tech showcase Tokyo 2017] E34: データベース・サービスを好きなところで動かそう Db2 Warehouse by 日...Insight Technology, Inc.
 
[D13] Disaster Recovery環境をOracle Standard Editionでつくる by Miyuki Ohasi
[D13] Disaster Recovery環境をOracle Standard Editionでつくる by Miyuki Ohasi[D13] Disaster Recovery環境をOracle Standard Editionでつくる by Miyuki Ohasi
[D13] Disaster Recovery環境をOracle Standard Editionでつくる by Miyuki OhasiInsight Technology, Inc.
 
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...Insight Technology, Inc.
 
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...Insight Technology, Inc.
 
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)Colin Charles
 
大規模ログ分析におけるAmazon Web Servicesの活用
大規模ログ分析におけるAmazon Web Servicesの活用大規模ログ分析におけるAmazon Web Servicesの活用
大規模ログ分析におけるAmazon Web Servicesの活用Shintaro Takemura
 
IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)
IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)
IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)Akira Shimosako
 
今こそクラウドへ!データの移行、連携、統合のコツ
今こそクラウドへ!データの移行、連携、統合のコツ今こそクラウドへ!データの移行、連携、統合のコツ
今こそクラウドへ!データの移行、連携、統合のコツ株式会社クライム
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントNTT DATA OSS Professional Services
 
シンプルでシステマチックな Oracle Database, Exadata 性能分析
シンプルでシステマチックな Oracle Database, Exadata 性能分析シンプルでシステマチックな Oracle Database, Exadata 性能分析
シンプルでシステマチックな Oracle Database, Exadata 性能分析Yohei Azekatsu
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説PostgreSQL10徹底解説
PostgreSQL10徹底解説Masahiko Sawada
 
20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也
20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也
20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也Insight Technology, Inc.
 
Dbts2015 tokyo vector_in_hadoop_vortex
Dbts2015 tokyo vector_in_hadoop_vortexDbts2015 tokyo vector_in_hadoop_vortex
Dbts2015 tokyo vector_in_hadoop_vortexKoji Shinkubo
 
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...Insight Technology, Inc.
 
Nosqlの基礎知識(2013年7月講義資料)
Nosqlの基礎知識(2013年7月講義資料)Nosqlの基礎知識(2013年7月講義資料)
Nosqlの基礎知識(2013年7月講義資料)CLOUDIAN KK
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門じゅん なかざ
 
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~Ryota Watabe
 

What's hot (20)

[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...
[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...
[db tech showcase Tokyo 2015] B36:Hitachi Advanced Data Binder 実践SQLチューニング方法 ...
 
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
 
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
 
[db tech showcase Tokyo 2017] E34: データベース・サービスを好きなところで動かそう Db2 Warehouse by 日...
[db tech showcase Tokyo 2017] E34: データベース・サービスを好きなところで動かそう Db2 Warehouse by 日...[db tech showcase Tokyo 2017] E34: データベース・サービスを好きなところで動かそう Db2 Warehouse by 日...
[db tech showcase Tokyo 2017] E34: データベース・サービスを好きなところで動かそう Db2 Warehouse by 日...
 
[D13] Disaster Recovery環境をOracle Standard Editionでつくる by Miyuki Ohasi
[D13] Disaster Recovery環境をOracle Standard Editionでつくる by Miyuki Ohasi[D13] Disaster Recovery環境をOracle Standard Editionでつくる by Miyuki Ohasi
[D13] Disaster Recovery環境をOracle Standard Editionでつくる by Miyuki Ohasi
 
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...
[db tech showcase Tokyo 2015] C17:MySQL Cluster ユーザー事例紹介~JR東日本情報システム様における導入事例...
 
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
 
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
 
大規模ログ分析におけるAmazon Web Servicesの活用
大規模ログ分析におけるAmazon Web Servicesの活用大規模ログ分析におけるAmazon Web Servicesの活用
大規模ログ分析におけるAmazon Web Servicesの活用
 
IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)
IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)
IBM版Hadoop - BigInsights/Big SQL (2013/07/26 CLUB DB2発表資料)
 
今こそクラウドへ!データの移行、連携、統合のコツ
今こそクラウドへ!データの移行、連携、統合のコツ今こそクラウドへ!データの移行、連携、統合のコツ
今こそクラウドへ!データの移行、連携、統合のコツ
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
 
シンプルでシステマチックな Oracle Database, Exadata 性能分析
シンプルでシステマチックな Oracle Database, Exadata 性能分析シンプルでシステマチックな Oracle Database, Exadata 性能分析
シンプルでシステマチックな Oracle Database, Exadata 性能分析
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説PostgreSQL10徹底解説
PostgreSQL10徹底解説
 
20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也
20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也
20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也
 
Dbts2015 tokyo vector_in_hadoop_vortex
Dbts2015 tokyo vector_in_hadoop_vortexDbts2015 tokyo vector_in_hadoop_vortex
Dbts2015 tokyo vector_in_hadoop_vortex
 
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...
[db tech showcase Tokyo 2017] A32: Attunity Replicate + Kafka + Hadoop マルチデータ...
 
Nosqlの基礎知識(2013年7月講義資料)
Nosqlの基礎知識(2013年7月講義資料)Nosqlの基礎知識(2013年7月講義資料)
Nosqlの基礎知識(2013年7月講義資料)
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
 
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
バッチ処理にバインド変数はもうやめません? ~|バッチ処理の突発遅延を題材にして考えてみる~
 

Similar to Introduction to Modern Analytical DB

研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法Takeshi Yamamuro
 
何を基準に選定すべきなのか!? 〜ビッグデータ×IoT×AI時代のデータベースのアーキテクチャとメカニズムの比較〜
何を基準に選定すべきなのか!? 〜ビッグデータ×IoT×AI時代のデータベースのアーキテクチャとメカニズムの比較〜何を基準に選定すべきなのか!? 〜ビッグデータ×IoT×AI時代のデータベースのアーキテクチャとメカニズムの比較〜
何を基準に選定すべきなのか!? 〜ビッグデータ×IoT×AI時代のデータベースのアーキテクチャとメカニズムの比較〜griddb
 
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]Hideo Takagi
 
もうSQLとNoSQLを選ぶ必要はない!?~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!?~両者を備えたスケールアウトデータベースGridDB~もうSQLとNoSQLを選ぶ必要はない!?~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!?~両者を備えたスケールアウトデータベースGridDB~griddb
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlYutuki r
 
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~griddb
 
刊行記念セミナー「HBase徹底入門」
刊行記念セミナー「HBase徹底入門」刊行記念セミナー「HBase徹底入門」
刊行記念セミナー「HBase徹底入門」cyberagent
 
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較griddb
 
何を基準に選定すべきなのか!? 〜ビッグデータ×IoT×AI時代のデータベースのアーキテクチャとメカニズムの比較〜
何を基準に選定すべきなのか!? 〜ビッグデータ×IoT×AI時代のデータベースのアーキテクチャとメカニズムの比較〜何を基準に選定すべきなのか!? 〜ビッグデータ×IoT×AI時代のデータベースのアーキテクチャとメカニズムの比較〜
何を基準に選定すべきなのか!? 〜ビッグデータ×IoT×AI時代のデータベースのアーキテクチャとメカニズムの比較〜griddb
 
[db tech showcase Tokyo 2017] D35: 何を基準に選定すべきなのか!? ~ビッグデータ×IoT×AI時代のデータベースのアー...
[db tech showcase Tokyo 2017] D35: 何を基準に選定すべきなのか!? ~ビッグデータ×IoT×AI時代のデータベースのアー...[db tech showcase Tokyo 2017] D35: 何を基準に選定すべきなのか!? ~ビッグデータ×IoT×AI時代のデータベースのアー...
[db tech showcase Tokyo 2017] D35: 何を基準に選定すべきなのか!? ~ビッグデータ×IoT×AI時代のデータベースのアー...Insight Technology, Inc.
 
データベースシステム論11 - データベースの構成
データベースシステム論11 - データベースの構成データベースシステム論11 - データベースの構成
データベースシステム論11 - データベースの構成Shohei Yokoyama
 
Db2 Warehouse on Cloud Flex ご紹介資料 2020年3月版
Db2 Warehouse on Cloud Flex ご紹介資料 2020年3月版Db2 Warehouse on Cloud Flex ご紹介資料 2020年3月版
Db2 Warehouse on Cloud Flex ご紹介資料 2020年3月版IBM Analytics Japan
 
Db2 Warehouse セッション資料 db tech showcase
Db2 Warehouse セッション資料 db tech showcase Db2 Warehouse セッション資料 db tech showcase
Db2 Warehouse セッション資料 db tech showcase IBM Analytics Japan
 
OSS系データベース、クラウド・データベースへ脱Oracleへの実現方法
OSS系データベース、クラウド・データベースへ脱Oracleへの実現方法OSS系データベース、クラウド・データベースへ脱Oracleへの実現方法
OSS系データベース、クラウド・データベースへ脱Oracleへの実現方法株式会社クライム
 
トレジャーデータのバッチクエリとアドホッククエリを理解する
トレジャーデータのバッチクエリとアドホッククエリを理解するトレジャーデータのバッチクエリとアドホッククエリを理解する
トレジャーデータのバッチクエリとアドホッククエリを理解するTakahiro Inoue
 
Amazon dynamo db、cloudant、blockchainの紹介 20160706
Amazon dynamo db、cloudant、blockchainの紹介 20160706Amazon dynamo db、cloudant、blockchainの紹介 20160706
Amazon dynamo db、cloudant、blockchainの紹介 20160706Tsuyoshi Hirayama
 
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~ IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~ griddb
 
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返りSotaro Kimura
 
OSC ver : MariaDB ColumnStore ベンチマークしちゃいませんか?
OSC ver : MariaDB ColumnStore ベンチマークしちゃいませんか?OSC ver : MariaDB ColumnStore ベンチマークしちゃいませんか?
OSC ver : MariaDB ColumnStore ベンチマークしちゃいませんか?KAWANO KAZUYUKI
 

Similar to Introduction to Modern Analytical DB (20)

研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法
 
何を基準に選定すべきなのか!? 〜ビッグデータ×IoT×AI時代のデータベースのアーキテクチャとメカニズムの比較〜
何を基準に選定すべきなのか!? 〜ビッグデータ×IoT×AI時代のデータベースのアーキテクチャとメカニズムの比較〜何を基準に選定すべきなのか!? 〜ビッグデータ×IoT×AI時代のデータベースのアーキテクチャとメカニズムの比較〜
何を基準に選定すべきなのか!? 〜ビッグデータ×IoT×AI時代のデータベースのアーキテクチャとメカニズムの比較〜
 
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
 
もうSQLとNoSQLを選ぶ必要はない!?~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!?~両者を備えたスケールアウトデータベースGridDB~もうSQLとNoSQLを選ぶ必要はない!?~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!?~両者を備えたスケールアウトデータベースGridDB~
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
 
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
 
刊行記念セミナー「HBase徹底入門」
刊行記念セミナー「HBase徹底入門」刊行記念セミナー「HBase徹底入門」
刊行記念セミナー「HBase徹底入門」
 
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較
ビッグデータ×IoT時代のデータベースのアーキテクチャとメカニズムの比較
 
何を基準に選定すべきなのか!? 〜ビッグデータ×IoT×AI時代のデータベースのアーキテクチャとメカニズムの比較〜
何を基準に選定すべきなのか!? 〜ビッグデータ×IoT×AI時代のデータベースのアーキテクチャとメカニズムの比較〜何を基準に選定すべきなのか!? 〜ビッグデータ×IoT×AI時代のデータベースのアーキテクチャとメカニズムの比較〜
何を基準に選定すべきなのか!? 〜ビッグデータ×IoT×AI時代のデータベースのアーキテクチャとメカニズムの比較〜
 
[db tech showcase Tokyo 2017] D35: 何を基準に選定すべきなのか!? ~ビッグデータ×IoT×AI時代のデータベースのアー...
[db tech showcase Tokyo 2017] D35: 何を基準に選定すべきなのか!? ~ビッグデータ×IoT×AI時代のデータベースのアー...[db tech showcase Tokyo 2017] D35: 何を基準に選定すべきなのか!? ~ビッグデータ×IoT×AI時代のデータベースのアー...
[db tech showcase Tokyo 2017] D35: 何を基準に選定すべきなのか!? ~ビッグデータ×IoT×AI時代のデータベースのアー...
 
データベースシステム論11 - データベースの構成
データベースシステム論11 - データベースの構成データベースシステム論11 - データベースの構成
データベースシステム論11 - データベースの構成
 
Db2 Warehouse on Cloud Flex ご紹介資料 2020年3月版
Db2 Warehouse on Cloud Flex ご紹介資料 2020年3月版Db2 Warehouse on Cloud Flex ご紹介資料 2020年3月版
Db2 Warehouse on Cloud Flex ご紹介資料 2020年3月版
 
Db2 Warehouse セッション資料 db tech showcase
Db2 Warehouse セッション資料 db tech showcase Db2 Warehouse セッション資料 db tech showcase
Db2 Warehouse セッション資料 db tech showcase
 
OSS系データベース、クラウド・データベースへ脱Oracleへの実現方法
OSS系データベース、クラウド・データベースへ脱Oracleへの実現方法OSS系データベース、クラウド・データベースへ脱Oracleへの実現方法
OSS系データベース、クラウド・データベースへ脱Oracleへの実現方法
 
トレジャーデータのバッチクエリとアドホッククエリを理解する
トレジャーデータのバッチクエリとアドホッククエリを理解するトレジャーデータのバッチクエリとアドホッククエリを理解する
トレジャーデータのバッチクエリとアドホッククエリを理解する
 
PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介
 
Amazon dynamo db、cloudant、blockchainの紹介 20160706
Amazon dynamo db、cloudant、blockchainの紹介 20160706Amazon dynamo db、cloudant、blockchainの紹介 20160706
Amazon dynamo db、cloudant、blockchainの紹介 20160706
 
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~ IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
IoT時代を迎えて、あなたのシステムは今までのDBで充分ですか?~ GridDBとその適用事例紹介 ~
 
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り
 
OSC ver : MariaDB ColumnStore ベンチマークしちゃいませんか?
OSC ver : MariaDB ColumnStore ベンチマークしちゃいませんか?OSC ver : MariaDB ColumnStore ベンチマークしちゃいませんか?
OSC ver : MariaDB ColumnStore ベンチマークしちゃいませんか?
 

More from Takeshi Yamamuro

LT: Spark 3.1 Feature Expectation
LT: Spark 3.1 Feature ExpectationLT: Spark 3.1 Feature Expectation
LT: Spark 3.1 Feature ExpectationTakeshi Yamamuro
 
Quick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + αQuick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + αTakeshi Yamamuro
 
MLflowによる機械学習モデルのライフサイクルの管理
MLflowによる機械学習モデルのライフサイクルの管理MLflowによる機械学習モデルのライフサイクルの管理
MLflowによる機械学習モデルのライフサイクルの管理Takeshi Yamamuro
 
Taming Distributed/Parallel Query Execution Engine of Apache Spark
Taming Distributed/Parallel Query Execution Engine of Apache SparkTaming Distributed/Parallel Query Execution Engine of Apache Spark
Taming Distributed/Parallel Query Execution Engine of Apache SparkTakeshi Yamamuro
 
LLJVM: LLVM bitcode to JVM bytecode
LLJVM: LLVM bitcode to JVM bytecodeLLJVM: LLVM bitcode to JVM bytecode
LLJVM: LLVM bitcode to JVM bytecodeTakeshi Yamamuro
 
20180417 hivemall meetup#4
20180417 hivemall meetup#420180417 hivemall meetup#4
20180417 hivemall meetup#4Takeshi Yamamuro
 
An Experimental Study of Bitmap Compression vs. Inverted List Compression
An Experimental Study of Bitmap Compression vs. Inverted List CompressionAn Experimental Study of Bitmap Compression vs. Inverted List Compression
An Experimental Study of Bitmap Compression vs. Inverted List CompressionTakeshi Yamamuro
 
Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Takeshi Yamamuro
 
VLDB2013 R1 Emerging Hardware
VLDB2013 R1 Emerging HardwareVLDB2013 R1 Emerging Hardware
VLDB2013 R1 Emerging HardwareTakeshi Yamamuro
 
浮動小数点(IEEE754)を圧縮したい@dsirnlp#4
浮動小数点(IEEE754)を圧縮したい@dsirnlp#4浮動小数点(IEEE754)を圧縮したい@dsirnlp#4
浮動小数点(IEEE754)を圧縮したい@dsirnlp#4Takeshi Yamamuro
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)Takeshi Yamamuro
 
A x86-optimized rank&select dictionary for bit sequences
A x86-optimized rank&select dictionary for bit sequencesA x86-optimized rank&select dictionary for bit sequences
A x86-optimized rank&select dictionary for bit sequencesTakeshi Yamamuro
 
VLDB’11勉強会 -Session 9-
VLDB’11勉強会 -Session 9-VLDB’11勉強会 -Session 9-
VLDB’11勉強会 -Session 9-Takeshi Yamamuro
 
VLDB'10勉強会 -Session 20-
VLDB'10勉強会 -Session 20-VLDB'10勉強会 -Session 20-
VLDB'10勉強会 -Session 20-Takeshi Yamamuro
 
VLDB'10勉強会 -Session 2-
VLDB'10勉強会 -Session 2-VLDB'10勉強会 -Session 2-
VLDB'10勉強会 -Session 2-Takeshi Yamamuro
 

More from Takeshi Yamamuro (20)

LT: Spark 3.1 Feature Expectation
LT: Spark 3.1 Feature ExpectationLT: Spark 3.1 Feature Expectation
LT: Spark 3.1 Feature Expectation
 
Apache Spark + Arrow
Apache Spark + ArrowApache Spark + Arrow
Apache Spark + Arrow
 
Quick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + αQuick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + α
 
MLflowによる機械学習モデルのライフサイクルの管理
MLflowによる機械学習モデルのライフサイクルの管理MLflowによる機械学習モデルのライフサイクルの管理
MLflowによる機械学習モデルのライフサイクルの管理
 
Taming Distributed/Parallel Query Execution Engine of Apache Spark
Taming Distributed/Parallel Query Execution Engine of Apache SparkTaming Distributed/Parallel Query Execution Engine of Apache Spark
Taming Distributed/Parallel Query Execution Engine of Apache Spark
 
LLJVM: LLVM bitcode to JVM bytecode
LLJVM: LLVM bitcode to JVM bytecodeLLJVM: LLVM bitcode to JVM bytecode
LLJVM: LLVM bitcode to JVM bytecode
 
20180417 hivemall meetup#4
20180417 hivemall meetup#420180417 hivemall meetup#4
20180417 hivemall meetup#4
 
An Experimental Study of Bitmap Compression vs. Inverted List Compression
An Experimental Study of Bitmap Compression vs. Inverted List CompressionAn Experimental Study of Bitmap Compression vs. Inverted List Compression
An Experimental Study of Bitmap Compression vs. Inverted List Compression
 
Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題
 
20160908 hivemall meetup
20160908 hivemall meetup20160908 hivemall meetup
20160908 hivemall meetup
 
20150513 legobease
20150513 legobease20150513 legobease
20150513 legobease
 
20150516 icde2015 r19-4
20150516 icde2015 r19-420150516 icde2015 r19-4
20150516 icde2015 r19-4
 
VLDB2013 R1 Emerging Hardware
VLDB2013 R1 Emerging HardwareVLDB2013 R1 Emerging Hardware
VLDB2013 R1 Emerging Hardware
 
浮動小数点(IEEE754)を圧縮したい@dsirnlp#4
浮動小数点(IEEE754)を圧縮したい@dsirnlp#4浮動小数点(IEEE754)を圧縮したい@dsirnlp#4
浮動小数点(IEEE754)を圧縮したい@dsirnlp#4
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
 
A x86-optimized rank&select dictionary for bit sequences
A x86-optimized rank&select dictionary for bit sequencesA x86-optimized rank&select dictionary for bit sequences
A x86-optimized rank&select dictionary for bit sequences
 
VAST-Tree, EDBT'12
VAST-Tree, EDBT'12VAST-Tree, EDBT'12
VAST-Tree, EDBT'12
 
VLDB’11勉強会 -Session 9-
VLDB’11勉強会 -Session 9-VLDB’11勉強会 -Session 9-
VLDB’11勉強会 -Session 9-
 
VLDB'10勉強会 -Session 20-
VLDB'10勉強会 -Session 20-VLDB'10勉強会 -Session 20-
VLDB'10勉強会 -Session 20-
 
VLDB'10勉強会 -Session 2-
VLDB'10勉強会 -Session 2-VLDB'10勉強会 -Session 2-
VLDB'10勉強会 -Session 2-
 

Introduction to Modern Analytical DB

  • 1. Modern Analytical DBに関するTopics - Column-DBの話題もあるよ! - 2012.11.21 列指向DBをみんなで勉強する会 Takeshi Yamamuro@maropu 1
  • 2. Introduction • 名前 – 山室健(Takeshi Yamamuro) • 興味のあること – データ工学 / データベース周辺技術 • PostgreSQL Twitter: maropu • 探索,圧縮,並び替え – Modern Hardware(CPU/GPU)によるアルゴリズム性能改善 • 本日の引用一覧 – https://docs.google.com/spreadsheet/ccc?key=0AnhMe3L1c3Z5 dFZ0TklsQUo5MlhDWHhReEM5NmpDQWc#gid=0 2
  • 3. Notice • 今回紹介する話題の範囲 – C-StoreとMonetDB/X100周辺で発表された論文 – Column-DBはDB分野的にHW-conscious optimizationに分 類されるため‘列配置’と直接関係のない話題も 3
  • 4. 長期的に見たAnalytical DBの方向性 • Stone Breaker, “What Does ‘Big Data’ Mean and Who Will Win?”, XLDB, 2012 4
  • 5. 長期的に見たAnalytical DBの方向性 • Stone Breaker, “What Does ‘Big Data’ Mean and Who Will Win?”, XLDB, 2012 5
  • 6. 長期的に見たAnalytical DBの方向性 • Stone Breaker, “What Does ‘Big Data’ Mean and Who Will Win?”, XLDB, 2012 6
  • 7. Introduction to Modern Analytical DB 7
  • 8. 関連するDB研究の変遷 ~1980’s ~2000’s ~2012 Asilomar Claremont Report [Ber98] Report [Agr09] Int’l Workshop on Data Management on New Hardware (DaMoN) Columnar-storage 2005 for statistical applications (1970’s) Bottleneck shifts in databases VLDB 10 years [Ail99, Bon99, Rao99] best paper [Bon09] DSM [Geo85] C-Store Vertica 2005 DSM in Bubba, highly- parallel DB [Geo85] Architecture shifts [Sto07] MonetDB Around 1996 Spin-off in 2005 2008 MonetDB/X100 Vectorwise 8
  • 9. データ構造 【前提】DBMSにおける処理の流れ 処理 SQL メタデータ 字句解析/構文解析 表情報、型情報 Parser Catalog プラン最適化 Query 前処理とコストモデルに 統計情報 よるプラン選択 値の分布 Planner Statistics 実行エンジン Plan データアクセス ストレージ 絞り込み、結合 データベース Executor Storage 9
  • 10. データ構造 Modern Analytical DB周辺の話題 処理 メタデータ カラム圧縮情報 SQL カラム複製情報 ソート情報 プラン最適化 圧縮コストモデル Parser Catalog 並列コストモデル 階層メモリコストモデル 分析処理独特な前処理 Query - ベクトル処理の考慮 ストレージ Planner Statistics BAT(DSM), PAX, data morphing, fractured 実行エンジン Plan mirros, clotho, tuples-at-a-time pipeline MV(ROS/WOS) 圧縮を考慮したPN処理 NSM/DSMの切り替え HW-awareなPN処理 Executor Storage - sort/join/agg./scan - cache-aware algorithms - 並列/ベクトル処理実行 関連技術の範囲 10
  • 11. Column-Stores vs. Raw-Stores [Dan08] • 性能差を起こす本質的な違いは何か? • 列志向化によるI/O削減は本質的な理由ではなく、 compression/late materialization/join optimization等 のプラン最適化が性能向上の鍵 Figure 5から引用 11
  • 12. ストレージ構成とプラン最適化 • 列志向(DSM)にした場合の重要な考慮点 – 余剰に発生すjoinコストへの対処 – プランノード(PN)のposition filter処理 NSM DSM 12
  • 13. 余剰に発生するjoinコストへの対処 • tupleに復元するために必要なjoin処理 SELECT * FROM xxx; A.pid = B.pid テーブルxxx Column A Column B Name Age pid Name pid Age Alice 28 1 Alice 4 24 sorted values Bill 24 5 Bill 5 24 Bob 32 2 Bob 1 28 Jill 24 4 Jill 3 29 Steve 29 3 Steve 2 32 ※pidはMonetDBのBATにおけるoid [Bon09] 13
  • 14. ストレージ構成とプラン最適化 • Joinコストを軽減するための手法 – 1. fractured mirrors [Rav02]やsuper projection [And12]の ように元の順序関係を維持したストレージ構成で最適化 – 2. join Index [Val89](下図)、さらにjoin高速化で対処 join index column A column B Name join index Age Alice 3 24 sorted values Bill 2 24 Bob 5 28 Jill 1 29 Steve 4 32 14
  • 15. join高速化関係の論文 • Martina-Cezara Albutiu et al., Massively Parallel Sort-Merge Joins in Main Memory Multi-Core Database Systems, VLDB, 2012 • S. Blanas et al., Design and Evaluation of main memory Hash Join Algorithms for Multi-core CPUs, SIGMOD, 2011 • C. Kim et al., Sort vs. Hash Revisited: Fast Join Implementation on Modern Multi-Core CPUs, VLDB, 2008 • Mehul A. Shah et al., Fast Scans and Joins using Flash Drives, DaMon, 2008 • S. Chen et al., Improing Hash Join Performance through Prefetching, ACM TODS, 2007 • S. Manegold et al., Optimizing main-Memory Join on Modern Hardware, IEEE TKDE, 2002 • S. Manegold et al., What happens during a join dissecting CPU and Memory Optimization Effects, VLDB, 2000 • P. A. Boncz et al., Database Architecture Optimized for the New Bottleneck: Memory Access, VLDB, 1999 15
  • 16. PNのposition filter処理 [Mig09] SELECT * FROM xxx WHERE Age > 25; • selectノードが対象とするカ ラム以外の絞り込みはpidを 用いて実施* A.pid = B.pid • selectノードのpush-down処 Scan Node position filtered Copy Node 理によりプランの下端部が 有向グラフに σ Age > 25 pid Name pid Age • copyノードが入力されたpid 1 Alice sorted values 4 24 集合からbitmapを作成して 5 Bill 5 24 scanノードに転送 2 Bob 1 28 4 Jill 3 29 3 Steve 2 3216 *C-Storeのソースコードを参照
  • 18. VectorwizeとVerticaの設計概要 • Vectorwise(旧MonetDB/X100) [Mar12] ストレージ構成 – NSM/PAX~DSM/PAXで変更 • DDLからの指定も可能だが、自動最適化も – データの圧縮はPFor系 [Mar06] • disk array(~1GiB/s)を前提にCPU高速な圧縮アルゴリズムを採用 – position delta tree [Hem10]による高速な更新処理 • 更新系と参照系のデータ構造を分割、あとでマージ処理 18
  • 19. VectorwizeとVerticaの設計概要 • Vectorwise(旧MonetDB/X100) [Mar12] プラン最適化/実行エンジン – tuples-at-a-time processing model [Bon05]を採用 – プラン実行中のNSM/DSMの切り替え [Min04][Mar08] • 実行operatorによって最適なtuple構造が異なる – CPUのベクトル命令(SIMD)の活用 • Intel SSE4.2を活用した高速な文字列処理 [Vec09] • ベクトル化のためのselectノードのpush-up処理 [Mar08] – exchange operatorsを用いたプランの並列化 [Ani10] • Volcano-style parallelism – JITコンパイルでの高速化 [Som11j, Som11v](future works) 19
  • 20. VectorwizeとVerticaの設計概要 • Vectorwise構成からのPick-up 1/3 CPU高速な圧縮アルゴリズム [Mar06] – Vectorwizeの基本設計はI/O転送速度とCPU処理速度の 均衡をとりながら性能の最大化を目指す – 復元速度がGiB/s以上のlight-weightな圧縮手法を採用 30.0% 10.0 最近の整数圧縮手法 compression ratio decompress speed 7.5 compression ratio 20.0% decompress speed (GiB/s) 5.0 10.0% 2.5 0.0% 0.0 delta varbyte bintpltv optp4delta vseblocks vsesimple 20 使用ライブラリ: http://integerencoding.isti.cnr.it/
  • 21. VectorwizeとVerticaの設計概要 • Vectorwise構成からのPick-up 1/3 CPU高速な圧縮アルゴリズム [Mar06] – Vectorwizeの基本設計はI/O転送速度とCPU処理速度の 均衡をとりながら性能の最大化を目指す – 復元速度がGiB/s以上のlight-weightな圧縮手法を採用 文字列圧縮手法(単位はMiB/s) 引用:http://code.google.com/p/lz4/ 21
  • 22. VectorwizeとVerticaの設計概要 • Vectorwise構成からのPick-up 2/3 tuples-at-a-time processing model [Bon05]を採用 – 実行パイプライン上で一回のnext()コールに対して複数の tupleを処理する実行方式 – 独立した処理を同時に処理することでCPU効率化を図る • instruction-level parallelism、SIMD最適化 22
  • 23. VectorwizeとVerticaの設計概要 • Vectorwise構成からのPick-up 2/3 tuples-at-a-time processing model [Bon05]を採用 Figure 10から引用 23
  • 24. VectorwizeとVerticaの設計概要 • Vectorwise構成からのPick-up 3/3 ベクトル化のためのselect句のpush-up処理 [Mar08] – 選択率が高い場合はベクトル処理を優先したほうが良い ケースがあるため、selectノードをpush-upする 選択率が高い場合はSIMDで処理 論文内から引用 24
  • 25. VectorwizeとVerticaの設計概要 • Vertica(旧C-Store) [And12] ストレージ構成 – super projectionとnon-super projectionによる構成 • projectionは制限的なmaterialized view • super projectionは元の順序関係を全て明示的に保持 – read and write optimized stores • 更新系と参照系のデータ構造を分割、あとでマージ処理 – プランのscan operatorは6つの圧縮タイプに対応 • run-length encoding、block dictionary、… 25
  • 26. VectorwizeとVerticaの設計概要 • Vertica(旧C-Store) [And12] プラン最適化/実行エンジン – multi-thread/pipeline対応の実行エンジン – tuples-at-a-time processing model – 圧縮の効率的利用 [Mig09] • 圧縮データを直接処理可能な実行operators • 圧縮データ読み込みのコストモデル化 – Send/Recs operatorによるプラン実行の分 散化(volcano-style exchange operator) Figure 3から引用 26
  • 27. VectorwizeとVerticaの設計概要 • Vertica構成からのPick-up 1/2 Super ProjectionとNon-Super Projectionによる構成 – 初期のC-Store[Sto05]の頃はprojection単位(列の論理グ ループ)のDSM構成だったが、joinコスト(join index経由) が打ち消せずにVertica移行時に構成を変更 Table 1から引用 Example 1から引用 27
  • 28. VectorwizeとVerticaの設計概要 • Vertica構成からのPick-up 1/2 Verticaが保持しているColumn-DB系のPatent – http://worldwide.espacenet.com/searchResults?compact=false &ST=singleline&query=Vertica&locale=en_EP&DB=worldwide.e spacenet.com – DATABASE DESIGNER, US8290931 – QUERY OPTIMIZER, US2008033914 – MODULAR QUERY OPTIMIZER, US8312027 – DATABASE STORAGE ARCHITECTURE, US2011016157 – QUERY OPTIMIZER WITH SCHEMA CONVERSION, US8086598 – AUTOMATIC VERTICAL-DATABASE DESIGN, US2008040348 28
  • 29. C-Store Source Code Reading • 現状読める唯一のColumn-DB Source Code – MonetDBはX100に関しては非公開 – http://db.csail.mit.edu/projects/cstore – 現在コードをチェック中、次回やるなら報告したい 29
  • 30. 最期に・・・ • 推薦する「これは読んでおけ!」論文 – Column-DBってあれでしょ?列方向にデータをシリアライ ズするやつ、と思っている方はコチラ→[Dan08] – 最新のVectorwise/Verticaの設計が知りたい方は [Mar12][And12]を参照 • これらの引用論文を辿っていくと大体関連論文を網羅可能 30