IBM CloudライトプランのDb2 on Cloud 性能抜群のカラムナー表で遊んでみよう

ライトプランで遊べるDb2

入門編はこちら https://qiita.com/azzeten/items/5d06afc6b5df352410a2

それで、もっと色々遊んでみたのがこの記事です。
通常このDb2は行表(いわゆる普通のRDBMS)ですが、ちょっといじってみることで分析に特化した列表を作ってみてどんだけ早いんじゃというのを試してみます。

表を作ってみる

もともと、CUSTOMERという表を作ってあります。データも入ってます。
まずはその定義そのままに、ただし最後に「organize by column」を足して、列表にします。
その後データをロードします。参考にしたのはこの記事。
https://qiita.com/steel_mikan/items/6edb6d8a8cb9ef72efb0

---表作成
CREATE TABLE BLU_HYO LIKE JLN84695.CUSTOMER ORGANIZE BY COLUMN;

---データロード
CALL SYSPROC.ADMIN_CMD 
  ('LOAD FROM
    (SELECT * FROM JLN84695.CUSTOMER)
    OF CURSOR
    REPLACE INTO JLN84695.BLU_HYO');

確認ー。
BLU_HYOは列表でC、CUSTOMERは行表でRと出てます。よしよし。

select tabname,tableorg from syscat.tables where tabschema='JLN84695'

スクリーンショット 2018-03-25 16.29.55.png

性能はかってみる

とりあえず試したのは下記のSQL

SELECT AVG("AGE") FROM JLN84695.CUSTOMER;

ふつうの表(行表)

0.195秒

スクリーンショット 2018-03-25 16.28.49.png

分析特化の表(列表)

0.035秒

スクリーンショット 2018-03-25 16.28.58.png

まとめ

5倍以上はやいー!!!

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.