ATM Fraud Detection with Oracle Property Graphs

ATM Fraud Detection with Oracle Property Graphs

With a stream of ATM transactions in Apache Kafka, how to detect if a card has been cloned? Turn the stream into a property graph and use PGQL to detect possible frauds. Two challenges in one talk: streams to property graphs and fraud detection. Proving the power and flexibility of graph databases, the mandatory product in your Analytics toolbox!

Bf71450537acca19e045ae6f7febdf9a?s=128

Gianni Ceresa

October 08, 2019
Tweet

Transcript

  1. None
  2. None
  3. Copyright © 2017, Oracle and/or its affiliates. All rights reserved.

    | bit.ly/OracleACEProgram 450+ Technical Experts Helping Peers Globally Nominate yourself or someone you know: acenomination.oracle.com
  4. Vertex edge A Property Graph (also called node)

  5. edge edge label edge properties edge ID directed edge vertex

    (node) vertex properties vertex ID a vertex can have a label
  6. None
  7. Every row of a table has a fixed, identical structure

    Connections at a table level (not row) Nodes and edges can have any number of properties Connections at a node level (can be seen as row level)
  8. Spain Italy John Doe Company A Company B Company C

    Company D Located in Located in Located in Located in Buys from Buys from Buys from Buys from Money laundering and VAT frauds Owns
  9. Good guy Bad guy Card cloned while using an ATM

    Somewhere else
  10. bank customer account account customer ATM account CC transfer money

    to owns owns owns get money from
  11. • • • • • • The presentation was a

    live demo, screenshots aren’t as explicit as seeing it…
  12. None
  13. None
  14. { "account_id": "a839", "timestamp": "2019-03-10 13:49:32 +0000", "atm": "24/7", "amount":

    20, "location": { "lat": "53.7835061", "lon": "-1.3794149" }, "transaction_id": "555aa4f6-433b-11e9-b9b9-0242ac140005" } Location of the ATM
  15. Kafka stream Property Graph

  16. Kafka stream Property Graph A Java app consume the Kafka

    stream and update the graph with the new messages received.
  17. None
  18. None
  19. None
  20. The number of edges increase over time, it’s the Kafka

    messages being loaded in the graph
  21. PGQL query, looks like SQL but has the extra GRAPH

    syntax
  22. PGQL query, looks like SQL but has the extra GRAPH

    syntax
  23. None
  24. None
  25. None
  26. None
  27. None
  28. The UK set of ATMs used is a bit too

    sparse over a big area. Too many of the randomly generated transactions seem to be fraud.
  29. The UK set of ATMs used is a bit too

    sparse over a big area. Too many of the randomly generated transactions seem to be fraud.
  30. None
  31. None
  32. None
  33. None
  34. None
  35. • • • • • • • more about graphs:

    Data Lineage Made Easy with Graph Database 14:50-15:20 | Sentosa 1 (the other room) UKOUG Techfest 2019, Dec 2019 in Brighton