1
00:00:00,000 --> 00:00:02,621
Your business users want answers from data.

2
00:00:02,741 --> 00:00:07,903
Your data engineers are busy and your dashboards only cover the questions you thought of
last quarter.

3
00:00:07,943 --> 00:00:12,805
That means every decision you want becomes either a ticket or a gut call.

4
00:00:13,305 --> 00:00:16,526
Snowflake Intelligence is Snowflake's answer to that.

5
00:00:16,526 --> 00:00:22,329
A chat interface sitting on governed enterprise data that turns plain English into SQL.

6
00:00:22,329 --> 00:00:27,150
It runs it, it gives you the data, a chart, and then a decision.

7
00:00:27,170 --> 00:00:29,041
No analysts involved.

8
00:00:29,492 --> 00:00:32,435
In this episode, Jelle is going to show us how that works.

9
00:00:32,435 --> 00:00:37,279
He builds a live demo, a technical setup, a semantic view, and an agent.

10
00:00:37,400 --> 00:00:42,385
We also discuss what is still hard, governance, quality, and access control.

11
00:00:42,706 --> 00:00:47,510
My name is Jonny, knowledge lead here at Dataminded, and welcome to Technology
Explorations.

12
00:00:56,191 --> 00:00:59,336
Hi everyone, welcome to technology explorations and data minded.

13
00:00:59,336 --> 00:01:03,262
In this series, we give you an initial look into new or interesting technologies.

14
00:01:03,262 --> 00:01:06,066
And this week's topic is Snowflake Intelligence.

15
00:01:06,066 --> 00:01:08,089
And for this, I have invited Jelle.

16
00:01:08,089 --> 00:01:09,243
Welcome Jelle.

17
00:01:09,243 --> 00:01:11,239
Hello, good afternoon, Jonny

18
00:01:11,805 --> 00:01:13,709
Jelle, could you briefly introduce yourself?

19
00:01:13,709 --> 00:01:15,112
What is your role at Dataminded?

20
00:01:15,112 --> 00:01:16,614
What do you do day to day?

21
00:01:17,388 --> 00:01:25,893
Yeah, so I'm a partner at Dataminded and I'm mainly leading clients building enterprise
data platforms.

22
00:01:25,893 --> 00:01:29,491
What I tend to do is focus mostly on like the human part.

23
00:01:29,491 --> 00:01:35,108
So of course I like building, I'm an engineer, but in the end things only bring value when
they're being adopted.

24
00:01:35,108 --> 00:01:37,341
So I try to talk to...

25
00:01:37,341 --> 00:01:48,468
to engineers, to scientists, and to get the technical features adopted, but increasingly
also more and more to like business users to get them to use data more and also work more

26
00:01:48,468 --> 00:01:56,233
on those business features, like giving them Excel access or like what we're going to look
at today, which is talking to your data.

27
00:01:56,234 --> 00:02:02,896
Yeah, Talking to your data, that's something that is quite hot today, I would say, with
all the agentic and AI movements.

28
00:02:02,896 --> 00:02:04,979
And today we're going to focus on Snowflake.

29
00:02:04,979 --> 00:02:09,766
Could you tell us a bit more or maybe show us immediately what is Snowflake Intelligence?

30
00:02:10,171 --> 00:02:14,663
Yeah, so Snowflake Intelligence is a quite recent feature they've built.

31
00:02:14,663 --> 00:02:19,725
It came out or it became GA, General Available, in November 2025.

32
00:02:19,725 --> 00:02:34,081
And the idea is to give your business users a way to uh interact with data without having
to write SQL and without needing to have a dependency on your data engineers.

33
00:02:34,081 --> 00:02:39,615
So they can ask ad hoc questions themselves, get answers, get visualizations.

34
00:02:39,615 --> 00:02:45,984
even share chats directly with colleagues or saving artifacts like a graph to share it.

35
00:02:45,984 --> 00:02:53,756
So the idea is to make them more independent from the data engineers and that they can do
more than what they can do today.

36
00:02:54,357 --> 00:02:59,625
Okay, I would say before we dive into the details, let's have a first look on what this
tool can do.

37
00:02:59,954 --> 00:03:05,782
Yes, so the demo I've prepared today is the data environment of a coffee shop.

38
00:03:06,208 --> 00:03:10,630
So there's about 10 stores located in Belgium.

39
00:03:10,630 --> 00:03:13,352
And of course they sell coffees day to day.

40
00:03:13,352 --> 00:03:15,694
They also sell chocolates and cookies.

41
00:03:15,694 --> 00:03:18,295
So that's all captured in line items.

42
00:03:18,295 --> 00:03:20,536
So the data model is quite simple.

43
00:03:20,536 --> 00:03:21,393
It looks like this.

44
00:03:21,393 --> 00:03:26,599
So you have stores where you save the store name, city, region, when it was opened.

45
00:03:26,659 --> 00:03:35,223
It has orders, like what was the payment method, the total amount, the type of customers,
and then like the order uh item, which is

46
00:03:35,223 --> 00:03:37,644
each item belonging to that order.

47
00:03:37,845 --> 00:03:45,883
So if we can go to Snowflake Intelligence, what you see is immediately like a familiar
interface like ChatGPT or Cloud.

48
00:03:45,883 --> 00:03:47,411
It's a chat interface.

49
00:03:47,411 --> 00:03:50,409
And what you can see is that we have our bean and brew.

50
00:03:50,409 --> 00:03:53,520
uh assistant here, which is our agent we have available.

51
00:03:53,520 --> 00:03:57,271
If you have multiple agents, you would see multiple of those here.

52
00:03:57,271 --> 00:03:59,222
And then you can just simply ask questions.

53
00:03:59,222 --> 00:04:05,815
For example, you can ask which product category sells the most or show me the revenue by
region over time.

54
00:04:05,815 --> 00:04:07,215
So we can do that.

55
00:04:07,635 --> 00:04:15,277
And then Snowflake will start thinking, interpret that natural language question and turn
that into a SQL statement.

56
00:04:15,277 --> 00:04:18,025
So it will turn text into uh SQL.

57
00:04:18,025 --> 00:04:28,048
and it will get that query result uh back and then it will also answer in natural language
and it will even create a visualization on the fly if

58
00:04:28,048 --> 00:04:30,859
that is applicable uh to the question.

59
00:04:30,859 --> 00:04:34,681
So here you see that we asked the monthly revenue by region.

60
00:04:34,681 --> 00:04:38,704
It recognized, hey, this is a nice question to have a visualization on.

61
00:04:38,704 --> 00:04:39,685
And there you see it.

62
00:04:39,685 --> 00:04:45,183
So it shows me for Brussels, Flanders, and Wallonia what the monthly revenue is.

63
00:04:45,183 --> 00:04:51,479
we apparently we have data from July 2024 up until March 2026.

64
00:04:51,610 --> 00:04:57,094
And then of course, it also gives you the textual conclusion of

65
00:04:57,094 --> 00:04:58,133
question.

66
00:04:58,215 --> 00:05:04,102
So that's what Snowflake Intelligence allows you to do, ad hoc questions on the data you
have available.

67
00:05:04,158 --> 00:05:13,549
Yeah, so this seems to replace both the analytical part where you need to explore your
data, a bit deeper into that, write SQL statements, but also the dashboarding part to

68
00:05:13,549 --> 00:05:15,060
visualize things.

69
00:05:15,743 --> 00:05:25,683
Yes, if you don't have a dashboard available or it's really an ad-hoc question where there
isn't something built yet, then this is a very nice way to do that.

70
00:05:25,683 --> 00:05:37,323
But I can imagine that if you are asking that question every day again, or this is
something you want to look at every day at 9 a.m., then you still have that dashboard

71
00:05:37,323 --> 00:05:41,823
pre-setup available every day like you do today.

72
00:05:41,896 --> 00:05:42,637
Yeah.

73
00:05:42,637 --> 00:05:45,088
And could you then also ask follow up questions here already?

74
00:05:45,088 --> 00:05:50,867
Like if you want to drill down on some things, for example, you have here data on
Flanders, Wallonia and Brussels.

75
00:05:50,867 --> 00:05:52,208
Could you then ask a follow up?

76
00:05:52,208 --> 00:05:56,391
Like, could you segment the Flanders data even more or could you aggregate it by a week?

77
00:05:56,391 --> 00:05:58,982
And does it remember the history then?

78
00:05:59,186 --> 00:05:59,866
Yeah, you can.

79
00:05:59,866 --> 00:06:07,441
So could you segment the Flunders data even more to get an overview or store, for example?

80
00:06:08,662 --> 00:06:15,448
And if you do that, it will take the previous context into account and it will break it
down again.

81
00:06:15,448 --> 00:06:19,370
So again, you see that the SQL query is being generated.

82
00:06:19,621 --> 00:06:21,085
It also fully

83
00:06:21,085 --> 00:06:22,965
captures like the traces.

84
00:06:22,965 --> 00:06:27,957
So you can always go back in case you would get the wrong answer and someone needs to
debug that.

85
00:06:27,957 --> 00:06:31,018
You can see the thought process that happened there.

86
00:06:31,018 --> 00:06:32,138
And here you see it.

87
00:06:32,138 --> 00:06:37,620
So now you see we have Mechelen, Antwerp, Bruges, Gent and Leuven.

88
00:06:37,620 --> 00:06:46,062
And now you see the breakdown for those stores or locations individually, which pops
one-on-one with a store in our case.

89
00:06:46,622 --> 00:06:49,643
And here you see some key observations like

90
00:06:49,681 --> 00:06:50,893
average monthly revenue.

91
00:06:50,893 --> 00:06:58,502
So we didn't even ask for that, but he said, look, these are some things we notice in the
data.

92
00:06:58,935 --> 00:07:05,986
So it already gives you some thinking points or some maybe outliers that it indicates in
resulting data set.

93
00:07:06,237 --> 00:07:10,462
And I also saw on the graph part, there were some options on those graphs.

94
00:07:10,462 --> 00:07:13,200
Are they interactive or can you share them easily?

95
00:07:13,888 --> 00:07:20,328
Yes, so what you can do is you can download the raw data behind it.

96
00:07:20,328 --> 00:07:23,088
So there is this download as a CSV button.

97
00:07:23,088 --> 00:07:29,368
Also, when you want to import it into Excel, you can also download the chart as an image.

98
00:07:29,788 --> 00:07:34,868
But Snowflake recently also added a preview feature called Artifact.

99
00:07:34,868 --> 00:07:39,538
So what I can do is I can save it, meaning I think this is valuable.

100
00:07:39,538 --> 00:07:43,110
and my colleagues, my other business colleagues would be interested in that.

101
00:07:43,131 --> 00:07:45,372
And then I can open the artifacts.

102
00:07:45,748 --> 00:07:49,936
And what you will see is that this graph that was just generated is here.

103
00:07:49,936 --> 00:07:52,498
And you can simply click copy link.

104
00:07:52,498 --> 00:07:59,633
And then any colleague that also has access to Snowflake Intelligence, I can now simply
send this link to.

105
00:07:59,633 --> 00:08:06,638
And what you will see is that, yeah, it has its own ID and they will be able to see the
exact same image.

106
00:08:07,281 --> 00:08:11,388
So if I go to that, you'll see accepting shared artifact.

107
00:08:11,388 --> 00:08:12,270
And there you go.

108
00:08:12,270 --> 00:08:12,708
You have the

109
00:08:12,678 --> 00:08:16,292
you can also have voice input if you like.

110
00:08:16,292 --> 00:08:21,446
You can also enable extended thinking if you think it's more difficult question.

111
00:08:21,446 --> 00:08:23,296
It will reason through it

112
00:08:23,296 --> 00:08:26,818
And you can also easily upload uh files.

113
00:08:26,818 --> 00:08:35,652
So if you have a local file like a markdown or even a PDF with more context that is
relevant to the question you're going to ask, you can just drag and drop or just upload a

114
00:08:35,652 --> 00:08:38,023
file and it will also take that into account.

115
00:08:38,023 --> 00:08:47,138
So a bit of the default features you would expect nowadays from a chatbot, but I think
it's nice to know that that snowflake also offers those out of the box.

116
00:08:47,138 --> 00:08:50,778
When you press the plus button, there was this second option, the agent sources.

117
00:08:50,778 --> 00:08:51,859
What is this?

118
00:08:52,255 --> 00:09:04,070
Yeah, so how this works, every Snowflake Cortex agent has tools So here we have an analyst
tool that is for structured data and you also have like a search tool which is for

119
00:09:04,070 --> 00:09:12,733
unstructured data and the Snowflake agent will automatically, based on your question,
route the request to the appropriate tools.

120
00:09:12,733 --> 00:09:14,063
So in this case,

121
00:09:14,087 --> 00:09:18,469
We gave it two tools, one for structured data and one for unstructured data.

122
00:09:18,469 --> 00:09:25,511
So maybe if I open a new chat here and I ask the question, what is our loyalty program
policy?

123
00:09:25,871 --> 00:09:27,752
Well, that is not structured data.

124
00:09:27,752 --> 00:09:35,375
That is a document that is somewhere sitting there that we upload in a knowledge base and
Snowflake will say, hey,

125
00:09:35,379 --> 00:09:37,699
This is basically what our policy looks like.

126
00:09:37,699 --> 00:09:46,719
say customers earn one point per euro spent, and if they have 100 points, they can get a
free drink and the points expire after 12 months.

127
00:09:46,799 --> 00:09:48,619
Loyalty members get a 10 % discount.

128
00:09:48,619 --> 00:09:51,099
And it even tells you what the source is.

129
00:09:51,099 --> 00:09:56,479
And then you see here that it points basically to a record, a string record we put in a
table.

130
00:09:56,479 --> 00:10:03,739
So there's different ways to get that unstructured data, but having just a long column in
a table is one way.

131
00:10:03,739 --> 00:10:05,439
That's how it's done here.

132
00:10:05,547 --> 00:10:12,077
And so basically this is sort of a RAG system that you then use, is like the default for
non-structured data.

133
00:10:12,477 --> 00:10:13,168
Exactly.

134
00:10:13,168 --> 00:10:21,455
Snowflake also has a way to do RAG, so it also makes vectors behind the scenes and then it
does the same thing.

135
00:10:21,455 --> 00:10:29,164
So based on your question, it looks up a vector, it embeds it into question and then it
retrieves the correct answer.

136
00:10:29,164 --> 00:10:31,430
Yeah, all right, a very nice demo.

137
00:10:31,430 --> 00:10:36,925
Maybe this is a good time to zoom out a bit on what this whole snowflake offering means,
what is their positioning.

138
00:10:36,925 --> 00:10:38,061
Yeah, so.

139
00:10:38,267 --> 00:10:52,173
If we look at the slides they have on Snowflake Intelligence, then you see that their goal
is really to offer this natural language interface for business uh users.

140
00:10:52,173 --> 00:10:55,395
The idea is really that they can have true self-service.

141
00:10:55,395 --> 00:11:01,817
It was promised already for many years in the past with self-service, dashboards and
last-mile analytics.

142
00:11:01,817 --> 00:11:08,630
But we saw that these tools didn't really work or they used it, but then it became really

143
00:11:08,819 --> 00:11:10,860
unmaintainable for engineers.

144
00:11:10,960 --> 00:11:23,880
So I think this is a nice way now that the whole GenAI capabilities arrived and they've
become very powerful that they can finally do that without having that strong dependency

145
00:11:23,880 --> 00:11:25,500
on data teams.

146
00:11:25,840 --> 00:11:27,440
So I think that's a bit their promise.

147
00:11:27,440 --> 00:11:30,220
You don't need a dashboard for every question.

148
00:11:30,220 --> 00:11:33,180
There will still be dashboards, but you don't need one for every question.

149
00:11:33,180 --> 00:11:35,900
And they don't have to write custom SQL.

150
00:11:35,900 --> 00:11:38,080
They can just write a natural language.

151
00:11:38,080 --> 00:11:38,460
question.

152
00:11:38,460 --> 00:11:49,206
I think that's the promise of Snowflake Intelligence and it builds upon other features
that Snowflake has been introducing over the last couple of months.

153
00:11:49,206 --> 00:11:56,349
So first had Cortex Analyst, then the agents came around and then Snowflake Intelligence
is the layer that builds on top of that.

154
00:11:56,483 --> 00:11:57,249
Okay, very nice.

155
00:11:57,249 --> 00:12:03,973
Yeah, so if I go to this next slide, it's a slide from Snowflake of how this all works.

156
00:12:03,973 --> 00:12:07,575
So you see that the big box is Snowflake Intelligence.

157
00:12:07,575 --> 00:12:10,056
That's where an end user interacts with.

158
00:12:10,057 --> 00:12:16,552
And then you see a couple of layers of data that it needs to get to that end result.

159
00:12:16,552 --> 00:12:19,103
The first part is an agent.

160
00:12:19,103 --> 00:12:23,379
So Snowflake Intelligence can have multiple agents.

161
00:12:23,379 --> 00:12:26,119
So in our case, we built one.

162
00:12:26,399 --> 00:12:38,479
Then an agent itself takes care of the planning, tracks the details and also thinks, did I
answer the question of the user or do I need to think more or use more tools?

163
00:12:38,639 --> 00:12:40,399
So that's a bit what the agent does.

164
00:12:40,399 --> 00:12:44,559
But then the most important thing that the agent does is it has tools.

165
00:12:45,039 --> 00:12:48,139
There's three different kind of tools.

166
00:12:48,259 --> 00:12:49,852
You have Cortex Search.

167
00:12:49,852 --> 00:12:52,563
which is for uh unstructured data.

168
00:12:52,563 --> 00:12:55,685
It's a bit of the manage reg for Snowflake.

169
00:12:55,685 --> 00:12:59,186
You have Cortex Analyst, which is for structured data.

170
00:12:59,186 --> 00:13:03,869
For that, it does text to SQL using a semantic view.

171
00:13:03,869 --> 00:13:14,113
And then finally, you have custom tools, is like custom SQL or Python code defined in a
user defined function or uh stored procedure.

172
00:13:14,113 --> 00:13:17,995
So those are all the layers you need to get to that final layer.

173
00:13:17,995 --> 00:13:19,796
I have this same image on the next

174
00:13:19,796 --> 00:13:21,416
slide but then

175
00:13:25,618 --> 00:13:23,556
the technical version of it, of what it means.

176
00:13:23,556 --> 00:13:34,796
So the same thing, you have Snowflake Intelligence, it has access to multiple agents and
each agent has those three kind of tools and then there's a fourth one, a bit of a special

177
00:13:34,796 --> 00:13:35,996
one, which is another agent.

178
00:13:35,996 --> 00:13:44,416
So if you want to say I want to do multi-agent or I want to combine them in one approach,
then you can say I have an agent as a tool for my agent.

179
00:13:44,416 --> 00:13:47,636
But I think the most important part is this here.

180
00:13:47,968 --> 00:13:57,315
which is if you have, for example, a cortex analyst, then that means that it needs to have
exactly one semantic view.

181
00:13:57,315 --> 00:14:03,720
And a semantic view exists out of one or many tables.

182
00:14:03,720 --> 00:14:09,134
So what you need to do is you need to select which tables logically belong together.

183
00:14:09,617 --> 00:14:12,398
And then expose those as a semantic view.

184
00:14:12,398 --> 00:14:21,653
And it needs quite a bit of metadata, knowledge embedded in that semantic view to do that
correct text to SQL resolution.

185
00:14:21,653 --> 00:14:28,927
If you don't give it examples, if you don't give it synonyms, if you don't give it
metrics, column descriptions, it will be very bad at that.

186
00:14:28,927 --> 00:14:33,909
And it will lead to wrong SQL statements, leading to wrong conclusions.

187
00:14:33,909 --> 00:14:38,992
So it's very important that you get this part uh right and that you iterate quite a

188
00:14:38,992 --> 00:14:45,457
also with business users to test the most asked questions to get to the right uh answer.

189
00:14:46,233 --> 00:14:48,844
the Cortex search tool is similar.

190
00:14:48,844 --> 00:15:00,410
also there, one search tool links exactly to one search service and that can index one or
many unstructured documents, so text documents, and then it does the chunking.

191
00:15:00,410 --> 00:15:04,012
So I think this one-on-one mapping is quite uh interesting.

192
00:15:04,012 --> 00:15:14,678
So you have the tools for each kind of views that you want the agent to do, but then
behind the scenes, it means exactly one search or exactly one semantic view.

193
00:15:14,966 --> 00:15:22,190
So maybe let's go to Snowflake and let's try to build this up from bottom to top.

194
00:15:22,831 --> 00:15:25,413
let's just recreate the whole demo from scratch.

195
00:15:25,413 --> 00:15:30,719
The tables will already be there, because I think most companies will have tables if they
use Snowflake.

196
00:15:30,719 --> 00:15:37,004
And then we can build a semantic view, Cortex Analyst tool, and then add that to an agent
again.

197
00:15:37,004 --> 00:15:44,850
those things are available as SQL statements, but Snowflake also has quite a good UI that
can help you with this.

198
00:15:44,850 --> 00:15:46,752
Also with lot of AI assistance.

199
00:15:46,752 --> 00:15:54,424
So if you already have table comments and column comments, then it will help to build that
semantic view.

200
00:15:54,534 --> 00:16:00,840
So that means if you have invested in metadata already, this is a big advantage in
creating these semantic views.

201
00:16:01,019 --> 00:16:01,950
Yes, exactly.

202
00:16:01,950 --> 00:16:05,522
And we haven't talked about access control yet, but also there.

203
00:16:05,522 --> 00:16:15,118
If you have properly set up role-based access control on Snowflake, you will benefit from
that because also in Snowflake Intelligence, it will go all the way through, apply

204
00:16:15,118 --> 00:16:16,529
role-based access control.

205
00:16:16,529 --> 00:16:23,293
So the user logged in to Snowflake Intelligence also needs to have access to the
underlying tables.

206
00:16:23,393 --> 00:16:26,575
Having access to the agent alone is not enough.

207
00:16:27,816 --> 00:16:37,416
So if you open Snowflake and you end up in this UI in the Snowsight,

208
00:16:37,768 --> 00:16:41,682
So what you can do is, for example, you first take a look at your data.

209
00:16:41,682 --> 00:16:45,495
So in the Horizon catalog, you can go to the database explorer.

210
00:16:45,515 --> 00:16:49,759
And there you see I have a database called Coffee Demo.

211
00:16:49,759 --> 00:16:54,584
And then in the analytics schema, I have four tables.

212
00:16:54,584 --> 00:16:57,446
Three of them we can use for a semantic view.

213
00:16:57,446 --> 00:16:59,047
So I have my stores.

214
00:16:59,228 --> 00:17:02,487
Also here you can say data preview.

215
00:17:02,487 --> 00:17:05,248
And then you will see that I have my 10 stores here.

216
00:17:05,768 --> 00:17:07,248
I have the orders.

217
00:17:07,789 --> 00:17:10,170
Also here, I can click data preview.

218
00:17:10,170 --> 00:17:12,690
You'll see I have 15k orders.

219
00:17:12,951 --> 00:17:14,651
And then I have the order items.

220
00:17:14,971 --> 00:17:16,592
All right, so that's our starting point.

221
00:17:16,592 --> 00:17:19,953
That's what I assume most companies have.

222
00:17:19,973 --> 00:17:24,803
Then what you can do is you can go to the AI & ML tab and you can go to...

223
00:17:24,803 --> 00:17:25,843
analyst.

224
00:17:26,663 --> 00:17:37,326
And there what you immediately see is you come in a section called semantic views and
there's a big blue button on the right here called create with autopilot.

225
00:17:37,326 --> 00:17:46,228
So if we click that then the first thing it will ask me is do you have extra context that
can help with creating a good semantic view.

226
00:17:46,228 --> 00:17:53,150
So if you already have a tableau dashboard and you have a tableau file or you have SQL
queries

227
00:17:53,294 --> 00:17:57,498
that you know people already execute against those tables, you can upload those.

228
00:17:57,498 --> 00:18:00,961
And that will really help with getting to a good semantic view.

229
00:18:00,961 --> 00:18:04,384
In this case, we don't have that, so we can skip this part.

230
00:18:04,785 --> 00:18:06,907
Next up, you have to name your semantic view.

231
00:18:06,907 --> 00:18:11,868
So let's call it a crew shop recreate, meaning we make it again.

232
00:18:11,868 --> 00:18:14,851
You say, okay, we will store it in this schema.

233
00:18:14,851 --> 00:18:17,247
We will store it as semantic view.

234
00:18:17,247 --> 00:18:19,479
Next, and then you can select your table.

235
00:18:19,479 --> 00:18:23,961
So here we say I want the orders table, the order items, the stores.

236
00:18:24,482 --> 00:18:29,485
We go next again, and then we can select all the columns of all those tables.

237
00:18:29,736 --> 00:18:31,982
Why would you not select all columns?

238
00:18:31,982 --> 00:18:42,037
Well, let's say that some columns are sensitive or you explicitly do not want them in your
talk to your data, then this is a way to exclude them.

239
00:18:42,037 --> 00:18:43,197
It's not the only way.

240
00:18:43,197 --> 00:18:52,622
You could also say, let's always include all columns and yet let's use column masking
policies or row policies instead to hide data.

241
00:18:52,622 --> 00:19:01,907
But if you haven't done that yet, or you haven't invested in that as an enterprise, this
is another easy way to just leave certain columns out and then it will simply not

242
00:19:01,907 --> 00:19:03,047
not show them.

243
00:19:03,102 --> 00:19:09,157
It will also not be accessible to the agent in that case or will it just not know about
the columns?

244
00:19:09,626 --> 00:19:13,508
It will not select them in its select part of Yeah.

245
00:19:17,010 --> 00:19:23,873
Exactly, because it uses SQL directly on the semantic view and that translates into like
the physical table query.

246
00:19:23,873 --> 00:19:31,038
So if the semantic view doesn't even know about it, then it will also not translate back
into that physical table.

247
00:19:31,038 --> 00:19:38,131
an intermediate layer that it passes through and it only exposes whatever you select here
then Okay

248
00:19:38,131 --> 00:19:39,474
own thing you can query.

249
00:19:39,474 --> 00:19:43,751
All right, so let's create it.

250
00:19:44,002 --> 00:19:52,900
And then what you will see is that AI will start working and it will start figuring out
how to set up that semantic view.

251
00:19:52,900 --> 00:20:01,919
So if I hide the menu a little bit, you see this is bit better, then you see that first it
added my tables.

252
00:20:01,919 --> 00:20:09,086
It took over the table description I already had, but then it will start proposing

253
00:20:09,362 --> 00:20:09,853
metrics.

254
00:20:09,853 --> 00:20:11,582
So that's the thing you see loading here.

255
00:20:11,582 --> 00:20:14,257
It will also start proposing relationships.

256
00:20:14,257 --> 00:20:21,114
So here you see, I saw you have a relationship from your store ID table to your orders
table.

257
00:20:21,114 --> 00:20:22,795
So you can review that.

258
00:20:23,156 --> 00:20:28,640
And then if you think, hey, this looks right, it's a many to one relationship, you can
click add.

259
00:20:28,842 --> 00:20:33,617
So they use the Cortex AI also here to edit automatically.

260
00:20:33,617 --> 00:20:39,622
Also here, they added a bunch of metrics like total orders, so you can accept them all if
you want.

261
00:20:39,622 --> 00:20:40,573
So let's do that.

262
00:20:40,573 --> 00:20:44,217
Imagine in a real scenario that we review them properly.

263
00:20:44,217 --> 00:20:47,659
But in this case, I think they're all correct.

264
00:20:47,979 --> 00:20:49,900
Also here, effects like...

265
00:20:50,152 --> 00:20:54,452
The line total, which is the quantity time, the unit price, and it seems about right.

266
00:20:54,452 --> 00:20:56,432
So also there we can accept it.

267
00:20:56,432 --> 00:21:00,812
And then also here, quite important, verified queries.

268
00:21:01,587 --> 00:21:13,117
Since a Cortex analyst will translate a natural language question into a SQL statement,
it's important that the most commonly asked questions you already embed and you verify the

269
00:21:13,117 --> 00:21:19,943
SQL yourself to make sure that at least that question is correct and that that question
gets answered right.

270
00:21:19,943 --> 00:21:26,499
So also here it's proposing a question that it thinks would benefit from a verified query.

271
00:21:26,499 --> 00:21:27,996
So if I click review here,

272
00:21:27,996 --> 00:21:31,361
like this query ran two times the last 14 days.

273
00:21:31,361 --> 00:21:36,208
That means you leverage the power of the unified snowflake ecosystem.

274
00:21:36,208 --> 00:21:42,055
It knows that this query was run before, it knows it's real, it's useful.

275
00:21:42,173 --> 00:21:47,349
Exactly, so it can use the query history to know this is a commonly used query.

276
00:21:47,349 --> 00:21:49,821
That's probably what you should include as a verified query.

277
00:21:49,821 --> 00:21:51,612
So that's quite powerful.

278
00:21:51,613 --> 00:21:56,097
And also here, so now I clicked on the screen to review a verified query.

279
00:21:56,238 --> 00:21:59,590
And here you see that it will say this is the logical query.

280
00:21:59,590 --> 00:22:02,362
And then here you see the physical query that came out.

281
00:22:02,362 --> 00:22:05,914
So you see those are two separate things.

282
00:22:05,914 --> 00:22:10,757
So it uses SQL on a more abstract level than the physical query.

283
00:22:10,758 --> 00:22:11,978
You can run it.

284
00:22:12,199 --> 00:22:14,840
And then you see here what came out.

285
00:22:15,341 --> 00:22:16,932
And you see, does it look about right?

286
00:22:16,932 --> 00:22:18,002
Yes or no.

287
00:22:18,383 --> 00:22:22,826
You can modify the query a little bit to see if it matches that SQL statement.

288
00:22:22,826 --> 00:22:27,516
And you can even highlight it as an onboarding question.

289
00:22:27,840 --> 00:22:29,160
We save this.

290
00:22:29,180 --> 00:22:30,743
And now we have our...

291
00:22:30,743 --> 00:22:36,541
semantic view ready and also our Cortex uh Analyst tool.

292
00:22:37,397 --> 00:22:38,218
and we can...

293
00:22:38,218 --> 00:22:41,739
You said we have our semantic view ready and the analyst.

294
00:22:41,739 --> 00:22:43,051
What does that mean?

295
00:22:43,536 --> 00:22:52,850
Yeah, so what we saw on this slide here is that a semantic view maps one-on-one to Cortex
Analyst.

296
00:22:52,850 --> 00:22:59,674
So in this case, even in the Snowflake UI, we had to go to the tab Cortex Analyst.

297
00:22:59,674 --> 00:23:03,175
And when we clicked on that, it immediately gave us like a tab semantic view.

298
00:23:03,175 --> 00:23:06,236
So it's a bit the same thing.

299
00:23:06,619 --> 00:23:11,628
It's only when we start defining the agent that we'll start adding them as tools.

300
00:23:12,254 --> 00:23:14,237
So let's create a new agent.

301
00:23:14,488 --> 00:23:17,140
And also here, you can say, okay, where do I want to save it?

302
00:23:17,140 --> 00:23:19,713
So let's save it again in our analytics schema.

303
00:23:19,713 --> 00:23:23,656
Let's call it the Brew Agent.

304
00:23:23,918 --> 00:23:26,858
and this is where you can configure everything.

305
00:23:26,978 --> 00:23:34,662
And then here you have to provide the description of how it will be visible to users that
log into Snowflake Intelligence.

306
00:23:34,662 --> 00:23:44,266
So let's say I am the Brew agent and I can answer questions about the sales in all stores.

307
00:23:44,966 --> 00:23:47,407
And then here you have those example questions.

308
00:23:49,419 --> 00:23:51,004
the questions that we saw when you go to the homepage of Snowflake Intelligence.

309
00:23:51,004 --> 00:23:53,710
This here, those are the example questions.

310
00:23:54,059 --> 00:23:59,683
So if we go to the verified questions, we can, for example, take it.

311
00:23:59,882 --> 00:24:01,672
and then put that here.

312
00:24:02,513 --> 00:24:03,173
There you go.

313
00:24:03,173 --> 00:24:04,534
It's an example question.

314
00:24:04,534 --> 00:24:08,595
And the most important section is this tools section here.

315
00:24:08,595 --> 00:24:12,838
And here you saw exactly what we saw on that slide I showed.

316
00:24:12,838 --> 00:24:17,820
You can add as many tools as you want, but they have to be one of the three main types.

317
00:24:17,820 --> 00:24:20,573
It's either an analyst for structured data,

318
00:24:20,573 --> 00:24:25,633
a search service for unstructured data, so RAG behind the scenes, or it's a custom tool.

319
00:24:25,633 --> 00:24:30,593
So it maps a bit to this, so you can select one of those tools.

320
00:24:31,133 --> 00:24:33,933
So in our case, we just create the Cortex Analyst.

321
00:24:34,093 --> 00:24:39,273
So what I can do is I can say, hey, let me add a semantic view here.

322
00:24:39,813 --> 00:24:41,993
And then you can search for it.

323
00:24:41,993 --> 00:24:47,793
So in Analytics Schema, you say the one we just created, user-friendly name.

324
00:24:47,793 --> 00:24:50,653
So we say, Brew Shop.

325
00:24:51,290 --> 00:24:52,763
Let's give it the same name.

326
00:24:52,763 --> 00:24:59,295
And also here, Snowflake embeds AI to help you with a description that can be used for the
agent.

327
00:24:59,295 --> 00:25:01,158
So now I click this button.

328
00:25:01,600 --> 00:25:04,244
Now it's generating the description.

329
00:25:04,694 --> 00:25:07,505
they optimize basically for themselves, for the agent to discover.

330
00:25:07,505 --> 00:25:09,346
So here you see quite lengthy.

331
00:25:09,346 --> 00:25:15,949
So it says basically the tables that are available and what kind of data is in there.

332
00:25:15,949 --> 00:25:18,852
So the Snowflake intelligence object, the agent,

333
00:25:18,852 --> 00:25:25,214
will play the role of the orchestration and look between all the tools it has available
based on this description.

334
00:25:25,214 --> 00:25:30,783
it's the orchestration part that is really important, so you need to get this description
right.

335
00:25:30,787 --> 00:25:32,849
Yeah, so it needs to know when to call the tool.

336
00:25:32,849 --> 00:25:39,595
And this is essentially the metadata or the summary of the semantic model to know like,
okay, this is when I need to call the tool.

337
00:25:40,042 --> 00:25:50,632
Yes, because you could say I put that responsibility in the hands of the user using
Snowflake Intelligence to switch agents when you have multiple ones.

338
00:25:50,692 --> 00:26:02,302
But in case you say we go for an approach where we only have one agent and that agent has
10 tools, well then it needs to know which of those 10 is able to answer the question.

339
00:26:02,302 --> 00:26:04,653
And that's why this description is so important.

340
00:26:04,904 --> 00:26:08,024
All right, warehouse, we can say use the default one of the user.

341
00:26:08,024 --> 00:26:09,984
You can also enter a timeout.

342
00:26:09,984 --> 00:26:16,984
So if the query takes longer than that amount, yeah, then it will be timed out.

343
00:26:16,984 --> 00:26:19,244
So let's, for example, take two minutes.

344
00:26:19,484 --> 00:26:20,704
We add that.

345
00:26:21,084 --> 00:26:24,115
And now you see that we added one tool.

346
00:26:24,812 --> 00:26:26,973
Then let's go to orchestration.

347
00:26:26,973 --> 00:26:33,837
So here you can select which model do you want to use for this agent.

348
00:26:33,838 --> 00:26:35,538
You can put it to auto.

349
00:26:35,659 --> 00:26:39,098
And here you see, for example, that some models are grayed out.

350
00:26:39,098 --> 00:26:39,827
Yeah.

351
00:26:39,827 --> 00:26:43,770
The reason is because in Snowflake you can enable regions.

352
00:26:43,770 --> 00:26:47,442
You can say where do you want those models to be hosted?

353
00:26:47,442 --> 00:26:52,244
And in my case, I put a configuration to say only in the European Union.

354
00:26:52,385 --> 00:26:58,789
meaning that the Anthropic models are available, but the Gemini and GPT are not.

355
00:26:58,789 --> 00:27:03,691
If I would say allow all regions, then I would also be able to select those models.

356
00:27:05,012 --> 00:27:06,808
So let's leave it to Auto.

357
00:27:06,808 --> 00:27:15,373
So you have the orchestration instructions, you have a system prompt from Snowflake
itself, and then you have the response instructions, what gets looked at right before

358
00:27:15,373 --> 00:27:16,374
returning to the user.

359
00:27:16,374 --> 00:27:21,898
Then budget configuration, also here when it stops, token limit you can set.

360
00:27:22,078 --> 00:27:24,269
And then finally, access.

361
00:27:24,269 --> 00:27:26,761
So you can say which role has access.

362
00:27:26,761 --> 00:27:33,228
You can very easily, in our case, say public role, meaning that everyone will get access.

363
00:27:33,228 --> 00:27:38,132
So if we save this, what we can now do is we can test this out.

364
00:27:38,132 --> 00:27:48,604
So here you get some kind of inline chat interface to see what happens with that agent
before having it available in Snowflake Intelligence.

365
00:27:48,604 --> 00:27:55,336
So it's now thinking, planning the next steps and then it will generate a table.

366
00:27:55,587 --> 00:28:05,594
key takeaways and then even generate the chart And you see coffee is by far our most
popular product as expected in a coffee bar.

367
00:28:06,482 --> 00:28:13,055
So here you see when I go to the agents tab and then I go to Snowflake Intelligence, here
you can say add an existing agent.

368
00:28:13,055 --> 00:28:15,859
And then I hit then say brew agent.

369
00:28:15,859 --> 00:28:17,147
I add the agent.

370
00:28:17,147 --> 00:28:20,436
Now it's permanently available in Snowflake Intelligence.

371
00:28:20,436 --> 00:28:22,337
So if I now refresh this.

372
00:28:23,143 --> 00:28:25,215
There you see the new one is here.

373
00:28:25,215 --> 00:28:26,794
I can make a new chat.

374
00:28:26,794 --> 00:28:33,079
I can put it here and then I can ask that same question again we just did.

375
00:28:33,359 --> 00:28:36,281
And then it says, hey, this looks like a verified query.

376
00:28:36,281 --> 00:28:37,441
Let me use that one.

377
00:28:37,441 --> 00:28:39,042
So it doesn't need to think.

378
00:28:39,439 --> 00:28:43,927
about the text to SQL, but it just knows that that is the same question.

379
00:28:43,927 --> 00:28:52,141
So it will take that predefined SQL and of course it will generate the same data, generate
the same bar again.

380
00:28:53,424 --> 00:28:59,333
So the steps you followed were essentially you had the table, you make the semantic view
on top of that.

381
00:28:59,333 --> 00:29:00,845
This you coupled to the agent.

382
00:29:00,845 --> 00:29:03,379
There is actually the thing in between the cortex analyst.

383
00:29:03,379 --> 00:29:05,503
You didn't need to do anything special.

384
00:29:05,503 --> 00:29:08,386
That's just the way you expose it to the agent seemingly.

385
00:29:08,386 --> 00:29:09,875
That's no object or anything.

386
00:29:09,875 --> 00:29:18,185
to add it as a tool in the agent and every semantic view you created you can select as a
tool if you have access.

387
00:29:18,340 --> 00:29:20,361
Yeah, very nice.

388
00:29:20,484 --> 00:29:22,105
How do you do the unstructured part?

389
00:29:22,105 --> 00:29:27,110
Is that just like an S3 bucket where you dump all your files in?

390
00:29:27,801 --> 00:29:28,842
That's one option.

391
00:29:28,842 --> 00:29:36,449
So if I go to the uh search, Cortex search, so there's this one tab again with all the
Cortex feature.

392
00:29:36,449 --> 00:29:41,152
We just looked at the agents and analysts and then you also have search.

393
00:29:41,353 --> 00:29:47,438
And here, for example, I already created that knowledge base in the first agent I demoed.

394
00:29:47,618 --> 00:29:52,163
And there you see that I just use a normal uh table.

395
00:29:52,163 --> 00:29:53,516
So here,

396
00:29:53,516 --> 00:30:01,835
I have a table called coffee knowledge base and there is one column in there if I do this
that has the content.

397
00:30:10,258 --> 00:30:07,875
here you see the unstructured text that you can also use to do the RAG on.

398
00:30:07,875 --> 00:30:11,937
So here you see that it generated the embeddings in Snowflake.

399
00:30:11,998 --> 00:30:13,670
So that's one way.

400
00:30:13,670 --> 00:30:16,992
What you can also do is if you click Create here.

401
00:30:16,992 --> 00:30:19,233
Let's create it here.

402
00:30:19,765 --> 00:30:20,612
No test.

403
00:30:20,612 --> 00:30:21,772
There we go.

404
00:30:22,172 --> 00:30:26,332
And then I can select a table or a view.

405
00:30:26,572 --> 00:30:29,632
But what I can also do is select a stage.

406
00:30:30,152 --> 00:30:45,003
And a stage in Snowflake, I don't have one set up, but essentially what you have is you
have internal stages, which is a bit like a file system.

407
00:30:45,368 --> 00:30:54,230
you connect to, so it's a place you set up behind the scenes, it will create like an
internal snowflake place in your snowflake account and then you can connect to it and

408
00:30:54,230 --> 00:30:55,831
upload files to that stage.

409
00:30:55,831 --> 00:31:00,192
And it can be PDFs, can be markdown files and then you can query them from here.

410
00:31:00,192 --> 00:31:11,371
But what most companies do is they use what they call external stages, meaning you point
it to one of your own S3 buckets or one of your own clouds, Azure cloud blob storage.

411
00:31:11,371 --> 00:31:16,303
meaning that you can use normal processes in your AWS account to get those files in there.

412
00:31:16,404 --> 00:31:20,797
And then Snowflake will automatically monitor that stage basically.

413
00:31:20,797 --> 00:31:26,385
And every time new documents get dropped, it will do the chunking automatically and you
have to define a target lag.

414
00:31:26,385 --> 00:31:33,693
So you say do this every one hour, for example, and it will weigh those chunks and make
sure that search services is up to date.

415
00:31:33,815 --> 00:31:42,729
Okay, but this is actually really convenient if you want to generate your own RAG, you
just set this up and you dump your files in an S3 bucket and then you get search on top of

416
00:31:42,729 --> 00:31:44,510
your files, semantic search.

417
00:31:44,510 --> 00:31:45,003
Exactly.

418
00:31:44,987 --> 00:31:50,312
And so if you stay in the Snowflake ecosystem, everything you showed us quite easy to set
up.

419
00:31:50,312 --> 00:31:51,713
What are the hard parts of this?

420
00:31:51,713 --> 00:31:53,995
Because now everybody could set this up.

421
00:31:53,995 --> 00:31:55,256
You did it via UI.

422
00:31:55,256 --> 00:31:57,639
It's also possible to do via SQL, of course.

423
00:31:57,639 --> 00:32:02,883
Do you see any restrictions or any hard components in setting this up?

424
00:32:03,389 --> 00:32:09,809
Not sure how much time it took, but I it won't be more than 20 minutes to set this up end
to end via the UI.

425
00:32:09,809 --> 00:32:16,089
Probably in an enterprise context you want it a bit more managed as code, but still it
won't take you long.

426
00:32:16,229 --> 00:32:19,349
I think the hard part here...

427
00:32:19,479 --> 00:32:25,592
is making sure that you have all the context and that you have all that business
knowledge.

428
00:32:25,592 --> 00:32:36,666
The example here of a coffee shop, it's very tangible, everybody understands it, but when
you're working in a complex industry and your engineers did not have the practice yet of

429
00:32:36,666 --> 00:32:44,079
adding column comments, table comments, setting up that semantic view will be quite a
challenge.

430
00:32:44,300 --> 00:32:47,721
So I believe that ideally that semantic view

431
00:32:48,035 --> 00:32:49,986
is not an engineering object.

432
00:32:49,986 --> 00:33:02,586
It's not something that an engineer defines in code, but given the capabilities that
Snowflake has and the UI it has built in with Snowflake Cortex, you should, I think, put

433
00:33:02,586 --> 00:33:08,268
this in the hands of your business users and let them iterate over it so that they can...

434
00:33:08,268 --> 00:33:16,085
themselves at metrics, facts, synonyms, uh and that they can iterate together with
engineers.

435
00:33:16,085 --> 00:33:19,718
So I think that that iteration loop is a challenge.

436
00:33:19,799 --> 00:33:29,930
And something we did not even talk about today is that uh knowledge, adding knowledge to
your data is only a small part of the puzzle.

437
00:33:29,930 --> 00:33:33,633
That assumes that your data quality,

438
00:33:33,678 --> 00:33:35,401
is already in order.

439
00:33:35,401 --> 00:33:44,404
If the underlying data in the table is wrong or you have data quality issues duplicates in
there, it will also just simply return that in the UI and also your business users will

440
00:33:44,404 --> 00:33:46,277
see the wrong result.

441
00:33:46,277 --> 00:33:49,561
focusing on knowledge and getting that knowledge component right.

442
00:33:49,651 --> 00:33:52,092
doesn't mean your excuse from doing all the other things.

443
00:33:52,092 --> 00:33:57,996
You still need metadata, you still need ownership and someone to talk to when things go
wrong.

444
00:33:57,996 --> 00:34:07,768
You still need to focus on lineage, you still need to focus on definitions and then decide
what does it mean of what a data product is, what does it mean of what a customer is in

445
00:34:07,768 --> 00:34:08,479
this domain.

446
00:34:08,479 --> 00:34:13,574
All those things do not go away by having this capability available.

447
00:34:13,574 --> 00:34:19,289
But if you have your foundations right, it won't be that hard to add this layer on top.

448
00:34:19,289 --> 00:34:25,706
think doing it the other way around and starting from this and then realizing our quality
is not that good, that's a bigger issue.

449
00:34:26,336 --> 00:34:29,920
Do you see there a difference between how we used to work before?

450
00:34:29,920 --> 00:34:37,198
Like what we normally do is you have an operational system, we have ETL to copy over the
data to the analytical side, I imagine...

451
00:34:37,198 --> 00:34:46,040
a naive way of thinking about it is like now I just expose an MCP server on my operational
database and I plug it into Claude code and I can start querying my data.

452
00:34:46,291 --> 00:34:55,155
Yeah, think that one of the reasons why we did this ETL process was to not put loads on
the operational system for analytical use.

453
00:34:55,155 --> 00:34:58,218
think that reason is still valid.

454
00:34:58,218 --> 00:35:01,199
I still don't think you want those two worlds to interfere.

455
00:35:01,199 --> 00:35:07,542
But what has changed is the need to do the copy ETL as we used to know it.

456
00:35:07,542 --> 00:35:11,686
Zero ETL is something that is coming around, meaning that

457
00:35:11,686 --> 00:35:22,266
behind the scenes actually, there's still ETL happening, there's still a copy happening
behind the scenes, but it just reflects the data in the operational system almost in real

458
00:35:22,266 --> 00:35:24,626
time into the analytical system.

459
00:35:24,626 --> 00:35:37,466
And Snowflake also has a very good support for this in combination with partners that
offer this, like Salesforce, like SAP, meaning that operational data almost in real time

460
00:35:37,466 --> 00:35:41,046
is available in iceberg format.

461
00:35:41,046 --> 00:35:41,679
So read

462
00:35:41,679 --> 00:35:44,161
optimized columnar storage.

463
00:35:44,482 --> 00:35:49,926
And also that data can be used directly in Snowflake Intelligence.

464
00:35:49,926 --> 00:35:54,799
So you can build semantic views directly on that iceberg table two...

465
00:35:54,799 --> 00:35:57,239
do not exclude each other.

466
00:35:57,239 --> 00:36:08,259
But then you still have another part of the equation, which is do you want to expose your
operational structures directly to your analytical landscape?

467
00:36:08,259 --> 00:36:12,699
And also there you see a shift happening where

468
00:36:13,191 --> 00:36:24,976
those operational systems like SAP, they start offering their uh engineers or the
developers working on SAP a way to also offer interfaces, to offer data products.

469
00:36:24,976 --> 00:36:35,941
So the exact operational structures is not necessarily what gets copied with that series
zero ETL, but also there they can do the modeling already directly on SAP and then that

470
00:36:35,941 --> 00:36:39,651
data gets zero ETL into Snowflake.

471
00:36:39,651 --> 00:36:46,371
So you see the ownership shifting actually to where it belongs in the source system.

472
00:36:46,371 --> 00:36:52,311
And that data first thinking is something that all vendors are embracing.

473
00:36:52,311 --> 00:36:56,711
they all also, they all talk about data products now.

474
00:36:56,711 --> 00:36:58,091
So I think it's a good thing.

475
00:36:58,091 --> 00:37:02,913
think that the source line data products, I think the copying we did.

476
00:37:02,913 --> 00:37:11,058
The ETL, I think that's something necessarily we had to do to make analytics work, but
ideally that doesn't sit in our ownership.

477
00:37:11,282 --> 00:37:20,767
And so that means, while we used to export raw data and the raw formats and models from
the operational systems, we're shifting more towards redefining that already at the

478
00:37:20,767 --> 00:37:25,099
source, putting ownership there, and then exposing that for analytical use cases.

479
00:37:25,099 --> 00:37:27,313
So you cut out the whole ETL part.

480
00:37:27,313 --> 00:37:32,997
Yes, and even the effort of building the pipeline is cut out because of that zero ETL
approach.

481
00:37:32,997 --> 00:37:44,022
So the data is simply there, meaning that we can immediately focus on the valuable parts,
which is building consumer-aligned data products, use cases, combining data from multiple

482
00:37:44,022 --> 00:37:49,612
sources to get insights and do AI on and do predictions and integrations on and so on.

483
00:37:49,586 --> 00:37:55,283
many companies are focusing right now is on one hand they want to make sure that

484
00:37:55,283 --> 00:37:59,106
They are doing the innovative part that they're staying up to date with AI.

485
00:37:59,106 --> 00:38:02,508
On the other hand, they don't want incident accidents.

486
00:38:02,508 --> 00:38:10,093
They want to focus on governance also in the EU with NIST 2, the AI Act all coming along.

487
00:38:10,093 --> 00:38:11,674
You want to balance those.

488
00:38:11,674 --> 00:38:18,520
And in Snowflake, there was a whole bunch of enterprise guardrails built in.

489
00:38:18,520 --> 00:38:33,115
meaning that it's quite easy to do full traceability, set cost controls also per user and
that also models are hosted in the EU if you have that as a requirement.

490
00:38:33,115 --> 00:38:41,460
I maybe want to cycle back to one of the first slides you had where the last statement
there is like you don't need dashboard or SQL.

491
00:38:41,460 --> 00:38:48,645
Does this then for you replace dashboards or is there still a place for dashboards in the
ecosystem of analytics?

492
00:38:49,370 --> 00:38:54,616
me, it partly replaces dashboards, but not fully.

493
00:38:54,616 --> 00:39:01,859
And I think the recurring questions, the ones that you want to check every day or every
week and that multiple people want to check.

494
00:39:01,859 --> 00:39:12,444
I think that for that you will still need a dashboard, but there can be much more ad hoc
questions and on the fly generations of visualizations that where you don't need that

495
00:39:12,444 --> 00:39:13,104
dashboard for.

496
00:39:13,104 --> 00:39:17,066
So I expect more people to self-serve analytics.

497
00:39:17,066 --> 00:39:20,046
I expect more people to be enabled.

498
00:39:20,067 --> 00:39:29,607
I think finally you can say as an enterprise, the value I'm getting from my data team is
too low.

499
00:39:29,927 --> 00:39:33,468
Please enable me more with this kind of tools.

500
00:39:33,468 --> 00:39:34,548
I have a visual.

501
00:39:34,548 --> 00:39:37,709
visualization here that I got from a colleague.

502
00:39:37,709 --> 00:39:43,313
So here you see these two axes and how many people want to know about those insights.

503
00:39:43,313 --> 00:39:44,883
Is it everybody or a few people?

504
00:39:44,883 --> 00:39:47,434
And what is the perceived value of the insight?

505
00:39:47,434 --> 00:39:48,975
Is it low or is it high?

506
00:39:48,975 --> 00:39:57,897
And you see where it's both high and everybody wants it, then yeah, then still probably it
makes sense to have a dashboard there.

507
00:39:58,238 --> 00:40:01,199
But then what you see here is that

508
00:40:01,375 --> 00:40:14,663
when a lot of people want to have an insight, but the perceived value is lower or the
other way around, that the talk to your data will really, really help.

509
00:40:14,975 --> 00:40:20,580
Also here, for example for the CEO, it only wants a few people, only insights for the CEO.

510
00:40:20,580 --> 00:40:24,622
And the value can be low or high, also there for ad hoc questions.

511
00:40:24,844 --> 00:40:30,027
and the CEO can now just open a tool like this and let me verify that.

512
00:40:30,588 --> 00:40:32,098
Let me fact check you.

513
00:40:32,098 --> 00:40:33,339
Yeah, and the...

514
00:40:33,570 --> 00:40:44,250
So, but I do think this could change the way we do reporting quite fundamentally because
now in many companies I see when there is any question it needs to go through this whole

515
00:40:44,250 --> 00:40:51,958
cycle of analysts, dashboard builders, data engineers to answer sometimes a seemingly
simple question.

516
00:40:51,958 --> 00:40:54,700
This is a huge shift, I think, right?

517
00:40:54,951 --> 00:41:01,664
Yes it is, but I think the prerequisites are also not that easy.

518
00:41:01,664 --> 00:41:05,876
Because imagine you now have 5,000 tables in your company.

519
00:41:06,196 --> 00:41:10,978
You probably do not want to enable talk to your data on those 5,000 tables.

520
00:41:10,978 --> 00:41:21,915
You still want to make a distinction between what are my intermediate tables and what are
the interfaces, the public interfaces that I'm willing to take ownership on to guarantee

521
00:41:21,915 --> 00:41:26,967
that knowledge, that context that is needed and also data quality.

522
00:41:26,967 --> 00:41:30,370
So in a way, data product thinking, I think, is still

523
00:41:30,370 --> 00:41:34,173
needed and someone needs to define the boundary of a data product.

524
00:41:34,173 --> 00:41:36,274
What is something valuable?

525
00:41:36,274 --> 00:41:39,997
And then make sure to apply all the principles on that.

526
00:41:39,997 --> 00:41:44,261
If you have that foundation in place, enabling this will be quite easy.

527
00:41:44,261 --> 00:41:54,578
But if you haven't done that yet and you still have 5,000 tables in Snowflake, you don't
have proper role-based access control and you still give everyone a system admin to use

528
00:41:54,578 --> 00:41:58,451
this, then you will have a hard time to scale this

529
00:41:58,451 --> 00:42:00,020
in an efficient way.

530
00:42:00,671 --> 00:42:08,444
And so you still believe that data product thinking, designing your data product
landscape, dealing with permissions, dealing with quality that that is still needed,

531
00:42:08,444 --> 00:42:09,224
right?

532
00:42:09,491 --> 00:42:23,815
Yes, I believe that access control role-based access control is really a foundation for
having data enterprise ready and having knowledge on your data is something new for.

533
00:42:23,930 --> 00:42:32,179
for most enterprises, but making sure that ownership is in place, that lineage is in
place, metadata is in place, it will all help.

534
00:42:32,179 --> 00:42:39,036
there is still something needed to make sure that enterprise data is enterprise ready.

535
00:42:39,460 --> 00:42:40,191
Yeah, exactly.

536
00:42:40,191 --> 00:42:41,603
And that's the hard part, I think, right?

537
00:42:42,754 --> 00:42:43,535
Yes, exactly.

538
00:42:43,535 --> 00:42:48,917
what we talked about today was ad hoc questions in talk to your data.

539
00:42:48,917 --> 00:42:56,602
But the next step or another step is having agents communicate effectively, agents talking
to agents.

540
00:42:56,602 --> 00:43:01,043
So also for that to work effectively, you need all those things in place.

541
00:43:01,043 --> 00:43:10,260
If you don't have good context, if you don't have data quality, if they make wrong
decisions because you didn't focus on those foundations, if they have overly

542
00:43:10,260 --> 00:43:21,126
permissive access rights and they can write to tables, they can delete tables and you did
not invest in role-based access control, then that is a recipe for disaster.

543
00:43:21,126 --> 00:43:23,148
um

544
00:43:23,324 --> 00:43:29,387
So what I hear often is like snowflake is expensive and you've shown that this is like an
ecosystem.

545
00:43:29,387 --> 00:43:30,898
This is not just a data warehouse.

546
00:43:30,898 --> 00:43:33,530
There's many tools being added on top of that.

547
00:43:33,530 --> 00:43:34,835
What if I would

548
00:43:34,835 --> 00:43:42,252
Build my own stack if I would want to build it myself like do you think it's worthwhile to
pay for it and not build it yourself?

549
00:43:42,252 --> 00:43:52,938
I think it's, if you're using Snowflake already, I think it's a very good starting point
because Snowflake's edge is convenience, is how easy it is to set up.

550
00:43:52,938 --> 00:43:55,340
mean, it's in 15 minutes today.

551
00:43:55,340 --> 00:44:04,874
So the faster you can get people used to it and experiment with it and get that feedback
loop going to see what really works, what is it really that my users want.

552
00:44:04,874 --> 00:44:13,108
So you don't want to build for a year and then come to the conclusion no one wants this or
I built the wrong thing, I took wrong assumptions.

553
00:44:13,108 --> 00:44:21,996
So by using Snowflake you can test things fast, get that feedback and then still later you
can decide

554
00:44:22,225 --> 00:44:32,522
Am I willing at scale to pay Snowflake to do this or is this really something I want to
build myself and it is true Snowflake

555
00:44:32,923 --> 00:44:34,283
Is an expensive product.

556
00:44:34,283 --> 00:44:40,288
think our CEO once called it a Porsche and they buy the Porsche and then later they
complain that it costs a lot.

557
00:44:40,288 --> 00:44:41,712
Well, yes, it is a Porsche.

558
00:44:41,712 --> 00:44:45,195
And they do ask a time stream markup on token usage.

559
00:44:45,195 --> 00:44:49,538
So if you look at the raw and Tropic pricing, you pay three times as much.

560
00:44:49,538 --> 00:44:57,529
Every text to SQL query generates till uses normal compute credits as if you do a normal
query in Snowflake.

561
00:44:57,529 --> 00:44:59,140
So yeah, I think that's a trade-off here.

562
00:44:59,140 --> 00:45:01,110
So definitely start using it.

563
00:45:01,110 --> 00:45:04,404
And then If you say this is massively used, it is successful.

564
00:45:04,404 --> 00:45:08,997
Can we now keep the good foundations, everything you've learned, but then reduce the cost?

565
00:45:08,997 --> 00:45:13,988
If you don't want to make that expensive investment before you know that it brings value.

566
00:45:13,988 --> 00:45:14,730
Yeah.

567
00:45:14,730 --> 00:45:18,876
And how would you recommend organizations get started with this?

568
00:45:19,127 --> 00:45:23,691
I would select a focus group.

569
00:45:23,691 --> 00:45:36,719
If you're working with multiple departments on your data platform, go to each department
and ask them, give me one or two data products if you have them or use cases where you

570
00:45:36,719 --> 00:45:44,343
think this is valuable, where you think business people will want to ask a of questions
and talk to your data.

571
00:45:44,343 --> 00:45:44,936
And then...

572
00:45:44,936 --> 00:45:52,356
Just build those semantic views with them, involve them, make sure you get that right and
get it as fast as possible in their hands.

573
00:45:52,356 --> 00:45:54,856
And then learn and iterate on that.

574
00:45:54,856 --> 00:46:00,995
then even when building it for the first time, take some shortcuts and do it in the
Snowflake UI.

575
00:46:00,995 --> 00:46:03,556
Don't industrialize it yet.

576
00:46:03,556 --> 00:46:05,836
Just get that feedback loop going.

577
00:46:05,836 --> 00:46:09,976
And if it brings value, then say, okay, now we do infrastructure as code.

578
00:46:10,016 --> 00:46:14,890
Now we make sure that our setup can scale and that we don't do it for five data products,
but we

579
00:46:14,890 --> 00:46:20,322
can do it for 300 data products in an industrialized way.

580
00:46:20,419 --> 00:46:20,730
Yeah.

581
00:46:20,730 --> 00:46:22,452
You mentioned data products lot.

582
00:46:22,452 --> 00:46:26,722
This seems like a natural fit to extend the data product landscape with agents.

583
00:46:26,722 --> 00:46:40,450
Yes, yes, I think it naturally fits and I think what I can recommend to start is just
build one semantic model per data product because that's already, you already decided that

584
00:46:40,450 --> 00:46:46,002
that is a granularity that makes sense, that that is something on itself that brings
value.

585
00:46:46,003 --> 00:46:54,367
And probably if this is success, what you will notice is that people will want insights
over data products.

586
00:46:54,368 --> 00:47:02,053
You make a new data product that has input ports to others and then that in itself becomes
a thing you query.

587
00:47:02,053 --> 00:47:08,777
Or you could say, yeah, but that requires a new data product for every time that someone
wants to ask natural language questions.

588
00:47:08,777 --> 00:47:15,860
You could make it bit more virtual and say that semantic layer itself, that connects to
multiple data products.

589
00:47:15,860 --> 00:47:20,433
But then the challenge of course becomes if those data products are from different teams,

590
00:47:20,433 --> 00:47:29,253
then what organization structure do you need to define that and collaborate to come to a
good semantic view and what if those have relations to each other?

591
00:47:29,253 --> 00:47:35,074
So does that live in the stream aligned use case teams or does it live somewhere else?

592
00:47:35,074 --> 00:47:36,185
Yeah, indeed.

593
00:47:36,185 --> 00:47:46,601
But based on what you've shown, like you make a semantic uh view, I imagine like I have
multiple teams, they all supply me with or data products with semantic views, and I can

594
00:47:46,601 --> 00:47:49,073
just combine them in a new agent.

595
00:47:49,325 --> 00:47:58,709
Yeah, you could merge them in an agent, but I think typically when you want to combine
them, there is some kind of relationship between the data.

596
00:47:58,709 --> 00:48:02,991
And it can be an obvious relationship like order and order lines.

597
00:48:03,371 --> 00:48:07,273
But it can also be, I have my customers from my marketing department.

598
00:48:07,273 --> 00:48:11,336
I have my customers from my engineering department.

599
00:48:11,336 --> 00:48:11,636
Yeah.

600
00:48:11,636 --> 00:48:17,238
And now I want to combine those and it might not be that clear.

601
00:48:17,372 --> 00:48:18,682
how they link.

602
00:48:18,682 --> 00:48:28,689
It can be simple for a key, but it can also be much more complex where you don't have
different keys and you still want to get some insights over them and create like a global

603
00:48:28,689 --> 00:48:37,654
customer again, which is probably something you wanted to avoid in the first place by
going to data products to avoid having that discussion of talking for one year about the

604
00:48:37,654 --> 00:48:39,115
definition of what a customer is.

605
00:48:39,115 --> 00:48:46,678
So you say you can have your own definition within this department, but then now for this
talk to your data, you might decide how we bring them back.

606
00:48:46,792 --> 00:48:47,853
together again.

607
00:48:47,853 --> 00:48:49,795
So I think that that's the right order to do it.

608
00:48:49,795 --> 00:48:59,644
Split it up, have your own flight or customer per department and then maybe later say okay
but how do those connect again.

609
00:48:59,699 --> 00:49:00,510
Yeah.

610
00:49:00,551 --> 00:49:05,362
And an agent, can it actually run queries across different semantic views?

611
00:49:05,362 --> 00:49:08,828
Or is it always inside a semantic view that it queries?

612
00:49:09,049 --> 00:49:10,870
Well, it's inside a semantic view.

613
00:49:10,870 --> 00:49:16,393
So it will never generate a SQL statement that goes over semantic views.

614
00:49:16,393 --> 00:49:28,981
So if your agent has two tools of the type Cortex Analyst, meaning two semantic views, it
will still try to think through it and try to get to the right answer if it requires a

615
00:49:28,981 --> 00:49:32,543
combination of the two, but not by generating a single SQL query.

616
00:49:32,543 --> 00:49:36,060
It will put the output in the context window.

617
00:49:36,060 --> 00:49:36,565
yes.

618
00:49:36,565 --> 00:49:39,687
it will do the other query and then it will try to combine it.

619
00:49:40,088 --> 00:49:43,130
So it's not super efficient, might be wrong.

620
00:49:43,531 --> 00:49:48,995
But the orchestration layer, the snowflake agent, Cortex agents will still try to achieve
it.

621
00:49:48,995 --> 00:49:52,718
Which is why this discussion of granularity is so important.

622
00:49:52,718 --> 00:49:58,061
What do you put together in semantic view and whatnot, depending on what gets queried
together.

623
00:49:58,313 --> 00:49:59,333
I see.

624
00:49:59,476 --> 00:50:01,138
All right, this was very useful.

625
00:50:01,138 --> 00:50:06,242
Maybe you can do a quick wrap up of what is now your thoughts on Snowflake Intelligence

626
00:50:06,494 --> 00:50:17,917
Yeah, so I think Snowflake Intelligence gives business users an effective way to use data
themselves without having a dependency on the data teams.

627
00:50:17,917 --> 00:50:24,164
I think it's especially useful for ad hoc questions and discovering use cases.

628
00:50:24,188 --> 00:50:32,628
Now what you often notice is that data teams, they get fed with feature intakes and in the
PI planning.

629
00:50:32,628 --> 00:50:34,048
That is what we need to do.

630
00:50:34,048 --> 00:50:41,328
think having something like this available will feed the machine and it will feed the
thinking of people because they can play with it.

631
00:50:41,328 --> 00:50:44,481
They can already verify business impact.

632
00:50:44,481 --> 00:50:51,115
And it will lead to, I want this more or I want this automated or I want this insight
every day.

633
00:50:51,115 --> 00:50:57,539
So I hope it leads to better business focus and that people really get value from it.

634
00:50:57,539 --> 00:51:05,225
Where I see this going is that it becomes a bit the default way for business to interact
with it.

635
00:51:05,246 --> 00:51:09,630
And then even they set up their own flows.

636
00:51:09,630 --> 00:51:23,268
If you think a bit about Claude and Claude skills and Claude co-work, that they will want
to combine doing custom workflows uh with asking questions about data and then basically

637
00:51:23,268 --> 00:51:26,351
almost programming themselves in a non-

638
00:51:26,404 --> 00:51:32,964
in a non-technical way, a workflow that combines your talk to your data with whatever they
find valuable.

639
00:51:32,964 --> 00:51:39,164
And then probably at some point, they also want to want to share that workflow or tool
they built locally with a colleague.

640
00:51:39,324 --> 00:51:42,224
it also brings some challenges with it.

641
00:51:42,878 --> 00:51:49,118
Yeah, then again, industrialization and also access management, these kind of things
become important again, but on a different level.

642
00:51:49,398 --> 00:52:01,045
Exactly, So your data access control is almost the foundation for doing everything else,
at least if you want to use your custom data in your workflows, which I think is almost

643
00:52:01,045 --> 00:52:02,172
always the case.

644
00:52:02,172 --> 00:52:04,203
Yeah, yeah, true.

645
00:52:04,563 --> 00:52:04,973
All right.

646
00:52:04,973 --> 00:52:09,645
Well, what I take from this is I think it's a really nice demo you gave us, Jelle, so
thanks a lot for that.

647
00:52:09,645 --> 00:52:16,689
I see this as a democratization step towards business and also giving people access to
data.

648
00:52:16,689 --> 00:52:24,671
And I think indeed this unlocks new potential and will create more focus on what we
actually need to industrialize and what we need to build as data engineers.

649
00:52:25,212 --> 00:52:25,792
All right.

650
00:52:25,792 --> 00:52:27,254
I think we can wrap it up, Jelle.

651
00:52:27,254 --> 00:52:28,634
Thanks a lot for the demo.

652
00:52:28,634 --> 00:52:33,654
If anybody still has questions on this, please reach out to Jelle on more on Snowflake AI.

653
00:52:33,654 --> 00:52:41,734
We will do some follow up on other videos on talk to your data and some Databricks AI
features as well to compare a bit.

654
00:52:42,054 --> 00:52:45,374
So thanks a lot everybody for watching and we'll see you next time.

655
00:52:45,374 --> 00:52:46,354
Bye bye.

656
00:52:46,413 --> 00:52:47,690
See you, bye bye.