Enviar búsqueda
Cargar
BIツールActionista!のOLAP集計エンジンJungarian
•
1 recomendación
•
15,520 vistas
JustSystems Corporation
Seguir
ジャストシステムのBIツールActionista!の集計エンジンのうち、ユーザークエリーとデータベースとの架け橋となるOLAP集計エンジンJungarianついて説明します。
Leer menos
Leer más
Ingeniería
Denunciar
Compartir
Denunciar
Compartir
1 de 29
Recomendados
BIツールActionista!のインメモリーデータベースIMDB
BIツールActionista!のインメモリーデータベースIMDB
JustSystems Corporation
【kintone便利に使おうシリーズ】[vol.06 グラフ]
【kintone便利に使おうシリーズ】[vol.06 グラフ]
Cybozucommunity
JasperServerとJJSUGの紹介(Osc2009 Tokyo Fall LT)
JasperServerとJJSUGの紹介(Osc2009 Tokyo Fall LT)
Kensuke SAEKI
AIプロジェクト実践解説 〜 農業・医療・建設プラットフォームを支えるために必要なスキル 〜
AIプロジェクト実践解説 〜 農業・医療・建設プラットフォームを支えるために必要なスキル 〜
Deep Learning Lab(ディープラーニング・ラボ)
Power BI 初心者さんのDAX・メジャー「モヤモヤ」晴れるまで
Power BI 初心者さんのDAX・メジャー「モヤモヤ」晴れるまで
陽子 小室
社内のリース車の利用状況を Power BI で可視化してみた
社内のリース車の利用状況を Power BI で可視化してみた
Junichi Kodama
20130124_アプリ分析&解析手法
20130124_アプリ分析&解析手法
Taiichirou Shibuya
ビジネスオントロジー
ビジネスオントロジー
Noriaki Fujiwara
Recomendados
BIツールActionista!のインメモリーデータベースIMDB
BIツールActionista!のインメモリーデータベースIMDB
JustSystems Corporation
【kintone便利に使おうシリーズ】[vol.06 グラフ]
【kintone便利に使おうシリーズ】[vol.06 グラフ]
Cybozucommunity
JasperServerとJJSUGの紹介(Osc2009 Tokyo Fall LT)
JasperServerとJJSUGの紹介(Osc2009 Tokyo Fall LT)
Kensuke SAEKI
AIプロジェクト実践解説 〜 農業・医療・建設プラットフォームを支えるために必要なスキル 〜
AIプロジェクト実践解説 〜 農業・医療・建設プラットフォームを支えるために必要なスキル 〜
Deep Learning Lab(ディープラーニング・ラボ)
Power BI 初心者さんのDAX・メジャー「モヤモヤ」晴れるまで
Power BI 初心者さんのDAX・メジャー「モヤモヤ」晴れるまで
陽子 小室
社内のリース車の利用状況を Power BI で可視化してみた
社内のリース車の利用状況を Power BI で可視化してみた
Junichi Kodama
20130124_アプリ分析&解析手法
20130124_アプリ分析&解析手法
Taiichirou Shibuya
ビジネスオントロジー
ビジネスオントロジー
Noriaki Fujiwara
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
JustSystems Corporation
「技術内閣制度」〜2年間やってきて得られた事とこれから〜 #devsumi
「技術内閣制度」〜2年間やってきて得られた事とこれから〜 #devsumi
JustSystems Corporation
事業に貢献する商品開発と その成長の仕組み作り ~これからのエンジニアに必要とされるスキルとは~
事業に貢献する商品開発と その成長の仕組み作り ~これからのエンジニアに必要とされるスキルとは~
JustSystems Corporation
現役23名のPM:タイプ別マネジメントパターン
現役23名のPM:タイプ別マネジメントパターン
JustSystems Corporation
JavaでインメモリSQLエンジンを作ってみた
JavaでインメモリSQLエンジンを作ってみた
JustSystems Corporation
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
JustSystems Corporation
JustTechTalk#11_スマイルゼミ顧客満足度への貢献
JustTechTalk#11_スマイルゼミ顧客満足度への貢献
JustSystems Corporation
ピュアJavaだと思った?残念androidでした~いつからAndroidをJavaだと錯覚していた?~
ピュアJavaだと思った?残念androidでした~いつからAndroidをJavaだと錯覚していた?~
JustSystems Corporation
最新のJava言語仕様で見るモジュールシステム #jjug
最新のJava言語仕様で見るモジュールシステム #jjug
JustSystems Corporation
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
JustSystems Corporation
JustTechTalk#10 React開発における自動テスト実践
JustTechTalk#10 React開発における自動テスト実践
JustSystems Corporation
JustTechTalk#10windowsアプリでのテスト自動化事例
JustTechTalk#10windowsアプリでのテスト自動化事例
JustSystems Corporation
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
JustSystems Corporation
AWS運用における最適パターンの徹底活用
AWS運用における最適パターンの徹底活用
JustSystems Corporation
ジャストシステムのDevOps実例 今後の取り組み
ジャストシステムのDevOps実例 今後の取り組み
JustSystems Corporation
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
JustSystems Corporation
Kotlin is charming; The reasons Java engineers should start Kotlin.
Kotlin is charming; The reasons Java engineers should start Kotlin.
JustSystems Corporation
CSSレイアウトでなぜ失敗するか?
CSSレイアウトでなぜ失敗するか?
JustSystems Corporation
Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化
JustSystems Corporation
TypeScriptの大規模開発への適用
TypeScriptの大規模開発への適用
JustSystems Corporation
Más contenido relacionado
Más de JustSystems Corporation
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
JustSystems Corporation
「技術内閣制度」〜2年間やってきて得られた事とこれから〜 #devsumi
「技術内閣制度」〜2年間やってきて得られた事とこれから〜 #devsumi
JustSystems Corporation
事業に貢献する商品開発と その成長の仕組み作り ~これからのエンジニアに必要とされるスキルとは~
事業に貢献する商品開発と その成長の仕組み作り ~これからのエンジニアに必要とされるスキルとは~
JustSystems Corporation
現役23名のPM:タイプ別マネジメントパターン
現役23名のPM:タイプ別マネジメントパターン
JustSystems Corporation
JavaでインメモリSQLエンジンを作ってみた
JavaでインメモリSQLエンジンを作ってみた
JustSystems Corporation
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
JustSystems Corporation
JustTechTalk#11_スマイルゼミ顧客満足度への貢献
JustTechTalk#11_スマイルゼミ顧客満足度への貢献
JustSystems Corporation
ピュアJavaだと思った?残念androidでした~いつからAndroidをJavaだと錯覚していた?~
ピュアJavaだと思った?残念androidでした~いつからAndroidをJavaだと錯覚していた?~
JustSystems Corporation
最新のJava言語仕様で見るモジュールシステム #jjug
最新のJava言語仕様で見るモジュールシステム #jjug
JustSystems Corporation
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
JustSystems Corporation
JustTechTalk#10 React開発における自動テスト実践
JustTechTalk#10 React開発における自動テスト実践
JustSystems Corporation
JustTechTalk#10windowsアプリでのテスト自動化事例
JustTechTalk#10windowsアプリでのテスト自動化事例
JustSystems Corporation
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
JustSystems Corporation
AWS運用における最適パターンの徹底活用
AWS運用における最適パターンの徹底活用
JustSystems Corporation
ジャストシステムのDevOps実例 今後の取り組み
ジャストシステムのDevOps実例 今後の取り組み
JustSystems Corporation
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
JustSystems Corporation
Kotlin is charming; The reasons Java engineers should start Kotlin.
Kotlin is charming; The reasons Java engineers should start Kotlin.
JustSystems Corporation
CSSレイアウトでなぜ失敗するか?
CSSレイアウトでなぜ失敗するか?
JustSystems Corporation
Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化
JustSystems Corporation
TypeScriptの大規模開発への適用
TypeScriptの大規模開発への適用
JustSystems Corporation
Más de JustSystems Corporation
(20)
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
「技術内閣制度」〜2年間やってきて得られた事とこれから〜 #devsumi
「技術内閣制度」〜2年間やってきて得られた事とこれから〜 #devsumi
事業に貢献する商品開発と その成長の仕組み作り ~これからのエンジニアに必要とされるスキルとは~
事業に貢献する商品開発と その成長の仕組み作り ~これからのエンジニアに必要とされるスキルとは~
現役23名のPM:タイプ別マネジメントパターン
現役23名のPM:タイプ別マネジメントパターン
JavaでインメモリSQLエンジンを作ってみた
JavaでインメモリSQLエンジンを作ってみた
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
JustTechTalk#11_スマイルゼミ顧客満足度への貢献
JustTechTalk#11_スマイルゼミ顧客満足度への貢献
ピュアJavaだと思った?残念androidでした~いつからAndroidをJavaだと錯覚していた?~
ピュアJavaだと思った?残念androidでした~いつからAndroidをJavaだと錯覚していた?~
最新のJava言語仕様で見るモジュールシステム #jjug
最新のJava言語仕様で見るモジュールシステム #jjug
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
JustTechTalk#10 React開発における自動テスト実践
JustTechTalk#10 React開発における自動テスト実践
JustTechTalk#10windowsアプリでのテスト自動化事例
JustTechTalk#10windowsアプリでのテスト自動化事例
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
AWS運用における最適パターンの徹底活用
AWS運用における最適パターンの徹底活用
ジャストシステムのDevOps実例 今後の取り組み
ジャストシステムのDevOps実例 今後の取り組み
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Kotlin is charming; The reasons Java engineers should start Kotlin.
Kotlin is charming; The reasons Java engineers should start Kotlin.
CSSレイアウトでなぜ失敗するか?
CSSレイアウトでなぜ失敗するか?
Selenium WebDriver + python で E2Eテスト自動化
Selenium WebDriver + python で E2Eテスト自動化
TypeScriptの大規模開発への適用
TypeScriptの大規模開発への適用
BIツールActionista!のOLAP集計エンジンJungarian
1.
BIツールActionista!の OLAP集計エンジン Jungarian JustSystems 2015/06/16
2.
BIツールとは?
3.
・Business Intelligence の略 ・主に企業内に存在するデータを表やグラフで可視化し、 企業の意思決定を支援する機能の総称
4.
・主にクロス集計 ・グラフ表示ではこのクロス集計の結果を描画する ・一般に片側は時間軸 ・過去から現在までの流れを可視化 未来へ向けた意思決定を支援 BIツールの集計
5.
商品別売上データの集計表イメージ Actionista!で商品別売上データを可視化したイメージ Actionista!での商品別売上の集計表イメージ
6.
Actionista!の集計エンジンの構成
7.
Jungarian (OLAPエンジン)と IMDB(インメモリーデータベース)からなる 一太郎 花子
ATOK 売上 売上 売上 1月 ● 2月 ▲ 3月 ■ 商品 月 売上 商品 月 売上 一太郎 1月 ● 花子 2月 ▲ ATOK 3月 ■ Jungarian IMDB SQLクエリー select 商品, 月, sum(売上) from 集計表 group by 商品, 月 ResultSet
8.
Jungarianとは?
9.
出典:http://img.ly/images/2288518/full ジャンガリアンハムスター?
10.
ではなくて・・・
11.
・Actionsita!の集計エンジンのうち、ユーザークエリーを 解釈してSQLを発行し、ResultSetを再処理してユーザーの 求める集計表を返すOLAPエンジンのこと ・Javaでスクラッチから書かれている ・実行速度はオープンソースのOLAPエンジンに比べて10倍以上高速 ・データベースとはJDBCドライバーで接続 →Hive, Impala, BigQuery
といった ビックデータSQLエンジンとも接続可能
12.
BIツールで扱う日付
13.
・企業内では20日締めといった、通常のカレンダーにない月の区切りがある ・半期、四半期といった、通常のカレンダーにない区切り単位も存在 ・1週間をベースとして1年を52週で見ることがよくある 通常のカレンダーでは扱えないような 複雑な日付を扱う必要がある
14.
Actionista!の扱う日付1 内部的に日付を木構造で表現 20日締めといった複雑な日付も柔軟に扱える 2015年 上期 下期 第1四半期 第4四半期 1月 21日
20日 2月 21日 20日 12月 ・・・ ・・・ ・・・
15.
Actionista!の扱う日付2 - 52週の場合 2015年 1週 1日
7日 2週 1日 7日 52週 ・・・ ・・・ ・・・ 内部的に日付を木構造で表現
16.
1ヶ月前の今日
17.
通常の日付の場合 ・3/1 の1ヶ月前 →
2/1 ・3/28の1ヶ月前 → 2/28 カレンダーオブジェクトから1ヶ月を引く
18.
20日締めの日付の場合 通常のカレンダーオブジェクトでは計算できない ・3/21の1ヶ月前 → 2/21 ・3/28の1ヶ月前
→ 2/28 ・3/29の1ヶ月前 → 3/1 ・3/30の1ヶ月前 → 3/2 ・3/31の1ヶ月前 → 3/3 ・4/17の1ヶ月前 → 3/20 …
19.
Actionista!での1ヶ月前の今日の求め方 日付 2016年 下期 第4四半期 12月 21日 20日 2015年 上期 第1四半期 1月 21日 20日 下期 第4四半期 12月1月 21日
20日 さらにキャッシュを工夫してO(1)で求める 木の深さをNとするとO(N)
20.
JungarianでのSQL周りのチューニング
21.
SQLの投げる回数を減らす ・まとめられる集計は1つのSQLにまとめる ・計などは可能な限りJungarian側で集計 SQLを速いSQLに置き換える ・ORをなるべく使わない ・そもそもwhere句を使わないでJungarianで間引く
22.
Jungarianでの集計例
23.
2015年の売上の場合 2015年 商品 年 売上 年
売上 2015年 ● Jungarian IMDB SQLクエリー select 年, sum(売上) from 集計表 group by 年 where 年 = 2015 ResultSet 売上 2015年 ●
24.
2015年の前年売上の場合 2015年 商品 年 前年売上 年
売上 2014年 ▲ Jungarian IMDB SQLクエリー select 年, sum(売上) from 集計表 group by 年 where 年 = 2014 ResultSet 前年売上 2015年 ● / ▲ 変換 逆変換
25.
2015年の売上前年比の場合 2015年 商品 年 売上前年比 年
売上 2014年 ▲ Jungarian IMDB select 年, sum(売上) from 集計表 group by 年 where 年 = 2014 売上前年比 2015年 ● / ▲ 変換 逆変換・合成 年 売上 2015年 ● select 年, sum(売上) from 集計表 group by 年 where 年 = 2015
26.
2015年の売上前年比のSQL最適化 SQL 2回 →
1回 (約2倍高速) 2015年 商品 年 売上前年比 年 売上 2014年 ▲ 2015年 ● Jungarian IMDB select 年, sum(売上) from 集計表 group by 年 where 年 in (2015,2014) 売上前年比 2015年 ● / ▲ 変換・SQL合成 逆変換・合成
27.
まとめ
28.
・Actionista!では木構造の日付を採用することで、 複雑な日付にも柔軟対応 ・Jungarianでは日付の処理をキャッシュすることで OLAP処理を高速実行 さらにSQLの投げ方を工夫することで、データベースでの 処理時間を減らす ・オープンソースのOLAPエンジン+PostgreSQLに比べて、 Actionista!のJungarian+IMDBは100倍から1万倍以上と 圧倒的に高速に集計