SlideShare a Scribd company logo
OLAP4J - Introduction
Wanna be better than your opponentes ?
**Competitive advantage**
by @borjaeg
KEY POINTS
● MY PROBLEM (IN DREAMS)
● BUSINESS INTELLIGENCE
● WHAT IS OLAP ?
● WHAT IS OLAP4J?
● MAIN CLASSES/INTERFACES
● MDX
● SNIPPETS
MY PROBLEM
● Yeah! I have a discography, with many artists
from Spain and England. I want to get a hit this
summer, but now … I haven't got enough
money to bet on two different artists. Only
one. I need information from data, i need to
take advantage from other discographies...
BUSINESS INTELLIGENCE
● Business Intelligence (BI) is the ability of an organization
to collect, mantain, and organize data.
● Large amounts of information can help develop new
opportunities.
● Identifying them, can provide a competitive market
advantage and long-term stability.
● Technology → OLAP, Data Mining, predective analytics...
WHAT IS OLAP ?
● In computing science (installing printers is not included),
online analytical processing, or OLAP, is an approach to
answering multi-dimensional analytical queries swiftly.
● OLAP is an important part of Business intelligence.
● Main concepts (for me ^^) → Hypercube, dimensions,
meassures...
– ROLAP
– MOLAP
– HOLAP
– SOLAP
– ...
WHAT IS OLAP4J?
● JAVA API
● PROVIDES OLAP ANALISYS
● QUERY LANGUAGE
– MDX STRING
– MDX PARSE TREE
– METADA IS AT THE HEART OF Olap4j
– DIFFERENT CUBE SERVERS ARE SUPPORTED
● MSAS via XML/A
● MONDRIAN
MAIN CLASSES/INTERFACES
● Interfaces ...you should know them as they were your
girlfriend/hand.
– OlapConnection
– OlapWrapper
– OlapStatement/ PreparedOlapStatement
– CellSet
– CellSetAxis
– Position
– Cell
MAIN CASSES / INTERFACES
● Cellset is the set which contains the cell returned by the
MDX query.
● Cellset is the set where results are founded.
● What's a cell? (Next slide)
– Important API methods: getCell, getFilterAxis,
getMetadata...
MAIN CASSES / INTERFACES
● Cell is the structure which contains a part of the cellset.
Every cell, contains a part of the result we are searching
with a MDX query.
● It could be said that cells are as rows in RDBs or
documents in a document-oriented DB. This is just a very
simple approach, a really simple analogy.
– Important API methods: drillThrough, getValue,
isEmpty, isNull,...
MAIN CASSES / INTERFACES
● CellSetAxis is the axis of a cellset (OK?!!)
● A cell set has the same number of axes as the MDX
statement which was executed to produce it.
● Each axis is an ordered collection of members or tuples.
● Each member or tuple on an axis is called Position.
– Important API methods: getPositions, getAxisMetada...
MAIN CASSES / INTERFACES
● Position is one of the CellSetAxis objects in a CellSet.
● An axis has a particular dimensionality, that is, a set of
one or more dimensions which will appear on than axis,
and every position on that axis will have a member of
each of those dimensions. (Extracted from official API)
● WTF¿! → As The Beatles said “All you need are
snippets” (more or less...)
– Important API methods: getMembers, getOrdinal...
MDX
● Multidimensional Expressions (MDX) is a query
language for OLAP databases. Similar to SQL in RDBs
world. It is also a calculation language, with syntax similar
to spreadsheet formulas.
● Example (Next slide explain this query)
MDX
● Time dimension ON columns
● Artists dimension ON rows
● Results are filtered by Total Sales.
To solve my problem, I'm gonna visualize artists, the last
three summers and total sales.
SNIPPETS
● Environment where I'm working...and living.
– Macbook Pro
● Core i5 (2.54 Ghz)
● 16 GB RAM
– PostgreSQL 9.2
– Eclipse Juno (code is copied from Sublime)
● Index
– Getting connection
– Validating MDX query
– Executing MDX query and print results
– Executing a MDX query and go through all results.
SNIPPET I
Getting and closing Connection. I'm using some junit
annotations (v.4.11) and mondrian driver.
SNIPPET II
● Validating a query. In this snippet, it's also possible to
see how to parse a query. When you parse a query, you
can obtain the query model (rows, columns, filters...)
SNIPPET III
● Executing MDX query.
– executeOlapQuery
● Printing results.
– printQueryResult
SNIPPET IV
● Executing MDX query and going through results
– It's important to test if cells are empty. Doing some
operations with empty cells could throw
exceptions.
Conclusion
● Business intelligence is a “huge world” full of different
possibilities to get better information quality. This can also
be a problem. Each solution has advantages and
disadvantages.
● BI concepts aren't new. But nowadays most documents
which talk about BI are quite hard to undertands.
● My experience with Olap4j has been really good.
● Documentation is quite good, but it needed to be
improved with more examples.
Links recommended
● http://en.wikipedia.org/wiki/Business_intelligence
● http://en.wikipedia.org/wiki/Competitive_advantage
● http://en.wikipedia.org/wiki/Online_analytical_processing
● http://en.wikipedia.org/wiki/MultiDimensional_eXpression
s
● http://mondrian.pentaho.com/
● http://www.olap4j.org/
Ad

More Related Content

Viewers also liked (19)

Olap Cube Design
Olap Cube DesignOlap Cube Design
Olap Cube Design
h1m
 
OLAP Cubes in Datawarehousing
OLAP Cubes in DatawarehousingOLAP Cubes in Datawarehousing
OLAP Cubes in Datawarehousing
Prithwis Mukerjee
 
Chapter 11 Enterprise Resource Planning System
Chapter 11 Enterprise Resource Planning SystemChapter 11 Enterprise Resource Planning System
Chapter 11 Enterprise Resource Planning System
Muhammad Azmy
 
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
Kyoungchan Lee
 
디지털 인문학 데이터베이스 개론
디지털 인문학 데이터베이스 개론디지털 인문학 데이터베이스 개론
디지털 인문학 데이터베이스 개론
Baro Kim
 
게임을 위한 DynamoDB 사례 및 팁 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
게임을 위한 DynamoDB 사례 및 팁 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming게임을 위한 DynamoDB 사례 및 팁 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
게임을 위한 DynamoDB 사례 및 팁 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
Amazon Web Services Korea
 
다중성 확보, 시스템 안정화
다중성 확보, 시스템 안정화다중성 확보, 시스템 안정화
다중성 확보, 시스템 안정화
Choonghyun Yang
 
데이터베이스 정규화
데이터베이스 정규화데이터베이스 정규화
데이터베이스 정규화
Hoyoung Jung
 
Dynamodb 삽질기
Dynamodb 삽질기Dynamodb 삽질기
Dynamodb 삽질기
AWSKRUG - AWS한국사용자모임
 
데이터베이스 시스템 chapter3_STG박하은
데이터베이스 시스템 chapter3_STG박하은데이터베이스 시스템 chapter3_STG박하은
데이터베이스 시스템 chapter3_STG박하은
ETRIBE_STG
 
데이터베이스 시스템 chapter2_STG박하은
데이터베이스 시스템 chapter2_STG박하은데이터베이스 시스템 chapter2_STG박하은
데이터베이스 시스템 chapter2_STG박하은
ETRIBE_STG
 
데이터베이스 시스템 chapter1_STG박하은
데이터베이스 시스템 chapter1_STG박하은데이터베이스 시스템 chapter1_STG박하은
데이터베이스 시스템 chapter1_STG박하은
ETRIBE_STG
 
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
Seunghwa Song
 
올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAP
올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAP올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAP
올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAP
cho hyun jong
 
테드폴허브 오픈소스Vs엔터프라이즈
테드폴허브 오픈소스Vs엔터프라이즈테드폴허브 오픈소스Vs엔터프라이즈
테드폴허브 오픈소스Vs엔터프라이즈
cho hyun jong
 
성능 좋은 SQL 작성법
성능 좋은 SQL 작성법성능 좋은 SQL 작성법
성능 좋은 SQL 작성법
Devgear
 
Solar Power Presentation
Solar Power PresentationSolar Power Presentation
Solar Power Presentation
thatpho
 
하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기
beom kyun choi
 
Amazon web service simple diagram overview
Amazon web service simple diagram overviewAmazon web service simple diagram overview
Amazon web service simple diagram overview
Juyeon Yu
 
Olap Cube Design
Olap Cube DesignOlap Cube Design
Olap Cube Design
h1m
 
OLAP Cubes in Datawarehousing
OLAP Cubes in DatawarehousingOLAP Cubes in Datawarehousing
OLAP Cubes in Datawarehousing
Prithwis Mukerjee
 
Chapter 11 Enterprise Resource Planning System
Chapter 11 Enterprise Resource Planning SystemChapter 11 Enterprise Resource Planning System
Chapter 11 Enterprise Resource Planning System
Muhammad Azmy
 
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
2014.4.30 프라이머 개발자 모임 - 서버 장애 예방 및 대응 방법 공유
Kyoungchan Lee
 
디지털 인문학 데이터베이스 개론
디지털 인문학 데이터베이스 개론디지털 인문학 데이터베이스 개론
디지털 인문학 데이터베이스 개론
Baro Kim
 
게임을 위한 DynamoDB 사례 및 팁 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
게임을 위한 DynamoDB 사례 및 팁 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming게임을 위한 DynamoDB 사례 및 팁 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
게임을 위한 DynamoDB 사례 및 팁 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
Amazon Web Services Korea
 
다중성 확보, 시스템 안정화
다중성 확보, 시스템 안정화다중성 확보, 시스템 안정화
다중성 확보, 시스템 안정화
Choonghyun Yang
 
데이터베이스 정규화
데이터베이스 정규화데이터베이스 정규화
데이터베이스 정규화
Hoyoung Jung
 
데이터베이스 시스템 chapter3_STG박하은
데이터베이스 시스템 chapter3_STG박하은데이터베이스 시스템 chapter3_STG박하은
데이터베이스 시스템 chapter3_STG박하은
ETRIBE_STG
 
데이터베이스 시스템 chapter2_STG박하은
데이터베이스 시스템 chapter2_STG박하은데이터베이스 시스템 chapter2_STG박하은
데이터베이스 시스템 chapter2_STG박하은
ETRIBE_STG
 
데이터베이스 시스템 chapter1_STG박하은
데이터베이스 시스템 chapter1_STG박하은데이터베이스 시스템 chapter1_STG박하은
데이터베이스 시스템 chapter1_STG박하은
ETRIBE_STG
 
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스
Seunghwa Song
 
올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAP
올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAP올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAP
올챙이(Tadpole for DB Tools)로 살펴보는 Eclipse RAP
cho hyun jong
 
테드폴허브 오픈소스Vs엔터프라이즈
테드폴허브 오픈소스Vs엔터프라이즈테드폴허브 오픈소스Vs엔터프라이즈
테드폴허브 오픈소스Vs엔터프라이즈
cho hyun jong
 
성능 좋은 SQL 작성법
성능 좋은 SQL 작성법성능 좋은 SQL 작성법
성능 좋은 SQL 작성법
Devgear
 
Solar Power Presentation
Solar Power PresentationSolar Power Presentation
Solar Power Presentation
thatpho
 
하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기
beom kyun choi
 
Amazon web service simple diagram overview
Amazon web service simple diagram overviewAmazon web service simple diagram overview
Amazon web service simple diagram overview
Juyeon Yu
 

Similar to Tutorial olap4j (20)

Matlab for a computational PhD
Matlab for a computational PhDMatlab for a computational PhD
Matlab for a computational PhD
AlbanLevy
 
Kill mysql-performance
Kill mysql-performanceKill mysql-performance
Kill mysql-performance
kriptonium
 
MachinaFiesta: A Vision into Machine Learning 🚀
MachinaFiesta: A Vision into Machine Learning 🚀MachinaFiesta: A Vision into Machine Learning 🚀
MachinaFiesta: A Vision into Machine Learning 🚀
GDSCNiT
 
BlaBlaCar Elastic Search Feedback
BlaBlaCar Elastic Search FeedbackBlaBlaCar Elastic Search Feedback
BlaBlaCar Elastic Search Feedback
sinfomicien
 
MySQL 5.6 Performance
MySQL 5.6 PerformanceMySQL 5.6 Performance
MySQL 5.6 Performance
MYXPLAIN
 
MySQL Performance schema missing_manual_flossuk
MySQL Performance schema missing_manual_flossukMySQL Performance schema missing_manual_flossuk
MySQL Performance schema missing_manual_flossuk
Valeriy Kravchuk
 
Accelerating Data Processing in Spark SQL with Pandas UDFs
Accelerating Data Processing in Spark SQL with Pandas UDFsAccelerating Data Processing in Spark SQL with Pandas UDFs
Accelerating Data Processing in Spark SQL with Pandas UDFs
Databricks
 
How MySQL can boost (or kill) your application v2
How MySQL can boost (or kill) your application v2How MySQL can boost (or kill) your application v2
How MySQL can boost (or kill) your application v2
Federico Razzoli
 
What is Distributed Computing, Why we use Apache Spark
What is Distributed Computing, Why we use Apache SparkWhat is Distributed Computing, Why we use Apache Spark
What is Distributed Computing, Why we use Apache Spark
Andy Petrella
 
Performance schema in_my_sql_5.6_pluk2013
Performance schema in_my_sql_5.6_pluk2013Performance schema in_my_sql_5.6_pluk2013
Performance schema in_my_sql_5.6_pluk2013
Valeriy Kravchuk
 
Volodymyr Lyubinets: Аналіз супутникових зображень: визначаємо параметри буді...
Volodymyr Lyubinets: Аналіз супутникових зображень: визначаємо параметри буді...Volodymyr Lyubinets: Аналіз супутникових зображень: визначаємо параметри буді...
Volodymyr Lyubinets: Аналіз супутникових зображень: визначаємо параметри буді...
Lviv Startup Club
 
OQGraph at MySQL Users Conference 2011
OQGraph at MySQL Users Conference 2011OQGraph at MySQL Users Conference 2011
OQGraph at MySQL Users Conference 2011
Antony T Curtis
 
Refactoring Applications for the XK7 and Future Hybrid Architectures
Refactoring Applications for the XK7 and Future Hybrid ArchitecturesRefactoring Applications for the XK7 and Future Hybrid Architectures
Refactoring Applications for the XK7 and Future Hybrid Architectures
Jeff Larkin
 
Ledingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @LendingkartLedingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @Lendingkart
Mukesh Singh
 
15 Ways to Kill Your Mysql Application Performance
15 Ways to Kill Your Mysql Application Performance15 Ways to Kill Your Mysql Application Performance
15 Ways to Kill Your Mysql Application Performance
guest9912e5
 
Performance #5 cpu and battery
Performance #5  cpu and batteryPerformance #5  cpu and battery
Performance #5 cpu and battery
Vitali Pekelis
 
Scala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadiusScala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadius
BoldRadius Solutions
 
Modeling the Behavior of Threads in the PREEMPT_RT Linux Kernel Using Automata
Modeling the Behavior of Threads in the PREEMPT_RT Linux Kernel Using AutomataModeling the Behavior of Threads in the PREEMPT_RT Linux Kernel Using Automata
Modeling the Behavior of Threads in the PREEMPT_RT Linux Kernel Using Automata
Daniel Bristot de Oliveira
 
Beyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic AnalysisBeyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic Analysis
C4Media
 
PPT. Introduction & Views - Documentation.pdf
PPT. Introduction & Views - Documentation.pdfPPT. Introduction & Views - Documentation.pdf
PPT. Introduction & Views - Documentation.pdf
wzsyqxyb7m
 
Matlab for a computational PhD
Matlab for a computational PhDMatlab for a computational PhD
Matlab for a computational PhD
AlbanLevy
 
Kill mysql-performance
Kill mysql-performanceKill mysql-performance
Kill mysql-performance
kriptonium
 
MachinaFiesta: A Vision into Machine Learning 🚀
MachinaFiesta: A Vision into Machine Learning 🚀MachinaFiesta: A Vision into Machine Learning 🚀
MachinaFiesta: A Vision into Machine Learning 🚀
GDSCNiT
 
BlaBlaCar Elastic Search Feedback
BlaBlaCar Elastic Search FeedbackBlaBlaCar Elastic Search Feedback
BlaBlaCar Elastic Search Feedback
sinfomicien
 
MySQL 5.6 Performance
MySQL 5.6 PerformanceMySQL 5.6 Performance
MySQL 5.6 Performance
MYXPLAIN
 
MySQL Performance schema missing_manual_flossuk
MySQL Performance schema missing_manual_flossukMySQL Performance schema missing_manual_flossuk
MySQL Performance schema missing_manual_flossuk
Valeriy Kravchuk
 
Accelerating Data Processing in Spark SQL with Pandas UDFs
Accelerating Data Processing in Spark SQL with Pandas UDFsAccelerating Data Processing in Spark SQL with Pandas UDFs
Accelerating Data Processing in Spark SQL with Pandas UDFs
Databricks
 
How MySQL can boost (or kill) your application v2
How MySQL can boost (or kill) your application v2How MySQL can boost (or kill) your application v2
How MySQL can boost (or kill) your application v2
Federico Razzoli
 
What is Distributed Computing, Why we use Apache Spark
What is Distributed Computing, Why we use Apache SparkWhat is Distributed Computing, Why we use Apache Spark
What is Distributed Computing, Why we use Apache Spark
Andy Petrella
 
Performance schema in_my_sql_5.6_pluk2013
Performance schema in_my_sql_5.6_pluk2013Performance schema in_my_sql_5.6_pluk2013
Performance schema in_my_sql_5.6_pluk2013
Valeriy Kravchuk
 
Volodymyr Lyubinets: Аналіз супутникових зображень: визначаємо параметри буді...
Volodymyr Lyubinets: Аналіз супутникових зображень: визначаємо параметри буді...Volodymyr Lyubinets: Аналіз супутникових зображень: визначаємо параметри буді...
Volodymyr Lyubinets: Аналіз супутникових зображень: визначаємо параметри буді...
Lviv Startup Club
 
OQGraph at MySQL Users Conference 2011
OQGraph at MySQL Users Conference 2011OQGraph at MySQL Users Conference 2011
OQGraph at MySQL Users Conference 2011
Antony T Curtis
 
Refactoring Applications for the XK7 and Future Hybrid Architectures
Refactoring Applications for the XK7 and Future Hybrid ArchitecturesRefactoring Applications for the XK7 and Future Hybrid Architectures
Refactoring Applications for the XK7 and Future Hybrid Architectures
Jeff Larkin
 
Ledingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @LendingkartLedingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @Lendingkart
Mukesh Singh
 
15 Ways to Kill Your Mysql Application Performance
15 Ways to Kill Your Mysql Application Performance15 Ways to Kill Your Mysql Application Performance
15 Ways to Kill Your Mysql Application Performance
guest9912e5
 
Performance #5 cpu and battery
Performance #5  cpu and batteryPerformance #5  cpu and battery
Performance #5 cpu and battery
Vitali Pekelis
 
Scala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadiusScala Days Highlights | BoldRadius
Scala Days Highlights | BoldRadius
BoldRadius Solutions
 
Modeling the Behavior of Threads in the PREEMPT_RT Linux Kernel Using Automata
Modeling the Behavior of Threads in the PREEMPT_RT Linux Kernel Using AutomataModeling the Behavior of Threads in the PREEMPT_RT Linux Kernel Using Automata
Modeling the Behavior of Threads in the PREEMPT_RT Linux Kernel Using Automata
Daniel Bristot de Oliveira
 
Beyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic AnalysisBeyond Breakpoints: A Tour of Dynamic Analysis
Beyond Breakpoints: A Tour of Dynamic Analysis
C4Media
 
PPT. Introduction & Views - Documentation.pdf
PPT. Introduction & Views - Documentation.pdfPPT. Introduction & Views - Documentation.pdf
PPT. Introduction & Views - Documentation.pdf
wzsyqxyb7m
 
Ad

Recently uploaded (20)

IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Ad

Tutorial olap4j

  • 1. OLAP4J - Introduction Wanna be better than your opponentes ? **Competitive advantage** by @borjaeg
  • 2. KEY POINTS ● MY PROBLEM (IN DREAMS) ● BUSINESS INTELLIGENCE ● WHAT IS OLAP ? ● WHAT IS OLAP4J? ● MAIN CLASSES/INTERFACES ● MDX ● SNIPPETS
  • 3. MY PROBLEM ● Yeah! I have a discography, with many artists from Spain and England. I want to get a hit this summer, but now … I haven't got enough money to bet on two different artists. Only one. I need information from data, i need to take advantage from other discographies...
  • 4. BUSINESS INTELLIGENCE ● Business Intelligence (BI) is the ability of an organization to collect, mantain, and organize data. ● Large amounts of information can help develop new opportunities. ● Identifying them, can provide a competitive market advantage and long-term stability. ● Technology → OLAP, Data Mining, predective analytics...
  • 5. WHAT IS OLAP ? ● In computing science (installing printers is not included), online analytical processing, or OLAP, is an approach to answering multi-dimensional analytical queries swiftly. ● OLAP is an important part of Business intelligence. ● Main concepts (for me ^^) → Hypercube, dimensions, meassures... – ROLAP – MOLAP – HOLAP – SOLAP – ...
  • 6. WHAT IS OLAP4J? ● JAVA API ● PROVIDES OLAP ANALISYS ● QUERY LANGUAGE – MDX STRING – MDX PARSE TREE – METADA IS AT THE HEART OF Olap4j – DIFFERENT CUBE SERVERS ARE SUPPORTED ● MSAS via XML/A ● MONDRIAN
  • 7. MAIN CLASSES/INTERFACES ● Interfaces ...you should know them as they were your girlfriend/hand. – OlapConnection – OlapWrapper – OlapStatement/ PreparedOlapStatement – CellSet – CellSetAxis – Position – Cell
  • 8. MAIN CASSES / INTERFACES ● Cellset is the set which contains the cell returned by the MDX query. ● Cellset is the set where results are founded. ● What's a cell? (Next slide) – Important API methods: getCell, getFilterAxis, getMetadata...
  • 9. MAIN CASSES / INTERFACES ● Cell is the structure which contains a part of the cellset. Every cell, contains a part of the result we are searching with a MDX query. ● It could be said that cells are as rows in RDBs or documents in a document-oriented DB. This is just a very simple approach, a really simple analogy. – Important API methods: drillThrough, getValue, isEmpty, isNull,...
  • 10. MAIN CASSES / INTERFACES ● CellSetAxis is the axis of a cellset (OK?!!) ● A cell set has the same number of axes as the MDX statement which was executed to produce it. ● Each axis is an ordered collection of members or tuples. ● Each member or tuple on an axis is called Position. – Important API methods: getPositions, getAxisMetada...
  • 11. MAIN CASSES / INTERFACES ● Position is one of the CellSetAxis objects in a CellSet. ● An axis has a particular dimensionality, that is, a set of one or more dimensions which will appear on than axis, and every position on that axis will have a member of each of those dimensions. (Extracted from official API) ● WTF¿! → As The Beatles said “All you need are snippets” (more or less...) – Important API methods: getMembers, getOrdinal...
  • 12. MDX ● Multidimensional Expressions (MDX) is a query language for OLAP databases. Similar to SQL in RDBs world. It is also a calculation language, with syntax similar to spreadsheet formulas. ● Example (Next slide explain this query)
  • 13. MDX ● Time dimension ON columns ● Artists dimension ON rows ● Results are filtered by Total Sales. To solve my problem, I'm gonna visualize artists, the last three summers and total sales.
  • 14. SNIPPETS ● Environment where I'm working...and living. – Macbook Pro ● Core i5 (2.54 Ghz) ● 16 GB RAM – PostgreSQL 9.2 – Eclipse Juno (code is copied from Sublime) ● Index – Getting connection – Validating MDX query – Executing MDX query and print results – Executing a MDX query and go through all results.
  • 15. SNIPPET I Getting and closing Connection. I'm using some junit annotations (v.4.11) and mondrian driver.
  • 16. SNIPPET II ● Validating a query. In this snippet, it's also possible to see how to parse a query. When you parse a query, you can obtain the query model (rows, columns, filters...)
  • 17. SNIPPET III ● Executing MDX query. – executeOlapQuery ● Printing results. – printQueryResult
  • 18. SNIPPET IV ● Executing MDX query and going through results – It's important to test if cells are empty. Doing some operations with empty cells could throw exceptions.
  • 19. Conclusion ● Business intelligence is a “huge world” full of different possibilities to get better information quality. This can also be a problem. Each solution has advantages and disadvantages. ● BI concepts aren't new. But nowadays most documents which talk about BI are quite hard to undertands. ● My experience with Olap4j has been really good. ● Documentation is quite good, but it needed to be improved with more examples.
  • 20. Links recommended ● http://en.wikipedia.org/wiki/Business_intelligence ● http://en.wikipedia.org/wiki/Competitive_advantage ● http://en.wikipedia.org/wiki/Online_analytical_processing ● http://en.wikipedia.org/wiki/MultiDimensional_eXpression s ● http://mondrian.pentaho.com/ ● http://www.olap4j.org/