SlideShare a Scribd company logo
SF MicroStrategy Bay Area Meetup
December 4, 2013

LinkedIn Confidential ©2013 All Rights Reserved
Agenda
• About LinkedIn

• BI Challenges
• Administration Hacks
• Q&A
Our Mission
Connect the world’s professionals to make them
more productive and successful.

Our Vision
Create economic opportunity for every
professional in the world.

Members First!
The world’s largest professional network
Over 65% of members are now international

19
Languages

259M+
Members Worldwide
Growing at more than two members per second

>91%
Fortune 100 Companies
use LinkedIn Talent Soln to hire

>3M

Active Company Pages

>30M
Students

©2013 LinkedIn Corporation. All Rights Reserved.
Technology Stack
Technology Stack
Internal User Groups
Product
Biz-Ops
Data Analytics
Infrastructure

Hiring Solutions

Data
Sciences

Executives

Marketing Solutions
Talent Solutions
Business Intelligence Team

Bhavani Akunuri

Kevin Simon

Poorna Lankipalli

Sandeep Deviah

Sunil Shirguppi

Qun Li

Sabeer Thajudeen
Agenda
• About LinkedIn

• BI Challenges
• Administration Hacks
• Q&A
Challenges

• BIG DATA - 4 V’s : Velocity, Volume , Variety & Veracity
• Data Quality & SLA
• Navigation to reports/dashboards
• Multiple sources for answering critical questions
Metadata Driven Dashboards
by: Kevin Simon, Sr Data Warehouse Engineer
Microstrategy Meetup
December 4, 2013

LinkedIn Confidential ©2013 All Rights Reserved
FOR THE BUSINESS USERS:
How much would you be benefited if you
had the ability to effect real time change to
your critical dashboards, with little to no IT
involvement?
FOR THE ENGINEERS:
How much would you be benefited if your
users could make changes to their critical
dashboards, without needing to engage you
to make simple changes?
THE OLD WAY …

The fixed layout of this
dashboard makes it
difficult to manage.
Mstr meetup
HOW DID WE FIX THE PROBLEM?
With a Metadata driven design…
Real-time changes can effectively be made to
dashboards.

IT resources can be freed to work on other
projects.
Metrics can be introduced into your production
dashboards, prior to ETL development.
PROCESS FLOW AND TABLE DESIGN

Daily ETL
Aggregate
Process

Daily Custom
Metrics

Forecasting
Model (R)

Dashboard
View

Aggregate
DATE_SK

METRIC_SK

COUNTRY_ID

LOCALE_ID

METRIC_NAME

METRIC_VALUE

2013-11-01

100

500

1000

PAGE VIEWS

1000

2013-11-01

200

500

1000

SUBSCRIBERS

2000

2013-11-01

9000

550

1000

PV / UNIQUE MBRS

1500

Look up
METRIC_SK

METRIC_NAME

CAT_ID

CAT_ORDER

METRIC_ORDER

DISPL_FACTOR

100

PAGE VIEWS

100

10

10

200

SUBSCRIBERS (M)

100

10

20

1000000

9000

PV / UNIQUE MBR

200

20

10

1000
Mstr meetup
Mstr meetup
IN CONCLUSION…
A Metadata approach to dashboard
design has allowed for real time change
to critical dashboards.
More power and control given to users.
IT Resources can focus on other things.

Time to market greatly reduced.
Same message across multiple dashboards.
Next Play
Challenges
• BIG DATA - 4 V’s
• Data Quality & SLA
• Navigation to reports/dashboards
• Multiple sources for answering critical questions
Data Quality & SLA
by: Sabeer Thajudeen, Senior Software Engineer
Microstrategy Meetup
December 4, 2013

LinkedIn Confidential ©2013 All Rights Reserved
Dashboard Delivery
Daily ETL
Aggregate
Process

M1

Daily Custom
Metrics

M2

Forecasting
Model (R)

……

Mn

MSTR Workflow
Metric

Alert

WoW

No
Data

M1

Y

20%

Y

M2

Y

NA

Y

M3

N

NA

NA

Trigger Cube

Workflow
Scheduler

Data
Validation
(BTEQ)

Command Manager
- Trigger Event
(Alert Report)

Command Manager

Validator

Trigger
Internal

Trigger
External
ABORT

Command Manager
- Trigger Event
(Dashboard)
Challenges
• BIG DATA - 4 V’s
• Data Quality & SLA
• Navigation to reports/dashboards
• Multiple sources for answering critical questions
Navigation to reports/dashboards
by: Bhavani Akunuri, Senior Software Engineer
Microstrategy Meetup
December 4, 2013

LinkedIn Confidential ©2013 All Rights Reserved
Too Many Clicks
Resolution
• Identified top used reports

• Create short links
• Landing page re-design
Demo
Sample Code
Last Updated Timestamp
<web:ifBeanValue bean="frame" property="getDesignMode" value="0">
<web:then>

<div class="mstrMenuLastUpdatedCustom"> <web:displayGuiComponent
name="report_last_update" isContainer="true"/> </div>
</web:then>
<web:else>
<web:ifBeanValue bean="frame.rb" property="getXMLStatus" value="6">
<web:then>
<div class="mstrMenuLastUpdatedCustom"> <web:displayGuiComponent
name="report_last_update" isContainer="true"/> </div>
</web:then>
<web:else>
<web:displayGuiComponent name="report_design_area" isContainer="true"/>
</web:else>
</web:ifBeanValue>
</web:else>
</web:ifBeanValue>
Challenges
• BIG DATA - 4 V’s
• Data Quality & SLA
• Navigation to reports/dashboards
• Multiple sources for answering critical questions
Q: How are my key products performing?

Q: What caused the variance on KPI?

Q: Does it have a global effect?

Demo
Sample Code
Overlay Effect

Pop Up Code

<style>
.overlay_effect-ingraphs,
{
display:none;
position:fixed;
opacity:0.7;
height:50%;
width:50%;
z-index:100;
}
</style>

<script type="text/javascript">

$(document).ready( function() {
var main = $(this);
$("#ingraphs").click(function() {
loadPopupBox(".overlay_effect-ingraphs",".popupInGraphs");
});
function loadPopupBox(overlay,popup){
$(overlay).fadeIn("slow");
$(popup).fadeIn("slow");
}
});
</script>
Sample Code
Overlay Effect

Pop Up Code

<style>
.overlay_effect-ingraphs,
{
display:none;
position:fixed;
opacity:0.7;
height:50%;
width:50%;
z-index:100;
}
</style>

<script type="text/javascript">

$(document).ready( function() {
var main = $(this);
$("#ingraphs").click(function() {
loadPopupBox(".overlay_effect-ingraphs",".popupInGraphs");
});
function loadPopupBox(overlay,popup){
$(overlay).fadeIn("slow");
$(popup).fadeIn("slow");
}
});
</script>
Next Play
Agenda
• About LinkedIn

• BI Challenges
• Administration Hacks
• Q&A
Administration Hacks
by: Sabeer Thajudeen, Senior Software Engineer
Microstrategy Meetup
December 4, 2013

LinkedIn Confidential ©2013 All Rights Reserved
Swapping iServer names in User Bookmarks

Context:
▪ Disaster (DR) recovery is critical . MSTR infrastructure has been set up for DR
▪ Each time we test DR, VIP and base URL remains the same. However, iServer names change
Impact:
▪ Bookmarks (to access reports directly) include iServer names and will not work

Resolution:
▪ Use MSTR SDK to seamlessly swap incorrect iServer names in bookmarks (External Security
Module)

Link
Implementation Detail
▪ Create a Custom ESM (External Security Module) that extends ‘Abstract External
Security’
▪ Override the function ‘handlesAuthenticationRequest’
– 1) Read iServer names in incoming URL using regex. Matcher and
regex.Pattern libraries
▪ Pattern pat_type_1 = Pattern.compile("Server=.{4}-rpt..", 2);
▪ Pattern pat_type_2 = Pattern.compile("mstrWeb=-.{5}-rpt..", 2);
for(Matcher mat_type_2 = pat_type_2.matcher(requestURL); mat_type_2.find();)
{

//read iServer name in incoming URL
String iServerName = mat_type_2.group();

….

– 2) Replace if iServer name does not match expected server name
Example:
//Does iServerName in URL match with expected Server Name
if(! iServerName .equalsIgnoreCase((new StringBuilder("mstrWeb=-")).append(Location).append("*").append(Server1).toString()) && ! iServerName .equalsIgnoreCase((new StringBuilder("mstrWeb=")).append(Location).append("*-").append(Server2).toString()))
{

……

//Correct Server Name
requestURL = mat_type_2.replaceAll((newStringBuilder("mstrWeb=-")).append(Location).append("*").append(Server1).toString());
….}
}

– 3) Resubmit corrected URL - response.sendRedirect(requestURL);

▪ Update MicroStrategy Config Settings – Application Settings to use Custom ESM
(Web Customization Editor)
Monitoring MSTR via Web
Context:
▪ 24/7 Operations team to monitor and support infrastructure
▪ Handles not just MSTR but Teradata, Hadoop & ETL pipleline
▪ Prefer a web based system for monitoring rather than a desktop client
Solution
▪ Built a Web GUI to monitor critical aspects of the MicroStrategy infrastructure
– Delivery Status of all our critical dashboards
– Cube Refresh Status
– Job monitor for currently active jobs
– User Connection Monitor
MSTR Monitor
(Web Application)

InSights Monitor

JDBC

Statistics
Tables

SDK

MSTR
Application
(iServer)
Implementation Detail
▪ Dashboard Delivery Status and Cube Status
– IS_DOCUMENT_STATS and IS_CUBE_REP_STATS

▪ Instantiate WebObjectsFactory:

factory = WebObjectsFactory.getInstance();

▪ Force connection to each iServer
//Get cluster information
WebClusterAdmin wca = factory.getClusterAdmin();
WebClusters wcs = wca.getClusters();
for(int i=0;i<wcs.size();i++){
for(int j=0;j<wcs.get(i).size();j++){
//Set load balance factor to 0 to force cionnection to other iServer
wcs.get(i).get(j).setLoadBalanceFactor(0);
jobDetails+= getJobDetails(session,factory,httpReqId);
wcs.get(i).get(j).setLoadBalanceFactor(1);
}
}

▪ Inside getJobDetails:
//Retrieve job source. Loop through each job to get job info
//Use the same logic for the source WebMonitorTypeUserConnection to obtain session info
strSessionID = session.getSessionID();

source = (JobSource) factory.getMonitorSource(EnumWebMonitorType.WebMonitorTypeJob);
results = source.getJobs();
for (int i=0; i < results.getCount(); i++) {
Job singleJob = results.get(i);
job_id= singleJob.getJobID();
duration = singleJob.getDuration();….
}
Next Play
Credits
▪ Vincent Kwong – Program Manager

▪ Anirudh Gupta & Crowe Bonnie – Meet up Organizers
▪ LinkedIn AV team, Communications & Security
▪ Data Science & Biz-Ops
▪ ETL & Platform Teams
▪ NOC, DS Operations & DBA
Agenda
• About LinkedIn

• BI Challenges
• Administration Hacks
• Q&A

More Related Content

PDF
Microsoft SQL Server 2012 Cloud Ready
DOC
Dale Brooks Resume D
DOCX
Krishnakumar Rajendran (1)
PDF
Leveraging Azure Analysis Services Tabular Data Models with Power BI by Tim M...
PPTX
Lezlee Coulter SQl Server Portfolio
DOC
PPTX
Exploring Puerto Rico Open Data with Power BI
PDF
Alternatives for Systems Integration in the NoSQL Era - NoSQL Roadshow 2013
Microsoft SQL Server 2012 Cloud Ready
Dale Brooks Resume D
Krishnakumar Rajendran (1)
Leveraging Azure Analysis Services Tabular Data Models with Power BI by Tim M...
Lezlee Coulter SQl Server Portfolio
Exploring Puerto Rico Open Data with Power BI
Alternatives for Systems Integration in the NoSQL Era - NoSQL Roadshow 2013

What's hot (20)

PPTX
How does Microsoft solve Big Data?
PPTX
Transitioning to a BI Role
PDF
Atlassian Jira Brochure
PDF
Azure analysis services next step to bi in the cloud
PPTX
Microsoft Flow session : tips, pitfalls, warnings to be known before starting...
PPTX
DOES16 San Francisco - DevOps Workshop: Organizational Design
PPTX
Configuring SharePoint 2013 for BI scenarios
DOC
Resume
PPTX
Democratizing Data Science in the Enterprise
PDF
Systems Integration in the NoSQL Era with Apache Camel (Neo4j, CouchDB, AWS S...
PPTX
Configuring SharePoint Server 2013 environment for Business Intelligence Plat...
PDF
Be the Data Hero in Your Organization with SAP and CA Analytic Solutions
PDF
Salesforce Performance hacks - Client Side
PPTX
Data Modeling on Azure for Analytics
ODP
Continuous integration with business intelligence and analytics
PDF
Oracle soa suite 12c - News
PDF
Wrangling Messy Data - A True Story
DOCX
Vigna_MSBI_Resume
PPTX
QlikView Macro's Are Bad
DOC
SYED_RAZA_Monster_06012016
How does Microsoft solve Big Data?
Transitioning to a BI Role
Atlassian Jira Brochure
Azure analysis services next step to bi in the cloud
Microsoft Flow session : tips, pitfalls, warnings to be known before starting...
DOES16 San Francisco - DevOps Workshop: Organizational Design
Configuring SharePoint 2013 for BI scenarios
Resume
Democratizing Data Science in the Enterprise
Systems Integration in the NoSQL Era with Apache Camel (Neo4j, CouchDB, AWS S...
Configuring SharePoint Server 2013 environment for Business Intelligence Plat...
Be the Data Hero in Your Organization with SAP and CA Analytic Solutions
Salesforce Performance hacks - Client Side
Data Modeling on Azure for Analytics
Continuous integration with business intelligence and analytics
Oracle soa suite 12c - News
Wrangling Messy Data - A True Story
Vigna_MSBI_Resume
QlikView Macro's Are Bad
SYED_RAZA_Monster_06012016
Ad

Viewers also liked (20)

PPTX
Live and learn
PPTX
Vocational college p pt
PPTX
Exercise 5 slideshow
PPT
MS Word for Beginners
PPTX
Volunteering can make one happier!
PPTX
The cougars exercise 3
PPTX
Obesity surgery
PPT
Общественный транспорт: фокус на пользователя
PDF
Presentation - Gasworks Park and Lagoon Reserve Ref Meeting
PDF
Slide share photos
PPTX
Exercise 5 powerpoint
PPT
NBC Sports Regional Networks Travel & Tourism
PDF
C++11 talk
PPT
Büyük iskender Anadoluda
PDF
Menu gener 16
PPTX
EVOLUCION DE LA WEB DESDE LA 1.0 HASTA 5.0
PDF
Business - Play to win
PDF
Filhosdovento
PDF
Importancia de las herramientas en la nube
DOCX
Mapa mental freddy
Live and learn
Vocational college p pt
Exercise 5 slideshow
MS Word for Beginners
Volunteering can make one happier!
The cougars exercise 3
Obesity surgery
Общественный транспорт: фокус на пользователя
Presentation - Gasworks Park and Lagoon Reserve Ref Meeting
Slide share photos
Exercise 5 powerpoint
NBC Sports Regional Networks Travel & Tourism
C++11 talk
Büyük iskender Anadoluda
Menu gener 16
EVOLUCION DE LA WEB DESDE LA 1.0 HASTA 5.0
Business - Play to win
Filhosdovento
Importancia de las herramientas en la nube
Mapa mental freddy
Ad

Similar to Mstr meetup (20)

PDF
SQL Operations Studio - new multi-platform tool for SQL Server database devel...
PDF
Why and How SmartNews uses SaaS?
PDF
Real-time SQL Access for Your Salesforce.com Data
PPTX
(Updated) SharePoint & jQuery Guide
DOC
Munish Gupta_CV
DOCX
Raymond_Solomon_resume_July
DOC
354836_(General_Format)Mahaboob Basha Shaik
PPTX
Cepta The Future of Data with Power BI
PPTX
PASSMN Summit 2009 Upgrade to SSAS 2008
DOC
updated_profile_ak
DOCX
BrianMiller CV short 2015
PDF
Sr_MicroStrategy_Consultant
PPTX
sagitec-neospin-pension-admin-software
PPTX
Sagitec Neospin Pension Admin Software
PDF
¿Cómo modernizar una arquitectura de TI con la virtualización de datos?
DOC
Resume_Susmita
DOCX
Resume_BI_Jai
DOCX
Chris_Resume_2017
PPTX
Introduction To SQL Server 2014
DOC
Big Data Analyst at BankofAmerica
SQL Operations Studio - new multi-platform tool for SQL Server database devel...
Why and How SmartNews uses SaaS?
Real-time SQL Access for Your Salesforce.com Data
(Updated) SharePoint & jQuery Guide
Munish Gupta_CV
Raymond_Solomon_resume_July
354836_(General_Format)Mahaboob Basha Shaik
Cepta The Future of Data with Power BI
PASSMN Summit 2009 Upgrade to SSAS 2008
updated_profile_ak
BrianMiller CV short 2015
Sr_MicroStrategy_Consultant
sagitec-neospin-pension-admin-software
Sagitec Neospin Pension Admin Software
¿Cómo modernizar una arquitectura de TI con la virtualización de datos?
Resume_Susmita
Resume_BI_Jai
Chris_Resume_2017
Introduction To SQL Server 2014
Big Data Analyst at BankofAmerica

Recently uploaded (20)

PDF
Instant Audience, Long-Term Impact Buy Real Telegram Members
PPTX
Preposition and Asking and Responding Suggestion.pptx
PDF
A copy of a Medium article wishing Merry Christmas To All My Followers
PDF
Medium @mikehydes The Cryptomaster About page
PDF
COMMENTIFY - Commentify.co: Your AI LinkedIn Comments Agent
PDF
Your Best Post Vanished. Blame the Attention Economy
PDF
Create. Post. Dominate. Let's Build Together
PDF
Medium @mikehydes The Cryptomaster Story Stats
PDF
Medium @mikehydes The Cryptomaster Home page
PPTX
Result-Driven Social Media Marketing Services | Boost ROI
PDF
Medium @mikehydes The Cryptomaster Audience Stats
PPTX
Types of Social Media Marketing for Business Success
PDF
11111111111111111111111111111111111111111111111
PDF
StarNetCafeSB2012D3POYNagaworld2-Hotel-Casino-Phnom Entertainment
PDF
Subscribe This Channel Subscribe Back You
PPTX
Strategies for Social Media App Enhancement
PDF
The Edge You’ve Been Missing Get the Sociocosmos Edge
PDF
Real Presence. Real Power. Boost with Authenticity
PDF
The Fastest Way to Look Popular Buy Reactions Today
PDF
How can India improve its Public Diplomacy - Social Media.pdf
Instant Audience, Long-Term Impact Buy Real Telegram Members
Preposition and Asking and Responding Suggestion.pptx
A copy of a Medium article wishing Merry Christmas To All My Followers
Medium @mikehydes The Cryptomaster About page
COMMENTIFY - Commentify.co: Your AI LinkedIn Comments Agent
Your Best Post Vanished. Blame the Attention Economy
Create. Post. Dominate. Let's Build Together
Medium @mikehydes The Cryptomaster Story Stats
Medium @mikehydes The Cryptomaster Home page
Result-Driven Social Media Marketing Services | Boost ROI
Medium @mikehydes The Cryptomaster Audience Stats
Types of Social Media Marketing for Business Success
11111111111111111111111111111111111111111111111
StarNetCafeSB2012D3POYNagaworld2-Hotel-Casino-Phnom Entertainment
Subscribe This Channel Subscribe Back You
Strategies for Social Media App Enhancement
The Edge You’ve Been Missing Get the Sociocosmos Edge
Real Presence. Real Power. Boost with Authenticity
The Fastest Way to Look Popular Buy Reactions Today
How can India improve its Public Diplomacy - Social Media.pdf

Mstr meetup

  • 1. SF MicroStrategy Bay Area Meetup December 4, 2013 LinkedIn Confidential ©2013 All Rights Reserved
  • 2. Agenda • About LinkedIn • BI Challenges • Administration Hacks • Q&A
  • 3. Our Mission Connect the world’s professionals to make them more productive and successful. Our Vision Create economic opportunity for every professional in the world. Members First!
  • 4. The world’s largest professional network Over 65% of members are now international 19 Languages 259M+ Members Worldwide Growing at more than two members per second >91% Fortune 100 Companies use LinkedIn Talent Soln to hire >3M Active Company Pages >30M Students ©2013 LinkedIn Corporation. All Rights Reserved.
  • 7. Internal User Groups Product Biz-Ops Data Analytics Infrastructure Hiring Solutions Data Sciences Executives Marketing Solutions Talent Solutions
  • 8. Business Intelligence Team Bhavani Akunuri Kevin Simon Poorna Lankipalli Sandeep Deviah Sunil Shirguppi Qun Li Sabeer Thajudeen
  • 9. Agenda • About LinkedIn • BI Challenges • Administration Hacks • Q&A
  • 10. Challenges • BIG DATA - 4 V’s : Velocity, Volume , Variety & Veracity • Data Quality & SLA • Navigation to reports/dashboards • Multiple sources for answering critical questions
  • 11. Metadata Driven Dashboards by: Kevin Simon, Sr Data Warehouse Engineer Microstrategy Meetup December 4, 2013 LinkedIn Confidential ©2013 All Rights Reserved
  • 12. FOR THE BUSINESS USERS: How much would you be benefited if you had the ability to effect real time change to your critical dashboards, with little to no IT involvement? FOR THE ENGINEERS: How much would you be benefited if your users could make changes to their critical dashboards, without needing to engage you to make simple changes?
  • 13. THE OLD WAY … The fixed layout of this dashboard makes it difficult to manage.
  • 15. HOW DID WE FIX THE PROBLEM? With a Metadata driven design… Real-time changes can effectively be made to dashboards. IT resources can be freed to work on other projects. Metrics can be introduced into your production dashboards, prior to ETL development.
  • 16. PROCESS FLOW AND TABLE DESIGN Daily ETL Aggregate Process Daily Custom Metrics Forecasting Model (R) Dashboard View Aggregate DATE_SK METRIC_SK COUNTRY_ID LOCALE_ID METRIC_NAME METRIC_VALUE 2013-11-01 100 500 1000 PAGE VIEWS 1000 2013-11-01 200 500 1000 SUBSCRIBERS 2000 2013-11-01 9000 550 1000 PV / UNIQUE MBRS 1500 Look up METRIC_SK METRIC_NAME CAT_ID CAT_ORDER METRIC_ORDER DISPL_FACTOR 100 PAGE VIEWS 100 10 10 200 SUBSCRIBERS (M) 100 10 20 1000000 9000 PV / UNIQUE MBR 200 20 10 1000
  • 19. IN CONCLUSION… A Metadata approach to dashboard design has allowed for real time change to critical dashboards. More power and control given to users. IT Resources can focus on other things. Time to market greatly reduced. Same message across multiple dashboards.
  • 21. Challenges • BIG DATA - 4 V’s • Data Quality & SLA • Navigation to reports/dashboards • Multiple sources for answering critical questions
  • 22. Data Quality & SLA by: Sabeer Thajudeen, Senior Software Engineer Microstrategy Meetup December 4, 2013 LinkedIn Confidential ©2013 All Rights Reserved
  • 23. Dashboard Delivery Daily ETL Aggregate Process M1 Daily Custom Metrics M2 Forecasting Model (R) …… Mn MSTR Workflow Metric Alert WoW No Data M1 Y 20% Y M2 Y NA Y M3 N NA NA Trigger Cube Workflow Scheduler Data Validation (BTEQ) Command Manager - Trigger Event (Alert Report) Command Manager Validator Trigger Internal Trigger External ABORT Command Manager - Trigger Event (Dashboard)
  • 24. Challenges • BIG DATA - 4 V’s • Data Quality & SLA • Navigation to reports/dashboards • Multiple sources for answering critical questions
  • 25. Navigation to reports/dashboards by: Bhavani Akunuri, Senior Software Engineer Microstrategy Meetup December 4, 2013 LinkedIn Confidential ©2013 All Rights Reserved
  • 27. Resolution • Identified top used reports • Create short links • Landing page re-design Demo
  • 28. Sample Code Last Updated Timestamp <web:ifBeanValue bean="frame" property="getDesignMode" value="0"> <web:then> <div class="mstrMenuLastUpdatedCustom"> <web:displayGuiComponent name="report_last_update" isContainer="true"/> </div> </web:then> <web:else> <web:ifBeanValue bean="frame.rb" property="getXMLStatus" value="6"> <web:then> <div class="mstrMenuLastUpdatedCustom"> <web:displayGuiComponent name="report_last_update" isContainer="true"/> </div> </web:then> <web:else> <web:displayGuiComponent name="report_design_area" isContainer="true"/> </web:else> </web:ifBeanValue> </web:else> </web:ifBeanValue>
  • 29. Challenges • BIG DATA - 4 V’s • Data Quality & SLA • Navigation to reports/dashboards • Multiple sources for answering critical questions
  • 30. Q: How are my key products performing? Q: What caused the variance on KPI? Q: Does it have a global effect? Demo
  • 31. Sample Code Overlay Effect Pop Up Code <style> .overlay_effect-ingraphs, { display:none; position:fixed; opacity:0.7; height:50%; width:50%; z-index:100; } </style> <script type="text/javascript"> $(document).ready( function() { var main = $(this); $("#ingraphs").click(function() { loadPopupBox(".overlay_effect-ingraphs",".popupInGraphs"); }); function loadPopupBox(overlay,popup){ $(overlay).fadeIn("slow"); $(popup).fadeIn("slow"); } }); </script>
  • 32. Sample Code Overlay Effect Pop Up Code <style> .overlay_effect-ingraphs, { display:none; position:fixed; opacity:0.7; height:50%; width:50%; z-index:100; } </style> <script type="text/javascript"> $(document).ready( function() { var main = $(this); $("#ingraphs").click(function() { loadPopupBox(".overlay_effect-ingraphs",".popupInGraphs"); }); function loadPopupBox(overlay,popup){ $(overlay).fadeIn("slow"); $(popup).fadeIn("slow"); } }); </script>
  • 34. Agenda • About LinkedIn • BI Challenges • Administration Hacks • Q&A
  • 35. Administration Hacks by: Sabeer Thajudeen, Senior Software Engineer Microstrategy Meetup December 4, 2013 LinkedIn Confidential ©2013 All Rights Reserved
  • 36. Swapping iServer names in User Bookmarks Context: ▪ Disaster (DR) recovery is critical . MSTR infrastructure has been set up for DR ▪ Each time we test DR, VIP and base URL remains the same. However, iServer names change Impact: ▪ Bookmarks (to access reports directly) include iServer names and will not work Resolution: ▪ Use MSTR SDK to seamlessly swap incorrect iServer names in bookmarks (External Security Module) Link
  • 37. Implementation Detail ▪ Create a Custom ESM (External Security Module) that extends ‘Abstract External Security’ ▪ Override the function ‘handlesAuthenticationRequest’ – 1) Read iServer names in incoming URL using regex. Matcher and regex.Pattern libraries ▪ Pattern pat_type_1 = Pattern.compile("Server=.{4}-rpt..", 2); ▪ Pattern pat_type_2 = Pattern.compile("mstrWeb=-.{5}-rpt..", 2); for(Matcher mat_type_2 = pat_type_2.matcher(requestURL); mat_type_2.find();) { //read iServer name in incoming URL String iServerName = mat_type_2.group(); …. – 2) Replace if iServer name does not match expected server name Example: //Does iServerName in URL match with expected Server Name if(! iServerName .equalsIgnoreCase((new StringBuilder("mstrWeb=-")).append(Location).append("*").append(Server1).toString()) && ! iServerName .equalsIgnoreCase((new StringBuilder("mstrWeb=")).append(Location).append("*-").append(Server2).toString())) { …… //Correct Server Name requestURL = mat_type_2.replaceAll((newStringBuilder("mstrWeb=-")).append(Location).append("*").append(Server1).toString()); ….} } – 3) Resubmit corrected URL - response.sendRedirect(requestURL); ▪ Update MicroStrategy Config Settings – Application Settings to use Custom ESM (Web Customization Editor)
  • 38. Monitoring MSTR via Web Context: ▪ 24/7 Operations team to monitor and support infrastructure ▪ Handles not just MSTR but Teradata, Hadoop & ETL pipleline ▪ Prefer a web based system for monitoring rather than a desktop client Solution ▪ Built a Web GUI to monitor critical aspects of the MicroStrategy infrastructure – Delivery Status of all our critical dashboards – Cube Refresh Status – Job monitor for currently active jobs – User Connection Monitor MSTR Monitor (Web Application) InSights Monitor JDBC Statistics Tables SDK MSTR Application (iServer)
  • 39. Implementation Detail ▪ Dashboard Delivery Status and Cube Status – IS_DOCUMENT_STATS and IS_CUBE_REP_STATS ▪ Instantiate WebObjectsFactory: factory = WebObjectsFactory.getInstance(); ▪ Force connection to each iServer //Get cluster information WebClusterAdmin wca = factory.getClusterAdmin(); WebClusters wcs = wca.getClusters(); for(int i=0;i<wcs.size();i++){ for(int j=0;j<wcs.get(i).size();j++){ //Set load balance factor to 0 to force cionnection to other iServer wcs.get(i).get(j).setLoadBalanceFactor(0); jobDetails+= getJobDetails(session,factory,httpReqId); wcs.get(i).get(j).setLoadBalanceFactor(1); } } ▪ Inside getJobDetails: //Retrieve job source. Loop through each job to get job info //Use the same logic for the source WebMonitorTypeUserConnection to obtain session info strSessionID = session.getSessionID(); source = (JobSource) factory.getMonitorSource(EnumWebMonitorType.WebMonitorTypeJob); results = source.getJobs(); for (int i=0; i < results.getCount(); i++) { Job singleJob = results.get(i); job_id= singleJob.getJobID(); duration = singleJob.getDuration();…. }
  • 41. Credits ▪ Vincent Kwong – Program Manager ▪ Anirudh Gupta & Crowe Bonnie – Meet up Organizers ▪ LinkedIn AV team, Communications & Security ▪ Data Science & Biz-Ops ▪ ETL & Platform Teams ▪ NOC, DS Operations & DBA
  • 42. Agenda • About LinkedIn • BI Challenges • Administration Hacks • Q&A