Zero-Copy Advanced Graphs: Fraud Detection in Snowflake
Read the Portuguese translation →
Author: Neo4j · Watch on YouTube
Video authored by the channel shown, not by IANIA; all rights belong to the creator. Transcript and summary generated automatically; the original-language content is preserved.
Original language: English
Original video: Zero-Copy Advanced Graphs: Fraud Detection in Snowflake · Channel: Neo4j · 25:06 · Watch on YouTube
Topics: AI agents, Cybersecurity and software security, Data, databases and embeddings, Privacy and data protection
Summary
Section titled “Summary”Neo4j presents Virtual Graph as a way to run graph queries over Snowflake data without moving it, preserving Snowflake’s governance and avoiding ETL. The webinar explains how Virtual Graph models warehouse tables as a graph and supports exploration with Neo4j tools, graph algorithms, Cypher queries, and natural-language questions through agents. In the demo, the presenter creates a graph model from Snowflake tables, investigates transaction patterns, and identifies circular transactions that may indicate fraud. The speakers also discuss combining Virtual Graph with Neo4j’s native graph database and graph algorithms, and share information about the product preview and next steps.
Key points
Section titled “Key points”- Virtual Graph lets users query data in Snowflake through a graph model without ingesting or moving the underlying data.
- Cypher queries are translated into SQL and executed in the Snowflake warehouse; only query results return to Neo4j tooling.
- A graph model can be created manually, generated from table schema, or proposed with AI and then adjusted.
- Neo4j tools such as Bloom and Browser support graph visualization, exploration, and querying.
- The demo uses betweenness centrality to highlight accounts that may act as intermediaries or transaction bottlenecks.
- Graph pattern matching can identify circular transactions that may conceal the source of funds.
- Natural-language questions can be routed through an MCP server and translated into Cypher, then SQL, for execution against Snowflake.
- Virtual Graph can complement Neo4j graph algorithms and native graphs, with composite queries spanning multiple data sources.
- The speakers describe use cases beyond financial fraud, including insurance, healthcare, life sciences, and telecommunications.
Chapters
Section titled “Chapters”| Start | Chapter | Summary |
|---|---|---|
| 00:03 | Introduction and the case for graph in Snowflake | The speakers introduce the webinar and explain how graph capabilities can help teams analyze Snowflake data while retaining its governance. |
| 03:17 | What Virtual Graph does | Virtual Graph enables graph-style queries over Snowflake data without ETL, using Neo4j tools and returning results for analysts and applications. |
| 05:21 | Use cases and graph capabilities | The speakers describe sensitive-data use cases and outline graph modeling, AI assistance, Cypher, natural-language queries, and graph algorithms. |
| 08:28 | Virtual Graph and graph algorithms | The webinar explains how Virtual Graph can visualize and explore algorithm results and compares its query role with Snowflake graph algorithm workloads. |
| 11:06 | Federating graphs and data sources | The speakers describe combining virtual and native graphs, and using composite queries to answer questions across Snowflake and other sources. |
| 13:11 | Demo: creating a graph from Snowflake tables | The demo shows connecting to Snowflake, generating a graph model, and exploring customer, account, and transaction relationships in Bloom. |
| 19:01 | Detecting suspicious transaction patterns | The presenter demonstrates betweenness centrality and graph queries that find circular transactions, then asks an agent to find such patterns in natural language. |
| 22:58 | Wrap-up and next steps | The speakers recap the demo, point viewers to documentation and preview information, and close the webinar. |
Quotes
Section titled “Quotes”There’s no ETL. There’s no need to ingest data into a Neo Forj native graph. — 03:47
your data can remain inside your snowflake data lake — 04:49
Data never left. The only thing that went down was SQL. — 18:26
a transaction goes to this account to that account to that account and then back to this original account — 20:04
Concepts and entities
Section titled “Concepts and entities”Virtual Graph, Neo4j, Snowflake, Cypher, Bloom, Neo4j Browser, Graph Data Science (GDS), Snowpark Container Services, MCP, Claude, Neo4j Aura, Graph Analytics for Snowflake
Full transcript (original language)
Section titled “Full transcript (original language)”00:03 [music] Hi uh welcome uh today’s webinar uh thanks for joining uh the zero copy advanced graphs how virtual graph accelerates fraud detection in snowflake uh I’m joined here today by Cardon Baylor he’s a senior product marketing manager at NEOJ and he’ll be doing uh today’s demo Colin, do you want to say a quick hi? >> Hi, I’m K Baylor. Like Stu said, I’m a
00:35 technical product marketer here and one of the products I like to advocate for is virtual graph. >> Thanks. And uh I’m Stu Moore, lead product manager for our data ecosystem and partner integrations. Um we’re a Snowflake partner. We have been for over 18 months, nearly two years now, I think. Um and uh we’re here today to talk about how we can uh do fraud investigation and uh troubleshooting with inside uh Snowflake.
01:09 Uh I am sure uh many of you uh who’ve spent any time with Snowflake will have seen this slide about how Snowflake positioned their AI data cloud and how they want to help bring AI uh to your data. What we’ll say today is how uh you can make uh your AI data cloud even smarter with uh graph capabilities uh and uh Cardon will be showing some of that later but whilst also maintaining the built-in governance uh that is
01:41 provided by the snowflake platform. So we’re here talking about virtual graph. So that would suggest that’s the answer to something. Uh what’s the question? Well, many of you may be asking, you know, how can I make my data AI teams use the expressive power of graph uh whilst maintaining that single unmoved source of truth of data uh within your snowflake infrastructure i.e. keep that governance. Um but for anyone who’s familiar with uh Neo forj
02:13 that very often involves uh building and using our native graph capability which requires ETL uh and many of those projects and other projects uh are often kind of blocked around data migration challenges whether you’re talking about security issues GDPR or other governance political barriers whether those are geopolitical barriers whether those political barriers within the organization. Um and then you know you ultimately get to a
02:45 scale problem. Uh some customers as you’ll see uh have you know many pabytes of data in Snowflake. Um whilst you might not need all of that for for graph um you know it’s quite typical as we’ll see across many organizations to have very very large uh terabyte data sources. Plus, you know, it’s quite common for pilots uh of any software to stall. Uh the faster you can get to prove value, the faster you can get to uh revealing
03:17 uh and solving uh problems, uh the more likely uh a project is to proceed. So, uh what is virtual graph? virtual graph uh provides a way for users to query uh your data with inside of Snowflake um using Cipher, our Gore uh compliant query language. So you get all the benefits of uh graph-like queries um
03:47 being able to push that down into uh your data within Snowflake. There’s no ETL. There’s no need to ingest data into a Neo Forj native graph. You get all the full Neo forj tooling. So that means you’re able to use bloom which is our uh business analyst or um uh tool um which can kind of visualize data uh our browser which provides kind of query capabilities more typically used for by
04:18 maybe a data scientist or um you know data engineer. Um but you know whereas once you used to have to know cipher you can now just type in a natural language question but the cipher gets translated into a SQL uh statement which is then executed down in your warehouse. So there’s no need to move any data. You get the graph like results back um into our tooling. Uh and it can be used by
04:49 our agents. Um so you know you can have agents being answer able to ask and answer questions uh through virtual graph. Um you can build applications um with our APIs and our drivers um which ultimately means your data can remain inside your snowflake data lake uh and there’s no ETL and you can get show value to the business within days if not even hours um uh instead of months.
05:21 And just to kind of give you a flavor of some of the the use cases which kind of expand beyond financial services. The demo that we’ll be seeing is obviously targeted at financial fraud. Um but um you know uh banks uh financial institutions have a very large number of customers and you know a magnet several mag orders of magnitude more transaction data um to to kind of sort through to find fraud rings uh you know um and
05:53 other types of fraud whether you’re looking at insurance fraud um across you know any type of industry from the motor industry uh to medical claim claim you’re talking about very sensitive information that is kind of hard to get buy in to take out of your your snowflake infrastructure. The same for patient journey. Um you know insurer and uh personal information medical records are highly sensitive. Um under strict uh uh regulatory
06:25 guidelines. um genomic uh knowledge graphs in the healthare health care and life sciences represents a huge amount of intellectual property and have you know um you know the businesses are are very strict on being able to take this data out of Snowflake and then you got kind of you know telecoms again you know huge numbers of uh data across you know their physical and virtual networks
06:56 So all of these kind of represent situations where you’ve got, you know, data sensitivity, data privacy, governance or very very large quantities of data that need to be analyzed. So if you want to be able to use graph to investigate these uh types of issue, um virtual graph is able to connect to your snowflake tables and schema. Um we can create a graph model. We have um AI assistance. So it can propose a
07:26 candidate graph for you. You can then adjust that uh adjust any modeling that you want to represent the graph and answer the questions that you would like to be able to uncover. Uh and then as I said, you’re either able to write cipher query if you know GQL cipher or type in a natural language question uh and have your answers come back. we’re able to run our graph algorithms uh often referred to as GDS, our graph data
07:57 science library, um over your data as well. So you benefit from you know page rank community detection multihop traversals quantified path patterns where you’re looking for a particular pattern within the data uh and then um ground uh the context of uh gener batch processing move data anywhere just
08:28 the uh graph results come back uh into our tooling to enable your analysts uh to answer and find the fraud. Uh you may have be aware of our uh graph algorithms for Snowflake. Uh this product is deployable from our Snowflake marketplace and um customers um today are benefiting from running graph algorithms directly inside of Snowpark
08:59 container services. So you might be asking well you know how does that fit into virtual graph? So um graph algorithms run over all the data. So they find and score like identify communities. They could um propose risk scores based on some model um and score your data. Um but um visualization and exploration tools are kind of limited to having to build uh your own uh UI using
09:29 our library. Um with virtual graph now you’re able to um create a virtual graph over the uh tables um with the results from these algorithms uh and then uh visualize them, explore them using Bloom and Browser, something that wasn’t previously possible. And more importantly, you’re able to run cipher over that graph uh and get all the rich pattern matching and um path traversal uh that we offer.
10:00 So these two products are complimentary and in fact virtual graph enables you to uncover deeper insights, build visualizations. Neither tool requires any data movement. you’re able to do everything with your data remaining in Snowflake and both are suited to large scale analytics. I would say perhaps one of the differences uh that um you should expect if you’re running the graph algorithms directly inside of Snowflake um those batch style
10:33 jobs could take tens of seconds uh potentially an hour. It depends on the the algorithm. For example, weekly connected component over a billion does take a billion nodes and three billion relationships can take about an hour. Um, but virtual graph uh it query capabilities are more likely your sec second to minute type latencies. Um for customers who may already have uh Neo forj’s uh native graph database be
11:06 it self-managed um or using Aura um you’re able to uh extend the value of that by creating virtual graphs uh and use the two products together um and you can then run queries across a single cipher query across your virtual graph and your native graph. So you might have different types of data um uh and need different kind of response times. So Neoj’s native uh storage format enables
11:38 us to have millisecond response times from from queries whereas virtual graph you might more expect to seconds to minutes. Um so uh composite uh is our way of allowing you to federate uh queries. So that means answer a question across uh a virtual graph that has data in snowflake a native graph. You in many organizations you may also have a data
12:08 and data brick. So you would be able to combine answers from all three uh uh sources uh and and yield um an answer from uh a combination of that all with a single cipher statement. We’ve uh provided a a short kind of enterprise uh architecture slide here. So you can see you’ve got your data domains of snowflake and data bricks. your knowledge domain which is like virtual graph which is able to answer
12:40 those questions from each of those data sources and then your kind of combined knowledge graph which uses composite to query any of one of those and then uh whether you’ve got analytical uh data scientists working in your machine learning domain or Janai you’ve got agents and so that’s kind of a a broad summary of kind the the architecture and how Neoj’s products all work together uh in a
13:11 complimentary fashion. Um we’re now going to hand over to Carden who’s going to take us through a demo of uh our virtual graph product uh and build a graph uh over snowflake tables. Over to you. >> Awesome. Thank you, Stu. Uh let me share my screen. Ste, let me know if you can see everything. >> Yeah, that’s uh that’s all good. Seeing
13:42 your transactions. >> Awesome. Okay, so like Sue was saying, uh, virtual graph lets you build knowledge graphs from your data warehouses without having to move your data. So these knowledge graphs can be used from things like more effectively fighting fraud, which is basically what we’re going to be covering today to grounding your LLM so that your LLMs answer prompts correctly the first time and lower overall token spend. So we’re going to start where most financial services are keeping their transactional. That’s in a place like
14:13 Snowflake or perhaps data bricks or bigquery. But today we’re going to be focusing on snowflake. So here in Snowflake we have a transactions table. We also have a couple other tables in here like account um customer tables different tables more information about the customers that sort of thing. So that leads to the question of you know what if we didn’t want to move our data out of Snowflake in order to ask graph questions of it. So that’s exactly where Neo4j virtual graph comes in. Uh I’m
14:47 going to take us over to Aura. And in order to create one, it’ll be pretty simple. You’re going to click virtual graph. Uh create virtual graph. Um add new data source. And then you can see the three options that we have here currently. Uh so snowflake being one of them. You just put snowflake. Then you’ll fill out uh this quick like form about um you know what you need uh to access. These are just your connection details. After you do that, you’ll be prompted
15:18 with um three different starting points for your model. So you can either define it completely manually. You can generate it from uh the schema that’s associated with your tables. So if you have things like foreign keys or primary keys in your tables, which you may not given that it’s uh snowflake, but uh you may have that regardless. But if you did and you clicked that, it would generate a model based on that. Uh we also have a generate with AI option. That’s why I usually suggest people start with um
15:49 it’ll create like a a very good graph model uh based off of you know metadata about your tables and again if you have the primary keys and for keys that will inform that as well. Um so for almost everybody I suggest start with genai uh and it’ll create like a a nice graph model for you. So um this is an example of a graph model that was created using Genai. So we have our customer here at the center. We have things associated with that customer like address, email,
16:20 phone, um you know their address, what jurisdiction is it in, that sort of thing. We also have alerts that could be associated with that customer. Of course we have customers all have accounts. Um and those accounts are performing transactions and those transactions can go back to benefit in. So importantly you’ll see here that we have the data source on the side. So each one of these uh you know accounts or customers those the the nodes here represent a table. Um
16:52 and we have these relationships that have information like how these tables connect to each other. So um in this case we have like you know a different table that showed how a customer relates to an account and you can see how the ids from the customer table uh to the account table those sorts of things how they map closely to each other and with that um this is obviously like I said creative geni but
17:23 you can go in you can change names you can re reverse the directions uh so this is just kind of like a a canvas for which uh you can work off. So what I think is great about um virtual graph is that once it’s created it plugs into our graph intelligence platform. So you get all the tooling with that. That means bloom graph analytics mc mcp server support and we’re going to start today in bloom. So we’re going to use that same visual pora
17:54 builder that you’re used to if you’ve used bloom before. I look for customers that um have account those accounts uh perform transactions and those transactions benefit accounts. We can do that and it will create like a nice little uh graph for us. So once again um while after we create that graph model which is virtual graph uh it’ll translate
18:26 cypher queries that we run against that graph model down into SQL and run on snowflake. So here we created a cipher query and then it’s pushed to the virtual graph then run down on snowflake in as SQL. So this graph that you see here is performed is created off of data that’s still in snowflake. Data never left. The only thing that went down was SQL. The only thing that came back up is the results uh which was then used to build this graph. Um like said we can uh
19:01 go over to the scene we can run graph algorithms against it. So in this case I ran um between the centrality. This is actually just the same graph but I pre-ran that one for us. I ran between the centrality which will show us um what uh you know accounts are acting as intermediaries or bottlenecks or unusually have a high unusual amount of transactions flowing through them within our graph. So these accounts may um you
19:33 know be used in some sort of fraudulent context and are probably worthy of a closer look uh in them. So moving on to running queries like we said you can also run graph queries directly against your snowflake data. So I’m going to do something I think is genuinely hard to do in SQL and that’s find a circular transaction. So, I’m going to run this. It’s going to look look for a three-legged uh circular
20:04 transaction which it finds. This is obviously a very common pattern and in a fraud context, you know, we have accounts or an account that is layering money around in a circle to conceal its source. So, a transaction goes to this account to that account to that account and then back to this original account hiding the original source of funds. Um what I also think is really great about virtual graph is how it hooks up uh to tools like claude. So um I think
20:36 it’s really important that virtual graph will become part of a knowledge layer on top of your uh warehouse. So instead of agents having to reason over like disconnected tables, they can now start to reason over the entity relationships and paths um using cipher. So here I can ask a natural language question like using I’m going to specify the MCP server I wanted to use uh given that I have a bunch of them up. Um and ask that same question I just ran a cipher query for. So using uh this MCP
21:08 server can you find a circular transaction? So um what it’s going to do is it’s going to take this natural language question. is going to translate it into cipher and then it’s going to translate that ciph that cipher will uh run against virtual graph. Virtual graph will translate that into SQL and then uh SQL will be run down on snowflake and it’ll go all the way back up to and land here in cloud. So we’re going to give it second or two to run and we’ll we’ll see
21:38 what it comes back with. So it found a couple ones right here. Found two uh two hop ones. Let’s see if it finds anything else. Um, see, are there any three? Give it one more shot to find like a three hop one like we had found earlier.
22:26 You click this, you can see um the different queries are running. So here it’s running more complex cipher query. Uh it’s getting results back. Yes, it finds um six to sync three hop uh circular chains. So you can then um raise those issues or investigate further either in claw or bring them over to um some sort of uh you know account team to figure out exactly what’s going on. So with that I will stop sharing my screen and I’ll hand it
22:58 back over to Stu to to wrap it up. Stu, I think you’re on mute. Um, thanks Cardon. Great demo. Uh, as a really good see graph in action and how easy it was to uh create the graph, see AI propose a candidate graph. You can be tune it to uh individual needs uh then
23:31 use our our tools like Bloom and Browser to query that graph. and the fact that you can so easily hook up uh to something like Claude and ask those questions and have agents and MTP servers all kind of provide those answers um in near real time is uh is fantastic. So uh we provided uh a short set of uh next steps. So there’s links to our documentation. There was the blog announcing virtual graph uh which uh we
24:04 had the preview start uh the public preview started back in uh mid to late July. Um and we’re preparing for general availability in Nora which will be coming soon. Um so there’s still time to try the preview today. Um, the NEOJ graph analytics is also available via the Snowflake marketplace and you can read more about our partnership with Snowflake um and send questions to our ecosystem team at NeoJ if you’re
24:35 watching this recording back live. We’ll be taking um some questions as well uh throughout uh this session uh and we can follow up with any unanswered ones as well. Um we’ve got many other uh ecosystem events happening in our partner ecosystem. They’re all coming up soon. Um so please just register. You’ll get notified. Um and uh all that remains for me uh once again is to thank you for your time and attendance and the the
25:06 great questions and uh we’ll see you again soon. Thank you. >> Thank you guys. >> [music]