Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Managing Big Data Challenges with Couchbase

Managing Big Data Challenges with Couchbase

A look at how Nielsen uses Couchbase to deal with large volumes of complex data.

Darrell Pratt

June 03, 2014
Tweet

More Decks by Darrell Pratt

Other Decks in Technology

Transcript

  1. tar y. NIELSEN  ANSWERS  ON  DEMAND   7 Flexibility  

    • On-­‐Demand,  ad-­‐hoc   processing   • Custom  data  definiUons Speed  to  Insights   • Expedited  reporUng   • Roadmaps  and  guided   analysis Integra5on   • Internal  and  external  data   sources   • Channel  Consistency
  2. tar y. 9 OUR  CLIENTS • Manufacturers  -­‐  Kra=,  Procter

     &  Gamble,  Hershey’s,  Red  Bull     • Measure  Product  Success   • Understand  Consumer  Behavior   • Target  new  product  opportuniUes   • Product  Pricing   • Retailers  -­‐  Safeway,  Tesco,  Walmart   • Understand  consumer  buying  behavior   • Store  performance   • Comparison  to  compeUtors   • Product  pricing
  3. tar y. 12 POINT  OF  SALE,  PANEL  AND  LOYALTY •

    Point  of  Sale   • Weekly  data  daily   • Disaggregated,  anonymous   • TB/week   • Billions  of  records   • Panel   • Data  from  more  than  250K  households  across  25  countries   • Trip  and  Demographic  data   • Similar  to  Nielsen  families  from  TV   • Loyalty   • Basket  level  loyalty  card  data  from  retailers   • Daily  data  from  thousands  of  stores
  4. XML  and  SQL  are  the  way   of  the  future.

      -­‐  Said  no  one  ever
  5. tar y. 18 FEATURES • One  applicaUon  to  interface  n

     warehouses     • Advanced  Business  Intelligence   • Infinite  user  capabiliUes   • Reports  render  in  less  than  2  minutes       • ApplicaUon  load  Umes  under  3  seconds
  6. tar y. HIGH  LEVEL  VIEW 28 Web$Front$End Portal Repor1ng Por3olio

    Admin Java$Middle$Tier Spring$IOC$+$Custom Couchbase$Cluster Elas1cSearch Oracle$RAC Netezza Tibco$ESB XDCR
  7. tar y. DATA  SIZE 29 • 5  large  buckets,  10s

     of  smaller  (might  change  this)   • 4  -­‐  5  TB  of  data  across  both  Couchbase  and  Elas5c  per  datacenter   • 100s  of  thousands  of  user  data  records     • Favorites,  saved  selec5ons,  report  specifica5ons   • Millions  of  dimensional  metadata  items
  8. tar y. HARDWARE 30 • Couchbase  Cluster   • 8x

     Dell  R815,  132  GB  RAM,  1.2TB  PCIe  SSD,  16  CPUs  in  2  data  centers   • Web  Cluster   • 8x  VMWare  VM,  48  GB  RAM,  4  Cores  in  2  data  centers   • Tibco   • 4x  Dell  R815,  132  GB  RAM,  NAS  Storage,  16  CPUs  in  2  data  centers   • Oracle  RAC   • 2  *  2  data  centers   • Composite  Data  Federa5on   • 8x  VMWare  VM,  48  GB  RAM,  4  cores  in  2  data  centers   • IBM  Pure  Data  (a.k.a.  Netezza  Twin  Fins)   • Many  in  2  data  centers
  9. tar y. TECHNOLOGY  STACK 31 • UI  Built  on  Sencha

     ExtJS   • Single  page  applicaUon   • MVC  framework   • Middle  Tier  built  on  Spring  MVC  and  Spring  IOC   • JSON  REST  endpoints  through  configuraUon   • XML  to  JSON  conversion  with  GSON  where  needed   • Legacy  SOA  Tier  in  Tibco  AMX  3.2   • Couchbase  2.5  -­‐  Storage,  Caching,  and  View  based  search  (upgrading  with  our  Summer   release)   • Elas5cSearch  -­‐  0.9x  for  full  text  search     • Hudson,  Ar5factory,  Gradle,  Jasmine,  JS  Duck,  Apache  Sonar
  10. tar y. 61 {          "locale":  "en_US",

             "requestInstance":  {                  "categoryId":  "NACNLSPI",                  "clientId":  "9997",                  "coreData":  {                          "friendlyUrl":  "https://answers.nielsen.com/portal/site/answers/menuitem.b96e53097992bc115aac7970f75072a0/",                          "guid":  "FFFB2C9F220141DD972F63C755197A42",                          "internalTitle":  "QF01",                          "nativeName":  "QF01",                          "runType":  "HIDDEN",                          "title":  "Nielsen  Quick  Facts"                  },                  "dataSet":  [                          {                                  "basePromptId":  "Fact_QF",                                  "hiddenPrompt":  false,                                  "logicalDimId":  "FCT",                                  "logicalId":  "FCT",                                  "maxSelections":  0,                                  "minSelections":  1,                                  "originalPromptId":  "Fact_QF",                                  "promptId":  "Fact_QF",                                  "promptLabel":  "Facts",                                  "promptName":  "Facts",                                  "selections":  [                                          {                                                  "active":  true,                                                  "id":  "0",                                                  "items":  [                                                          {                                                                  "addTotal":  false,                                                                  "appDesc":  "Groups  (Folders)",                                                                  "baseUuid":  "GRP|VIEW|Fact_QF|0",                                                                  "children":  [                                                                          {                                                                                  "addTotal":  false,                                                                                  "appDesc":  "Fact  Groups",                                                                                  "baseUuid":  "Groups|GROUP|Fact_QF|0",                                                                                  "children":  [                                                                                          {                                                                                                  "addTotal":  false,                                                                                                  "appDesc":  "Sales  Volume",                                                                                                  "baseUuid":  "7836|GROUP_LEVEL|Fact_QF|0",                                                                                                  "children":  [                                                                                                          {                                                                                                                  "addTotal":  false,                                                                                                                  "appDesc":  "Dollars",                                                                                                                  "baseUuid":  "7848|GROUP_LEVEL|Fact_QF|0",                                                                                                                  "children":  [                                                                                                                          {                                                                                                                                  "addTotal":  false,                                                                                                                                  "appDesc":  "$",                                                                                                                                  "baseUuid":  "7848|GROUP_LEVEL|Fact_QF|0|DOL",