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

Finding the Right Tool for the Job: Elastic at ...

Avatar for Elastic Co Elastic Co
December 03, 2015

Finding the Right Tool for the Job: Elastic at The Home Depot

The Home Depot has moved to Elastic solutions for product search, event logging/visualization, percolation for discounting rules management, etc. Elasticsearch has become the most trusted tool in our arsenal.

Joe Davis and Adron Hall | Elastic{ON} Tour Seattle | December 3, 2015

Avatar for Elastic Co

Elastic Co

December 03, 2015
Tweet

More Decks by Elastic Co

Other Decks in Technology

Transcript

  1. Finding the Right Tool For the Job: Elastic @ Home

    Depot Joe Davis, Senior IT Architect/Manager | Home Depot Adron Hall | Home Depot 1
  2. Talk  Overview • Who  we  are/What  we  do   •

    How  we  use  Elastic  tools   • Business  Scenario:  Supplier  promotions  —  How  we  used  Elastic  to  solve  a   major  pain  point  for  our  users  and  stakeholders   • Hacking  business  strategy  with  Elastic   • Questions?? 3
  3. Who  we  are/What  we  do:  The  Home  Depot  Quote  Center

    • 80+  associates  working  out  of  Vancouver,  WA   • Facilitate  special  order  quoting/sales  to  “PRO”  customers   • Phone  support/sales   • Special  order  merchandising/product  data  management   • Product  development  (Web-­‐based  solutions  for  vendors  and  associates)   • Annually  $Billions  quoted,  ~$1/2  Billion  sold   5
  4. How  we  use  Elastic  tools • Product  search   •

    Associate  workflows   • Vendor  workflows   • Customer  Lookup   • Messaging  analytics  —  Logstash/Kibana  (In  development)   • Promotional  rules  engine!?!?     • Query  and  Document  examples   The  possibilities  are  limited  only  by  your  imagination!   8
  5. …more  importantly,  WHY  do  we  use  Elastic? 9 • It

     just  works   • Configuration  is  a  breeze   • It  is  crazy  flexible   • It  scales  so  easily   • It  handles  server  loss  so  gracefully   • It’s  like  adding  a  10x  programmer  to  your  staff   • It’s  our  Swiss  Army  knife
  6. Business  Scenario:  ProDirect  supplier  promotions • Supplier-­‐based  promotions   •

    “PRO”-­‐only  customer  base   • The  program  was  languishing   • Binders  of  promotions…   • Complex  rulesets   • How  do  we  turn  average,  high-­‐turnover  associates  into  experts:   • Automating  the  insanity  with  the  help  of  Percolator   • Our  PRO  marketing/merchandising  teams  are  now  our  biggest  fans 11
  7. How  does  a  promotional  rules  engine  like  this  work? 14

    • Establish  input  context   • More  information  means  more  choices  in…   • Decide  which  rules  apply  to  the  given  context   • Retrieve  messages,  adjustments,  etc.  that  apply  to  these  rules   • Client  displays  adjustments  and  translates  messages
  8. How  Percolate  works  -­‐  index  of  queries PUT  /my-­‐index/.percolator/123  

    {          query:{                  bool:{                          must:[  {                                  terms:  {                                          productId:[                                                  427092,427093                                          ]  }                                    }                    }]   }}} 15
  9. How  Percolate  works  -­‐  Documents  in  place  of  queries GET

     /my-­‐index/my-­‐type/_percolate   {          “doc”:  {                  “storeId”:3406,                  “productId”:427093,                  "name":"Universal  Security  Instruments  Smoke  Alarm  w/  Batteries”,                  "additionalDescription":"1-­‐UL  Listed  USI-­‐1227L”,                  "unit":"EA",                  “count":5          }   } 16
  10. How  Percolate  works  -­‐  results {        

     "took"  :  3,          "_shards"  :  {  …  },          "total"  :  1,          "matches"  :  [                    {                      "_index"  :  "my-­‐index",                      "_id"  :  "123"                  }          ]   } 17
  11. It’s  a  little  more  complicated  in  practice,  but  you  get

     the  message… {"storeId":3406,"domains":[{"domain":79,"name":"Smoke  &  CO  Alarms","jobsiteDeliveryEnabled":true,"count":null}],"categories":{"categoryId":0,"name":"All  Departments","parentId":0,"children":[{"categoryId":322,"name":"D27  -­‐  Electrical","parentId":0,"children":[{"categoryId":368,"name":"Safety  and   Security","parentId":0,"children":[{"categoryId":373,"name":"Smoke   and   Fire","parentId":0,"children":[],"domainId":null,"productCount":5}],"domainId":null,"productCount":5}],"domainId":null,"productCount":5}],"domainId":null,"productCount":5},"branches":[{"branchId":7813,"branchName":"Owings   Mills,   MD","vendorId":1491,"vendorName":"USI   Electric","brandName":"USI   Electric","branchPhone":"4103632218","branchPhoneExt":"6218","branchFax":null,"latitude":39.4395949,"longitude":-­‐76.7747897,"jobsiteDeliverySettings":{"deliveryRanges":[{"fee":0.0000,"maxMiles": 10000,"freeThreshold":null,"leadTime":5}],"deliveryAreaExclusions":[],"services":[],"jobsiteDistance":null,"customLeadTime":null,"customFee":null,"deliveryAreaExcluded":false},"storeDeliverySettings":{"minimumChargeThreshold":null,"minimumCharge":null,"standardLeadTime":3,"cadenceLeadTime": 3,"deliveryScheduleType":"Standard","cadenceWeek":[]}},{"branchId":-­‐1,"branchName":"The   Home   Depot   -­‐   Store   3406","vendorId":-­‐1,"vendorName":"The   Home   Depot","brandName":"The   Home   Depot","branchPhone":null,"branchPhoneExt":null,"branchFax":null,"latitude":0.0,"longitude": 0.0,"jobsiteDeliverySettings":null,"storeDeliverySettings":{"minimumChargeThreshold":0.0,"minimumCharge":0.0,"standardLeadTime":0,"cadenceLeadTime":null,"deliveryScheduleType":"Standard","cadenceWeek":null}}],"results":[{"type":"Group","id":68488,"productId":393012,"productGroupId": 68488,"domain":79,"skuId":1001547444,"superskuId":null,"mvendorNumber":null,"name":"Universal  Security  Instruments  Battery  Operated  Ionization  Flame,  Smoke  Alarm  w/  Batteries","additionalDescription":"1-­‐UL  Listed  USI-­‐1227L","completeName":"Universal  Security  Instruments  Battery  Operated   Ionization   Flame,   Smoke   Alarm   w/   Batteries","shortName":null,"baseQuantity":1.0,"packageTypeId":null,"unit":"EA","branchProducts":[{"branchId":7813,"pricingTierId":1,"deliverToOptions":["Store","Jobsite"],"deliverTo":"Store","unitPrice":6.58,"cost":3.95,"baseUnitPrice":6.58,"unit":"EA","unitsOf": 24.0,"leadTimeAdder":0,"onHandQuantity":null,"onOrderQuantity":null,"asOfDateTime":"2015-­‐12-­‐02T00:00:00Z","productId":393012,"priceDescription":null,"modelNumber":"USI-­‐1227L","stockProductId":null,"skuId":1001547444,"mvendorNumber": 60085502,"uomIncrementUnit":null,"uomValueIncrement":0.0,"uomMaxValue":0.0,"uomMinValue":0.0,"uomValue":0.0,"hasPalletFee":false,"minOrderQuantity":0,"selected":false,"stale":true,"ivpList":{"ivpValues":null},"proDirectList":null,"xData":"<Data><CostBehaviorType>1</ CostBehaviorType><DisplayBehaviorType>4</DisplayBehaviorType><UoMIncrementUnit   /><UoMValueIncrement>0.0000</UoMValueIncrement><UoMMaxValue>0.0000</UoMMaxValue><UoMMinValue>0.0000</UoMMinValue><IVPList   /></Data>"}],"images":[{"primaryPath":"// content.hdquotecenter.com/cdn/public/ergon/141/861/71/528/JA3FDAMNJ3W4UJKTRIVBQOIU3D.jpg","thumbnailPath":"//content.hdquotecenter.com/cdn/public/ergon/141/861/71/528/JA3FDAMNJ3W4UJKTRIVBQOIU3D.jpg"}],"productIds":[]},{"type":"Group","id":68498,"productId": 393014,"productGroupId":68498,"domain":79,"skuId":1001547444,"superskuId":null,"mvendorNumber":null,"name":"Universal  Security  Instruments  Hardwired  Dual-­‐Sensor  Smoke  Alarm  w/  Strobe  Light","additionalDescription":"1-­‐UL  Listed,  ADA  Compliant  USI-­‐2413","completeName":"Universal  Security   Instruments   Hardwired   Dual-­‐Sensor   Smoke   Alarm   w/   Strobe   Light","shortName":null,"baseQuantity":1.0,"packageTypeId":null,"unit":"EA","branchProducts":[{"branchId":7813,"pricingTierId":1,"deliverToOptions":["Store","Jobsite"],"deliverTo":"Store","unitPrice":86.47,"cost":51.88,"baseUnitPrice": 86.47,"unit":"EA","unitsOf":1.0,"leadTimeAdder":0,"onHandQuantity":null,"onOrderQuantity":null,"asOfDateTime":"2015-­‐12-­‐02T00:00:00Z","productId":393014,"priceDescription":null,"modelNumber":"USI-­‐2413","stockProductId":null,"skuId":1001547444,"mvendorNumber": 60085502,"uomIncrementUnit":null,"uomValueIncrement":0.0,"uomMaxValue":0.0,"uomMinValue":0.0,"uomValue":0.0,"hasPalletFee":false,"minOrderQuantity":0,"selected":false,"stale":true,"ivpList":{"ivpValues":null},"proDirectList":null,"xData":"<Data><CostBehaviorType>1</ CostBehaviorType><DisplayBehaviorType>4</DisplayBehaviorType><UoMIncrementUnit   /><UoMValueIncrement>0.0000</UoMValueIncrement><UoMMaxValue>0.0000</UoMMaxValue><UoMMinValue>0.0000</UoMMinValue><IVPList   /></Data>"}],"images":[{"primaryPath":"// content.hdquotecenter.com/cdn/public/ergon/878/316/269/456/YW3MJMGRQ210EG4GMHNTNAJDOB.jpg","thumbnailPath":"//content.hdquotecenter.com/cdn/public/ergon/878/316/269/456/YW3MJMGRQ210EG4GMHNTNAJDOB.jpg"}],"productIds":[]},{"type":"Group","id":68497,"productId": 393015,"productGroupId":68497,"domain":79,"skuId":1001547444,"superskuId":null,"mvendorNumber":null,"name":"Universal   Security   Instruments   Hardwired   Dual-­‐Sensor   Heat   Alarm","additionalDescription":"Interconnected   1-­‐UL   Listed   USI-­‐2430","completeName":"Universal   Security   Instruments   Hardwired   Dual-­‐Sensor   Heat   Alarm","shortName":null,"baseQuantity":1.0,"packageTypeId":null,"unit":"EA","branchProducts":[{"branchId":7813,"pricingTierId":1,"deliverToOptions":["Store","Jobsite"],"deliverTo":"Store","unitPrice":20.83,"cost":12.50,"baseUnitPrice":20.83,"unit":"EA","unitsOf": 1.0,"leadTimeAdder":0,"onHandQuantity":null,"onOrderQuantity":null,"asOfDateTime":"2015-­‐12-­‐02T00:00:00Z","productId":393015,"priceDescription":null,"modelNumber":"USI-­‐2430","stockProductId":null,"skuId":1001547444,"mvendorNumber": 60085502,"uomIncrementUnit":null,"uomValueIncrement":0.0,"uomMaxValue":0.0,"uomMinValue":0.0,"uomValue":0.0,"hasPalletFee":false,"minOrderQuantity":0,"selected":false,"stale":true,"ivpList":{"ivpValues":null},"proDirectList":null,"xData":"<Data><CostBehaviorType>1</ CostBehaviorType><DisplayBehaviorType>4</DisplayBehaviorType><UoMIncrementUnit   /><UoMValueIncrement>0.0000</UoMValueIncrement><UoMMaxValue>0.0000</UoMMaxValue><UoMMinValue>0.0000</UoMMinValue><IVPList   /></Data>"}],"images":[{"primaryPath":"// content.hdquotecenter.com/cdn/public/ergon/935/560/561/796/5WOMJGG3HT2TEAOTWBCAKAHCPD.jpg","thumbnailPath":"//content.hdquotecenter.com/cdn/public/ergon/935/560/561/796/5WOMJGG3HT2TEAOTWBCAKAHCPD.jpg"}],"productIds":[]},{"type":"Group","id":68496,"productId": 393013,"productGroupId":68496,"domain":79,"skuId":1001547444,"superskuId":null,"mvendorNumber":null,"name":"Universal  Security  Instruments  Hardwired  Dual-­‐Sensor  Flame,  Smoke  Alarm","additionalDescription":"1-­‐UL  Listed  USI-­‐960","completeName":"Universal  Security  Instruments  Hardwired   Dual-­‐Sensor   Flame,   Smoke   Alarm","shortName":null,"baseQuantity":1.0,"packageTypeId":null,"unit":"EA","branchProducts":[{"branchId":7813,"pricingTierId":1,"deliverToOptions":["Store","Jobsite"],"deliverTo":"Store","unitPrice":18.00,"cost":10.80,"baseUnitPrice":18.00,"unit":"EA","unitsOf": 1.0,"leadTimeAdder":0,"onHandQuantity":null,"onOrderQuantity":null,"asOfDateTime":"2015-­‐12-­‐02T00:00:00Z","productId":393013,"priceDescription":null,"modelNumber":"USI-­‐960","stockProductId":null,"skuId":1001547444,"mvendorNumber": 60085502,"uomIncrementUnit":null,"uomValueIncrement":0.0,"uomMaxValue":0.0,"uomMinValue":0.0,"uomValue":0.0,"hasPalletFee":false,"minOrderQuantity":0,"selected":false,"stale":true,"ivpList":{"ivpValues":null},"proDirectList":null,"xData":"<Data><CostBehaviorType>1</ CostBehaviorType><DisplayBehaviorType>4</DisplayBehaviorType><UoMIncrementUnit   /><UoMValueIncrement>0.0000</UoMValueIncrement><UoMMaxValue>0.0000</UoMMaxValue><UoMMinValue>0.0000</UoMMinValue><IVPList   /></Data>"}],"images":[{"primaryPath":"// content.hdquotecenter.com/cdn/public/ergon/434/661/440/722/BTJVMJFGA21BE3WDJLP0IWT2SD.jpg","thumbnailPath":"//content.hdquotecenter.com/cdn/public/ergon/434/661/440/722/BTJVMJFGA21BE3WDJLP0IWT2SD.jpg"}],"productIds":[]},{"type":"Group","id":76158,"productId": 427091,"productGroupId":76158,"domain":79,"skuId":1001547444,"superskuId":null,"mvendorNumber":null,"name":"Universal  Security  Instruments  120-­‐Volt  Hardwired  Photoelectric  Smoke  Alarm","additionalDescription":"Interconnected  1-­‐UL  Listed  2-­‐pack  USI-­‐3204-­‐2P-­‐3CC","completeName":"Universal   Security   Instruments   120-­‐Volt   Hardwired   Photoelectric   Smoke   Alarm","shortName":null,"baseQuantity":1.0,"packageTypeId":null,"unit":"EA","branchProducts":[{"branchId":7813,"pricingTierId":1,"deliverToOptions":["Store","Jobsite"],"deliverTo":"Store","unitPrice":31.98,"cost":19.19,"baseUnitPrice": 31.98,"unit":"EA","unitsOf":3.0,"leadTimeAdder":0,"onHandQuantity":null,"onOrderQuantity":null,"asOfDateTime":"2015-­‐12-­‐02T00:00:00Z","productId":427091,"priceDescription":null,"modelNumber":"USI-­‐3204-­‐2P-­‐3CC","stockProductId":null,"skuId":1001547444,"mvendorNumber": 60085502,"uomIncrementUnit":null,"uomValueIncrement":0.0,"uomMaxValue":0.0,"uomMinValue":0.0,"uomValue":0.0,"hasPalletFee":false,"minOrderQuantity":0,"selected":false,"stale":true,"ivpList":{"ivpValues":null},"proDirectList":null,"xData":"<Data><CostBehaviorType>1</ CostBehaviorType><DisplayBehaviorType>4</DisplayBehaviorType><UoMIncrementUnit   /><UoMValueIncrement>0.0000</UoMValueIncrement><UoMMaxValue>0.0000</UoMMaxValue><UoMMinValue>0.0000</UoMMinValue><IVPList   /></Data>"}],"images":[{"primaryPath":"// content.hdquotecenter.com/cdn/public/ergon/587/53/219/252/2AAKH4TBL1SWULSQCOFUYUNM1E.jpg","thumbnailPath":"//content.hdquotecenter.com/cdn/public/ergon/587/53/219/252/2AAKH4TBL1SWULSQCOFUYUNM1E.jpg"}],"productIds":[]}],"alternateSearches":[],"searchQuery":"USI   Alarm","filters":[{"title":"Source","filters":[{"attributeValueId":1491,"attributeId":-­‐1,"value":"USI   Electric","rank":99,"name":"USI   Electric","filterType":"Source","selected":false,"count":0}],"rankCount":0,"count":0},{"title":"Discounts   &   Promotions","filters":[{"attributeValueId":86947,"attributeId": 270,"value":"Bulk   Pricing","rank":99,"name":"Bulk   Pricing","filterType":"Discounts   &   Promotions","selected":false,"count":5}],"rankCount":0,"count":5},{"title":"Brand","filters":[{"attributeValueId":75537,"attributeId":6,"value":"Universal   Security   Instruments","rank":99,"name":"Universal   Security   Instruments","filterType":"Brand","selected":false,"count":5}],"rankCount":0,"count":5},{"title":"PowerSource","filters":[{"attributeValueId":85915,"attributeId":244,"value":"120-­‐Volt   Hardwired","rank":99,"name":"120-­‐Volt   Hardwired","filterType":"PowerSource","selected":false,"count":1}, {"attributeValueId":75642,"attributeId":244,"value":"Battery   Operated","rank":99,"name":"Battery   Operated","filterType":"PowerSource","selected":false,"count":1},{"attributeValueId":75644,"attributeId":244,"value":"Hardwired","rank": 99,"name":"Hardwired","filterType":"PowerSource","selected":false,"count":3}],"rankCount":0,"count":5},{"title":"Item  Type","filters":[{"attributeValueId":75556,"attributeId":152,"value":"Smoke  and  Fire  Alarms","rank":99,"name":"Smoke  and  Fire  Alarms","filterType":"Item  Type","selected":false,"count": 5}],"rankCount":0,"count":5},{"title":"Alarm   Type","filters":[{"attributeValueId":75625,"attributeId":240,"value":"Flame,   Smoke","rank":99,"name":"Flame,   Smoke","filterType":"Alarm   Type","selected":false,"count":2},{"attributeValueId":75626,"attributeId":240,"value":"Heat","rank": 99,"name":"Heat","filterType":"Alarm   Type","selected":false,"count":1},{"attributeValueId":75627,"attributeId":240,"value":"Smoke","rank":99,"name":"Smoke","filterType":"Alarm   Type","selected":false,"count":2}],"rankCount":0,"count":5},{"title":"Alarm   Sensor   Type","filters":[{"attributeValueId": 75628,"attributeId":241,"value":"Dual-­‐Sensor","rank":99,"name":"Dual-­‐Sensor","filterType":"Alarm   Sensor   Type","selected":false,"count":3},{"attributeValueId":75629,"attributeId":241,"value":"Ionization","rank":99,"name":"Ionization","filterType":"Alarm   Sensor   Type","selected":false,"count":1}, {"attributeValueId":75630,"attributeId":241,"value":"Photoelectric","rank":99,"name":"Photoelectric","filterType":"Alarm  Sensor  Type","selected":false,"count":1}],"rankCount":0,"count":5}],"count":5} 18
  12. Hacking  business  strategy • Our  business  partners  LOVE  us  because

     we  deliver  “the  impossible”   • Don’t  go  build  a  promotional  discounting  rules  engine—but,  you  CAN   • Compelling  open-­‐ended  architecture  of  Elastic—the  Swiss  Army  knife  of  data   • Solve  complex  problems  quickly   • Prepare  for  scale   • Elastic  enables   • Rapid  NoSQL  prototyping  with  minimal  configuration   • Easy  and  massive  scale   • “But,  it  was  only  supposed  to  be  a  prototype.” 20
  13. What  will  we  do  next  with  Elastic? • Shallow  graph

     lookup?   • Product  relationships  (cross-­‐sell/up-­‐sell)   • Compatibles  and  alternatives   • If  I  want  a  specific  vinyl  fencing  panel,  that  automatically  decides  which   connector  types  I  need  and  limits  my  choice  of  posts!  Too  many  returns!!   • Just  in  time  messaging   • Warning!!  If  you  buy  different  brands  of  roofing  shingles  and  felt  rolls,  you   may  void  the  30-­‐year  warranty!!   • Kappa  speed  layer?   • CQRS  read-­‐only  channel? 21