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


ライトプランで遊べるDb2

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

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

(ご参考)最初からデータウェアハウス系のを試したかったらこちら

https://qiita.com/azzeten/items/e993bb3954c2c9a98dab
https://qiita.com/azzeten/items/c1d5eb7774f9d14953e8
https://qiita.com/azzeten/items/2e38472994ba77ef1aff

表を作ってみる

もともと、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'

性能はかってみる

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

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

ふつうの表(行表)

0.195秒

分析特化の表(列表)

0.035秒

まとめ

5倍以上はやいー!!!