SlideShare a Scribd company logo
1 of 19
Project	
  "Babelfish"	
  
A	
  data	
  warehouse	
  to	
  a5ack	
  
complexity	
  
Prof.	
  Dr.	
  Christoph	
  Denzler	
  &	
  Daniel	
  Kröni	
  
{christoph.denzler,	
  daniel.kroeni}@Inw.ch	
  
StarKng	
  PosiKon	
  
•  Finnova	
  is	
  a	
  soOware	
  house	
  developing	
  a	
  
bankware	
  soluKon	
  for	
  universal	
  banks.	
  
•  About	
  300	
  employees,	
  200	
  of	
  them	
  in	
  
development,	
  engineering,	
  applicaKon	
  
management	
  and	
  customer	
  care	
  
•  Banking	
  System	
  
– more	
  than	
  7	
  million	
  lines	
  of	
  code	
  
– controlled	
  by	
  15'000	
  parameters	
  
– around	
  2000	
  UI	
  screens	
  
IncepKon	
  
•  SoOware	
  grew	
  over	
  
past	
  15	
  years	
  
–  approx.	
  13	
  person	
  years	
  
of	
  development	
  per	
  
month	
  
•  Architectural	
  challenges	
  
–  new	
  business	
  models	
  
–  new	
  regulaKons	
  
–  internaKonal	
  customers	
  
–  bigger	
  customers	
  
–  new	
  technologies	
  
→ How	
  to	
  keep	
  track	
  of	
  
–  architecture	
  
–  code	
  
–  tests	
  
–  customers	
  
parametrizaKon	
  
–  bug	
  reports	
  
–  change	
  requests	
  
–  developers	
  output	
  
?	
  
Product	
  
Concrete	
  Problems	
  
•  The	
  business	
  logic	
  is	
  changed.	
  In	
  which	
  GUIs	
  will	
  this	
  be	
  
visible?	
  
•  A	
  customer	
  reports	
  a	
  bug	
  on	
  screen	
  XY.	
  Which	
  parts	
  of	
  
the	
  code	
  do	
  handle	
  this	
  screen	
  and	
  its	
  data?	
  Which	
  
developer	
  is	
  resoponsible	
  for	
  this	
  code?	
  
•  Does	
  a	
  new	
  funcKon	
  break	
  architectural	
  guidelines?	
  
E.g.	
  does	
  it	
  introduce	
  dependency	
  loops?	
  
•  Which	
  modules	
  of	
  the	
  soOware	
  do	
  not	
  have	
  to	
  be	
  
taken	
  offline	
  during	
  a	
  system	
  upgrade?	
  
•  which	
  tests	
  need	
  to	
  be	
  rerun	
  aOer	
  a	
  change	
  in	
  code?	
  
ExpectaKons	
  
•  Improve	
  quality	
  of	
  bankware	
  soluKon	
  by	
  
– earlier	
  detecKon	
  of	
  architecture	
  violaKons	
  
•  Improve	
  issue	
  handling	
  
– faster	
  locality	
  determinaKon	
  of	
  bugs	
  
•  Improve	
  tesKng	
  by	
  
– tesKng	
  only	
  what	
  has	
  changed	
  
•  Improve	
  stability	
  by	
  
– reliable	
  dependency	
  informaKon	
  during	
  
deployment	
  and	
  producKon	
  
System	
  Overview	
  
Import"
WebAPI"
Core

System"
Core	
  System	
  
Versioning"
Schema"
DSL"
Core	
  System	
  
•  Neo4j	
  Graph	
  Database	
  
•  Model:	
  Directed	
  Property	
  Graph	
  
•  Nodes	
  
•  Typed	
  Edges	
  
•  ProperKes	
  
	
  
•  QuanKKes	
  	
  
	
  #Nodes	
  ~	
  6'300'000	
  
	
  #Edges	
  >	
  15'000'000	
  
Versioning"
Schema"
DSL"
name:	
  "Credit"	
   name:	
  "Log"	
  
calls	
  	
  
Core	
  System	
  
•  Version	
  aware	
  API	
  
•  access	
  graph	
  as	
  of	
  a	
  specific	
  version	
  
•  Allows	
  to	
  query	
  what	
  changed	
  	
  
•  when,	
  most	
  oOen,	
  together,	
  ...	
  
•  Mapping	
  of	
  versioned	
  nodes	
  to	
  DB	
  nodes	
  
Versioning"
Schema"
DSL"
name:	
  "Credit"	
  
LOC:	
  832	
  	
  
name:	
  "Credit"	
  
LOC:	
  832	
  
from:	
  13	
  
to:	
  _	
  
LOC:	
  750	
  
from:	
  1	
  
to:	
  12	
  
	
  
	
  Logical	
  QuanKKes	
  
#Nodes	
  2'046'128	
  
#Edges	
  4'292'867	
  
	
  
	
  
Storage	
  QuanKKes	
  	
  
	
  #Nodes	
  ~	
  6'300'000	
  
	
  #Edges	
  >	
  15'000'000	
  
Core	
  System	
  
•  Domain	
  model	
  
•  Common	
  vocabulary	
  with	
  the	
  partner	
  
•  Index	
  
•  Query	
  language	
  
Versioning"
Schema"
DSL"
Package	
  
name:	
  String	
  
LOC:	
  Long	
  
Release	
  
id:	
  Long	
  
name:	
  String	
  
Calls	
  
Contains	
  
Core	
  System	
  
•  Custom	
  Query	
  Language	
  
•  Schema	
  aware	
  
•  Version	
  aware	
  
•  Fast	
  graph	
  traversal	
  
•  Describing	
  the	
  structure	
  of	
  paths	
  as	
  
with	
  a	
  formal	
  grammar	
  
•  CollecKng	
  properKes	
  on	
  the	
  way	
  
•  SQL	
  postprocessing	
  
•  Implemented	
  as	
  an	
  internal	
  Scala	
  DSL	
  
•  Easy	
  to	
  extend	
  
Versioning"
Schema"
DSL"
Query	
  Language:	
  Basics	
  
•  Schema	
  aware	
  
–  Refer	
  to	
  nodes	
  /	
  edges	
  /	
  properKes	
  
•  Graph	
  navigaKon	
  primiKves	
  
–  V,	
  E,	
  inE,	
  outV,	
  outE,	
  inV	
  
•  Grammar	
  style	
  combinators	
  
–  ~,	
  |,	
  ?,	
  *,	
  +	
  
outE	
   inV	
  
inE	
  outV	
  
out	
  
in	
  
V(Package)	
  ~	
  where(Package.Name)("Log")	
  ~	
  in(_Calls_).+	
  
Query	
  Language:	
  Basics	
  
Log	
  
Credit	
  
ZV	
  
Customer	
  
FX	
   Poryolio	
  
V(Package)	
  ~	
  where(Package.Name)("Log")	
  ~	
  in(_Calls_).+	
  
Query	
  Language:	
  Basics	
  
Log	
  
Credit	
  
ZV	
  
Customer	
  
FX	
   Poryolio	
  
V(Package)	
  ~	
  where(Package.Name)("Log")	
  ~	
  in(_Calls_).+	
  
Query	
  Language:	
  Basics	
  
Log	
  
Credit	
  
ZV	
  
Customer	
  
FX	
   Poryolio	
  
V(Package)	
  ~	
  where(Package.Name)("Log")	
  ~	
  in(_Calls_).+	
  
Query	
  Language:	
  Basics	
  
Log	
  
Credit	
  
ZV	
  
Customer	
  
FX	
   Poryolio	
  
V(Package)	
  ~	
  where(Package.Name)("Log")	
  ~	
  in(_Calls_).+	
  
Query	
  Language:	
  Extensions	
  
	
  
	
  
	
  
•  Labeling	
  
–  Name	
  values	
  for	
  later	
  processing	
  
•  ExtracKon	
  
–  Select	
  what	
  you	
  want	
  in	
  your	
  table	
  
•  SQL	
  Postprocessing	
  
–  SQL	
  is	
  nice	
  for	
  aggregaKon	
  
from	
  {	
  
	
  	
  V(Package)	
  ~	
  in(_Calls_).+	
  ~	
  get(Package.Name).as("n")	
  
}	
  extract	
  {	
  "n"	
  }	
  sql	
  {	
  
	
  	
  "SELECT	
  n	
  FROM	
  t1	
  ORDER	
  BY	
  n	
  DESC"	
  
}	
  
QuesKons	
  /	
  Remarks	
  
?/!	
  

More Related Content

Viewers also liked

Apache Flink - Overview and Use cases of a Distributed Dataflow System (at pr...
Apache Flink - Overview and Use cases of a Distributed Dataflow System (at pr...Apache Flink - Overview and Use cases of a Distributed Dataflow System (at pr...
Apache Flink - Overview and Use cases of a Distributed Dataflow System (at pr...Stephan Ewen
 
Strata EU 2014: Spark Streaming Case Studies
Strata EU 2014: Spark Streaming Case StudiesStrata EU 2014: Spark Streaming Case Studies
Strata EU 2014: Spark Streaming Case StudiesPaco Nathan
 
Apache Flink: Real-World Use Cases for Streaming Analytics
Apache Flink: Real-World Use Cases for Streaming AnalyticsApache Flink: Real-World Use Cases for Streaming Analytics
Apache Flink: Real-World Use Cases for Streaming AnalyticsSlim Baltagi
 
Developing Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaDeveloping Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaJoe Stein
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache KafkaJeff Holoman
 
Real time Analytics with Apache Kafka and Apache Spark
Real time Analytics with Apache Kafka and Apache SparkReal time Analytics with Apache Kafka and Apache Spark
Real time Analytics with Apache Kafka and Apache SparkRahul Jain
 

Viewers also liked (7)

Apache Flink - Overview and Use cases of a Distributed Dataflow System (at pr...
Apache Flink - Overview and Use cases of a Distributed Dataflow System (at pr...Apache Flink - Overview and Use cases of a Distributed Dataflow System (at pr...
Apache Flink - Overview and Use cases of a Distributed Dataflow System (at pr...
 
Strata EU 2014: Spark Streaming Case Studies
Strata EU 2014: Spark Streaming Case StudiesStrata EU 2014: Spark Streaming Case Studies
Strata EU 2014: Spark Streaming Case Studies
 
Apache Flink: Real-World Use Cases for Streaming Analytics
Apache Flink: Real-World Use Cases for Streaming AnalyticsApache Flink: Real-World Use Cases for Streaming Analytics
Apache Flink: Real-World Use Cases for Streaming Analytics
 
7 Predictive Analytics, Spark , Streaming use cases
7 Predictive Analytics, Spark , Streaming use cases7 Predictive Analytics, Spark , Streaming use cases
7 Predictive Analytics, Spark , Streaming use cases
 
Developing Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaDeveloping Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache Kafka
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Real time Analytics with Apache Kafka and Apache Spark
Real time Analytics with Apache Kafka and Apache SparkReal time Analytics with Apache Kafka and Apache Spark
Real time Analytics with Apache Kafka and Apache Spark
 

Similar to Project "Babelfish" - A data warehouse to attack complexity

Embracing Database Diversity with Kafka and Debezium
Embracing Database Diversity with Kafka and DebeziumEmbracing Database Diversity with Kafka and Debezium
Embracing Database Diversity with Kafka and DebeziumFrank Lyaruu
 
Migrating Speedment to Java 9
Migrating Speedment to Java 9Migrating Speedment to Java 9
Migrating Speedment to Java 9C4Media
 
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...Measure and Increase Developer Productivity with Help of Serverless at JCON 2...
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...Vadym Kazulkin
 
Web Development using Ruby on Rails
Web Development using Ruby on RailsWeb Development using Ruby on Rails
Web Development using Ruby on RailsAvi Kedar
 
Cincom Smalltalk News
Cincom Smalltalk NewsCincom Smalltalk News
Cincom Smalltalk NewsESUG
 
Ren cao kafka connect
Ren cao   kafka connectRen cao   kafka connect
Ren cao kafka connectNitin Kumar
 
Technical Debt - SOTR14 - Clarkie
Technical Debt -  SOTR14 - ClarkieTechnical Debt -  SOTR14 - Clarkie
Technical Debt - SOTR14 - ClarkieAndrew Clarke
 
Wireless Developing Wireless Monitoring and Control devices
Wireless Developing Wireless Monitoring and Control devicesWireless Developing Wireless Monitoring and Control devices
Wireless Developing Wireless Monitoring and Control devicesAidan Venn MSc
 
Learn from HomeAway Hadoop Development and Operations Best Practices
Learn from HomeAway Hadoop Development and Operations Best PracticesLearn from HomeAway Hadoop Development and Operations Best Practices
Learn from HomeAway Hadoop Development and Operations Best PracticesDriven Inc.
 
WebLogic Event Server - Alexandre Alves, BEA
WebLogic Event Server - Alexandre Alves, BEAWebLogic Event Server - Alexandre Alves, BEA
WebLogic Event Server - Alexandre Alves, BEAmfrancis
 
Access Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsAccess Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsTeamstudio
 
Shane_O'Neill_CV_slim
Shane_O'Neill_CV_slimShane_O'Neill_CV_slim
Shane_O'Neill_CV_slimShane O'Neill
 
Gs08 modernize your data platform with sql technologies wash dc
Gs08 modernize your data platform with sql technologies   wash dcGs08 modernize your data platform with sql technologies   wash dc
Gs08 modernize your data platform with sql technologies wash dcBob Ward
 
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at DatabricksLessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at DatabricksDatabricks
 
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...HostedbyConfluent
 

Similar to Project "Babelfish" - A data warehouse to attack complexity (20)

CQRS and Event Sourcing
CQRS and Event SourcingCQRS and Event Sourcing
CQRS and Event Sourcing
 
Embracing Database Diversity with Kafka and Debezium
Embracing Database Diversity with Kafka and DebeziumEmbracing Database Diversity with Kafka and Debezium
Embracing Database Diversity with Kafka and Debezium
 
Migrating Speedment to Java 9
Migrating Speedment to Java 9Migrating Speedment to Java 9
Migrating Speedment to Java 9
 
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...Measure and Increase Developer Productivity with Help of Serverless at JCON 2...
Measure and Increase Developer Productivity with Help of Serverless at JCON 2...
 
Web Development using Ruby on Rails
Web Development using Ruby on RailsWeb Development using Ruby on Rails
Web Development using Ruby on Rails
 
Cincom Smalltalk News
Cincom Smalltalk NewsCincom Smalltalk News
Cincom Smalltalk News
 
Ren cao kafka connect
Ren cao   kafka connectRen cao   kafka connect
Ren cao kafka connect
 
Technical Debt - SOTR14 - Clarkie
Technical Debt -  SOTR14 - ClarkieTechnical Debt -  SOTR14 - Clarkie
Technical Debt - SOTR14 - Clarkie
 
Versioning for Developers
Versioning for DevelopersVersioning for Developers
Versioning for Developers
 
Wireless Developing Wireless Monitoring and Control devices
Wireless Developing Wireless Monitoring and Control devicesWireless Developing Wireless Monitoring and Control devices
Wireless Developing Wireless Monitoring and Control devices
 
Learn from HomeAway Hadoop Development and Operations Best Practices
Learn from HomeAway Hadoop Development and Operations Best PracticesLearn from HomeAway Hadoop Development and Operations Best Practices
Learn from HomeAway Hadoop Development and Operations Best Practices
 
WebLogic Event Server - Alexandre Alves, BEA
WebLogic Event Server - Alexandre Alves, BEAWebLogic Event Server - Alexandre Alves, BEA
WebLogic Event Server - Alexandre Alves, BEA
 
Access Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsAccess Data from XPages with the Relational Controls
Access Data from XPages with the Relational Controls
 
Shane_O'Neill_CV_slim
Shane_O'Neill_CV_slimShane_O'Neill_CV_slim
Shane_O'Neill_CV_slim
 
Gs08 modernize your data platform with sql technologies wash dc
Gs08 modernize your data platform with sql technologies   wash dcGs08 modernize your data platform with sql technologies   wash dc
Gs08 modernize your data platform with sql technologies wash dc
 
CV
CVCV
CV
 
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at DatabricksLessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
 
Ipc mysql php
Ipc mysql php Ipc mysql php
Ipc mysql php
 
ResumeDilipKumarPanchali (1)
ResumeDilipKumarPanchali (1)ResumeDilipKumarPanchali (1)
ResumeDilipKumarPanchali (1)
 
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
 

More from Swiss Big Data User Group

Making Hadoop based analytics simple for everyone to use
Making Hadoop based analytics simple for everyone to useMaking Hadoop based analytics simple for everyone to use
Making Hadoop based analytics simple for everyone to useSwiss Big Data User Group
 
A real life project using Cassandra at a large Swiss Telco operator
A real life project using Cassandra at a large Swiss Telco operatorA real life project using Cassandra at a large Swiss Telco operator
A real life project using Cassandra at a large Swiss Telco operatorSwiss Big Data User Group
 
Building a Hadoop Data Warehouse with Impala
Building a Hadoop Data Warehouse with ImpalaBuilding a Hadoop Data Warehouse with Impala
Building a Hadoop Data Warehouse with ImpalaSwiss Big Data User Group
 
Closing The Loop for Evaluating Big Data Analysis
Closing The Loop for Evaluating Big Data AnalysisClosing The Loop for Evaluating Big Data Analysis
Closing The Loop for Evaluating Big Data AnalysisSwiss Big Data User Group
 
Big Data and Data Science for traditional Swiss companies
Big Data and Data Science for traditional Swiss companiesBig Data and Data Science for traditional Swiss companies
Big Data and Data Science for traditional Swiss companiesSwiss Big Data User Group
 
Design Patterns for Large-Scale Real-Time Learning
Design Patterns for Large-Scale Real-Time LearningDesign Patterns for Large-Scale Real-Time Learning
Design Patterns for Large-Scale Real-Time LearningSwiss Big Data User Group
 
Unleash the power of Big Data in your existing Data Warehouse
Unleash the power of Big Data in your existing Data WarehouseUnleash the power of Big Data in your existing Data Warehouse
Unleash the power of Big Data in your existing Data WarehouseSwiss Big Data User Group
 
Brainserve Datacenter: the High-Density Choice
Brainserve Datacenter: the High-Density ChoiceBrainserve Datacenter: the High-Density Choice
Brainserve Datacenter: the High-Density ChoiceSwiss Big Data User Group
 
Urturn on AWS: scaling infra, cost and time to maket
Urturn on AWS: scaling infra, cost and time to maketUrturn on AWS: scaling infra, cost and time to maket
Urturn on AWS: scaling infra, cost and time to maketSwiss Big Data User Group
 
The World Wide Distributed Computing Architecture of the LHC Datagrid
The World Wide Distributed Computing Architecture of the LHC DatagridThe World Wide Distributed Computing Architecture of the LHC Datagrid
The World Wide Distributed Computing Architecture of the LHC DatagridSwiss Big Data User Group
 
New opportunities for connected data : Neo4j the graph database
New opportunities for connected data : Neo4j the graph databaseNew opportunities for connected data : Neo4j the graph database
New opportunities for connected data : Neo4j the graph databaseSwiss Big Data User Group
 
Technology Outlook - The new Era of computing
Technology Outlook - The new Era of computingTechnology Outlook - The new Era of computing
Technology Outlook - The new Era of computingSwiss Big Data User Group
 

More from Swiss Big Data User Group (20)

Making Hadoop based analytics simple for everyone to use
Making Hadoop based analytics simple for everyone to useMaking Hadoop based analytics simple for everyone to use
Making Hadoop based analytics simple for everyone to use
 
A real life project using Cassandra at a large Swiss Telco operator
A real life project using Cassandra at a large Swiss Telco operatorA real life project using Cassandra at a large Swiss Telco operator
A real life project using Cassandra at a large Swiss Telco operator
 
Data Analytics – B2B vs. B2C
Data Analytics – B2B vs. B2CData Analytics – B2B vs. B2C
Data Analytics – B2B vs. B2C
 
SQL on Hadoop
SQL on HadoopSQL on Hadoop
SQL on Hadoop
 
Building a Hadoop Data Warehouse with Impala
Building a Hadoop Data Warehouse with ImpalaBuilding a Hadoop Data Warehouse with Impala
Building a Hadoop Data Warehouse with Impala
 
Closing The Loop for Evaluating Big Data Analysis
Closing The Loop for Evaluating Big Data AnalysisClosing The Loop for Evaluating Big Data Analysis
Closing The Loop for Evaluating Big Data Analysis
 
Big Data and Data Science for traditional Swiss companies
Big Data and Data Science for traditional Swiss companiesBig Data and Data Science for traditional Swiss companies
Big Data and Data Science for traditional Swiss companies
 
Design Patterns for Large-Scale Real-Time Learning
Design Patterns for Large-Scale Real-Time LearningDesign Patterns for Large-Scale Real-Time Learning
Design Patterns for Large-Scale Real-Time Learning
 
Educating Data Scientists of the Future
Educating Data Scientists of the FutureEducating Data Scientists of the Future
Educating Data Scientists of the Future
 
Unleash the power of Big Data in your existing Data Warehouse
Unleash the power of Big Data in your existing Data WarehouseUnleash the power of Big Data in your existing Data Warehouse
Unleash the power of Big Data in your existing Data Warehouse
 
Big data for Telco: opportunity or threat?
Big data for Telco: opportunity or threat?Big data for Telco: opportunity or threat?
Big data for Telco: opportunity or threat?
 
Brainserve Datacenter: the High-Density Choice
Brainserve Datacenter: the High-Density ChoiceBrainserve Datacenter: the High-Density Choice
Brainserve Datacenter: the High-Density Choice
 
Urturn on AWS: scaling infra, cost and time to maket
Urturn on AWS: scaling infra, cost and time to maketUrturn on AWS: scaling infra, cost and time to maket
Urturn on AWS: scaling infra, cost and time to maket
 
The World Wide Distributed Computing Architecture of the LHC Datagrid
The World Wide Distributed Computing Architecture of the LHC DatagridThe World Wide Distributed Computing Architecture of the LHC Datagrid
The World Wide Distributed Computing Architecture of the LHC Datagrid
 
New opportunities for connected data : Neo4j the graph database
New opportunities for connected data : Neo4j the graph databaseNew opportunities for connected data : Neo4j the graph database
New opportunities for connected data : Neo4j the graph database
 
Technology Outlook - The new Era of computing
Technology Outlook - The new Era of computingTechnology Outlook - The new Era of computing
Technology Outlook - The new Era of computing
 
In-Store Analysis with Hadoop
In-Store Analysis with HadoopIn-Store Analysis with Hadoop
In-Store Analysis with Hadoop
 
Big Data Visualization With ParaView
Big Data Visualization With ParaViewBig Data Visualization With ParaView
Big Data Visualization With ParaView
 
Introduction to Apache Drill
Introduction to Apache DrillIntroduction to Apache Drill
Introduction to Apache Drill
 
Oracle's BigData solutions
Oracle's BigData solutionsOracle's BigData solutions
Oracle's BigData solutions
 

Recently uploaded

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 

Recently uploaded (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

Project "Babelfish" - A data warehouse to attack complexity

  • 1. Project  "Babelfish"   A  data  warehouse  to  a5ack   complexity   Prof.  Dr.  Christoph  Denzler  &  Daniel  Kröni   {christoph.denzler,  daniel.kroeni}@Inw.ch  
  • 2. StarKng  PosiKon   •  Finnova  is  a  soOware  house  developing  a   bankware  soluKon  for  universal  banks.   •  About  300  employees,  200  of  them  in   development,  engineering,  applicaKon   management  and  customer  care   •  Banking  System   – more  than  7  million  lines  of  code   – controlled  by  15'000  parameters   – around  2000  UI  screens  
  • 3. IncepKon   •  SoOware  grew  over   past  15  years   –  approx.  13  person  years   of  development  per   month   •  Architectural  challenges   –  new  business  models   –  new  regulaKons   –  internaKonal  customers   –  bigger  customers   –  new  technologies   → How  to  keep  track  of   –  architecture   –  code   –  tests   –  customers   parametrizaKon   –  bug  reports   –  change  requests   –  developers  output   ?  
  • 5. Concrete  Problems   •  The  business  logic  is  changed.  In  which  GUIs  will  this  be   visible?   •  A  customer  reports  a  bug  on  screen  XY.  Which  parts  of   the  code  do  handle  this  screen  and  its  data?  Which   developer  is  resoponsible  for  this  code?   •  Does  a  new  funcKon  break  architectural  guidelines?   E.g.  does  it  introduce  dependency  loops?   •  Which  modules  of  the  soOware  do  not  have  to  be   taken  offline  during  a  system  upgrade?   •  which  tests  need  to  be  rerun  aOer  a  change  in  code?  
  • 6. ExpectaKons   •  Improve  quality  of  bankware  soluKon  by   – earlier  detecKon  of  architecture  violaKons   •  Improve  issue  handling   – faster  locality  determinaKon  of  bugs   •  Improve  tesKng  by   – tesKng  only  what  has  changed   •  Improve  stability  by   – reliable  dependency  informaKon  during   deployment  and  producKon  
  • 9. Core  System   •  Neo4j  Graph  Database   •  Model:  Directed  Property  Graph   •  Nodes   •  Typed  Edges   •  ProperKes     •  QuanKKes      #Nodes  ~  6'300'000    #Edges  >  15'000'000   Versioning" Schema" DSL" name:  "Credit"   name:  "Log"   calls    
  • 10. Core  System   •  Version  aware  API   •  access  graph  as  of  a  specific  version   •  Allows  to  query  what  changed     •  when,  most  oOen,  together,  ...   •  Mapping  of  versioned  nodes  to  DB  nodes   Versioning" Schema" DSL" name:  "Credit"   LOC:  832     name:  "Credit"   LOC:  832   from:  13   to:  _   LOC:  750   from:  1   to:  12      Logical  QuanKKes   #Nodes  2'046'128   #Edges  4'292'867       Storage  QuanKKes      #Nodes  ~  6'300'000    #Edges  >  15'000'000  
  • 11. Core  System   •  Domain  model   •  Common  vocabulary  with  the  partner   •  Index   •  Query  language   Versioning" Schema" DSL" Package   name:  String   LOC:  Long   Release   id:  Long   name:  String   Calls   Contains  
  • 12. Core  System   •  Custom  Query  Language   •  Schema  aware   •  Version  aware   •  Fast  graph  traversal   •  Describing  the  structure  of  paths  as   with  a  formal  grammar   •  CollecKng  properKes  on  the  way   •  SQL  postprocessing   •  Implemented  as  an  internal  Scala  DSL   •  Easy  to  extend   Versioning" Schema" DSL"
  • 13. Query  Language:  Basics   •  Schema  aware   –  Refer  to  nodes  /  edges  /  properKes   •  Graph  navigaKon  primiKves   –  V,  E,  inE,  outV,  outE,  inV   •  Grammar  style  combinators   –  ~,  |,  ?,  *,  +   outE   inV   inE  outV   out   in   V(Package)  ~  where(Package.Name)("Log")  ~  in(_Calls_).+  
  • 14. Query  Language:  Basics   Log   Credit   ZV   Customer   FX   Poryolio   V(Package)  ~  where(Package.Name)("Log")  ~  in(_Calls_).+  
  • 15. Query  Language:  Basics   Log   Credit   ZV   Customer   FX   Poryolio   V(Package)  ~  where(Package.Name)("Log")  ~  in(_Calls_).+  
  • 16. Query  Language:  Basics   Log   Credit   ZV   Customer   FX   Poryolio   V(Package)  ~  where(Package.Name)("Log")  ~  in(_Calls_).+  
  • 17. Query  Language:  Basics   Log   Credit   ZV   Customer   FX   Poryolio   V(Package)  ~  where(Package.Name)("Log")  ~  in(_Calls_).+  
  • 18. Query  Language:  Extensions         •  Labeling   –  Name  values  for  later  processing   •  ExtracKon   –  Select  what  you  want  in  your  table   •  SQL  Postprocessing   –  SQL  is  nice  for  aggregaKon   from  {      V(Package)  ~  in(_Calls_).+  ~  get(Package.Name).as("n")   }  extract  {  "n"  }  sql  {      "SELECT  n  FROM  t1  ORDER  BY  n  DESC"   }