When Azure SQL Becomes an Application Platform- APIs, Automation and AI with Dirceu Resende
Key Takeaways
- Azure SQL Database is evolving beyond traditional data storage to become an active participant in modern application architectures.
- Using features like sp_invoke_external_rest_endpoint, Azure SQL can securely make HTTP requests and communicate directly with external REST APIs and SaaS platforms.
- Databases can now orchestrate workflows independently, such as sending customer feedback to AI models for sentiment analysis or triggering operational alerts without an intermediary application.
- Choosing between Azure SQL Database and Azure SQL Managed Instance depends heavily on whether your application requires independent microservices or traditional features like cross-database queries and SQL CLR.
- Implementing security best practices, such as the principle of least privilege, firewalls, and data masking, is crucial when opening database communication to external endpoints.
Most developers think of a database as the place where an application stores information. Tables, transactions, indexes, stored procedures, reporting, backups, and reliable data storage are the traditional responsibilities we associate with SQL. But what happens when the database itself becomes an active participant in the application architecture? In this episode of M365 FM, Mirko Peters talks with Dirceu Resende about how Azure SQL Database is evolving beyond traditional data storage. The conversation explores REST API integration, automation, external services, security, performance, Microsoft Fabric, Power BI, AI, vector search, RAG, observability, and the changing architectural role of databases inside modern applications. Dirceu brings a combination of database, business intelligence, Microsoft, and community experience to the discussion. His career spans database development and performance tuning, business intelligence, Power BI, and cloud technologies, including previous work at Microsoft as a Senior Program Manager for Power BI.
AZURE SQL DATABASE IS BECOMING MORE THAN A DATABASE
Azure SQL Database provides the familiar relational capabilities of SQL Server while removing much of the infrastructure management traditionally associated with running a production database. Organizations can use a managed cloud database without having to directly maintain the underlying operating system and infrastructure. Azure also provides capabilities around security, availability, backups, performance, and integration with other cloud services. But Dirceu argues that one of the most interesting developments is what Azure SQL can now do outside the traditional boundaries of the database. Azure SQL Database can make HTTP requests and communicate with external services. This creates scenarios where the database can participate directly in workflows that previously required another application or integration layer. The database is no longer necessarily waiting passively for an application to tell it what to do.
AZURE SQL DATABASE VS MANAGED INSTANCE VS SQL SERVER
Choosing the correct SQL deployment model still depends heavily on application architecture. Dirceu explains that Azure SQL Managed Instance provides an experience closer to traditional SQL Server. It supports scenarios involving multiple databases within an instance and capabilities that organizations migrating existing SQL Server workloads may require. Azure SQL Database is more naturally aligned with independent databases and architectures where applications or microservices have separate database resources. If an application depends heavily on cross-database queries, linked services, SQL CLR, or other traditional SQL Server capabilities, migration may require architectural changes rather than simply moving the existing database into Azure SQL Database unchanged. This makes workload assessment an important part of any SQL modernization strategy.
WHY AZURE SQL FITS MODERN APPLICATION ARCHITECTURES
Moving data into Azure can make integration with other Azure and Microsoft services significantly easier. Applications running through services such as Azure App Service, containers, or Kubernetes can operate closer to the database. Microsoft Fabric and Power BI can also consume Azure SQL information through increasingly integrated architectures. Azure SQL Database additionally receives cloud capabilities that may arrive later in traditional SQL Server releases. Dirceu highlights sp_invoke_external_rest_endpoint as an important example because it allows Azure SQL Database to communicate directly with REST endpoints. That seemingly simple capability fundamentally changes what developers can consider doing inside or close to the database.
WHEN THE DATABASE BECOMES AN ACTIVE APPLICATION COMPONENT
Traditional application architecture often places the database behind an application layer. The application receives requests, executes business logic, communicates with other systems, and finally reads or writes information to the database. That separation remains useful and appropriate in many architectures. But Azure SQL can now perform more activities independently. Dirceu describes scenarios where the database can retrieve information from an external API, combine it with application data, work with information stored in Azure Blob Storage, and initiate other processes without requiring a separate application to orchestrate every individual step. This does not mean developers should move every application function into SQL. It means architects now have another option.
CALLING REST APIS DIRECTLY FROM AZURE SQL
REST API integration is one of the central topics of this episode. If an external service provides an appropriate API, Azure SQL can potentially communicate with it. This opens the door to integrations with communication platforms, SaaS applications, Microsoft 365 services, AI platforms, monitoring systems, and custom applications. The database can therefore respond to business information rather than simply storing it. Imagine an order reaching the database. Instead of waiting for another application to periodically discover the new order, a database-driven process could potentially initiate an appropriate external action. This creates interesting opportunities for event-driven and data-driven architectures.
USING AI TO ANALYZE CUSTOMER FEEDBACK
One example discussed in the conversation involves customer feedback. Imagine an application that stores thousands of customer comments inside Azure SQL Database. Manually reading every comment and classifying whether the customer is satisfied, unhappy, extremely dissatisfied, or enthusiastic quickly becomes impractical. Azure SQL can potentially send that information to an AI or cognitive service through an API. The external service analyzes the text and returns a classification or score. That information can then be stored alongside the original customer feedback. The business could identify extremely dissatisfied customers requiring immediate attention or particularly satisfied customers relevant to another business process. The database becomes part of the AI workflow rather than simply the final storage destination.
AI-POWERED DATA CLEANING
Another practical scenario involves data quality. Anyone who has worked with CSV files, spreadsheets, FTP integrations, or external data feeds knows how inconsistent incoming information can become. Locations can be misspelled. Values may use different formats. Names can contain unexpected variations. Hundreds of columns can require complex transformation rules. Historically, developers and data engineers might create substantial amounts of custom code to normalize this information. Dirceu discusses how AI services can potentially help classify, standardize, and clean incoming data. Instead of attempting to anticipate every possible incorrect value through manually created rules, the database can send problematic information to an AI service and use the result as part of the data preparation workflow.
EMAIL, SMS, TEAMS, SLACK AND EXTERNAL SERVICES
REST APIs also make communication scenarios possible. Dirceu discusses integrations where Azure SQL could work with services capable of sending emails, SMS messages, WhatsApp messages, Telegram notifications, or Slack messages. A database could therefore participate in operational alerting. Imagine inventory falling below a defined threshold. A scheduled database process detects the condition and initiates a notification to the employee responsible for purchasing. The same principle could apply to failed processes, unusual business conditions, customer activity, or operational alerts. The important architectural change is that the trigger can originate directly from information already inside the database.
MICROSOFT 365 AND THIRD-PARTY API INTEGRATION
The same concept extends beyond simple notifications. Dirceu discusses the potential to integrate with Microsoft 365 services and third-party platforms when appropriate APIs are available. A business event occurring inside the database could potentially create another action in a connected business application. For example, information could result in creating a task, updating another system, creating a lead, or initiating another business process. The exact possibilities depend on the capabilities and authentication mechanisms exposed by the target service. This turns REST API support into a general integration capability rather than a feature designed for one specific scenario.
SYNCHRONOUS VS ASYNCHRONOUS DATABASE INTEGRATION
Not every business process should happen immediately. The episode distinguishes between synchronous and asynchronous integration patterns. A synchronous process could respond when information reaches the database. An order is inserted, a database process detects the event, and another action happens immediately. An asynchronous approach works differently. A scheduled process might periodically collect everything that happened during a defined period and then perform a batch action. For example, rather than sending ten individual notifications for ten orders, the system could generate one summary containing all ten orders. The right architecture depends on whether the business process requires immediate action or whether delayed and grouped processing is more appropriate.
Become a supporter of this podcast: https://www.spreaker.com/podcast/m365-fm-modern-work-security-and-productivity-with-microsoft-365--6704921/support.
π Want to be part of m365.fm?
Then stop just listening… and start showing up.
π Connect with me on LinkedIn and let’s make something happen:
- ποΈ Be a podcast guest and share your story
- π§ Host your own episode (yes, seriously)
- π‘ Pitch topics the community actually wants to hear
- π Build your personal brand in the Microsoft 365 space
This isn’t just a podcast — it’s a platform for people who take action.
π₯ Most people wait. The best ones don’t.
π Connect with me on LinkedIn and send me a message:
"I want in"
Let’s build something awesome π
Frequently Asked Questions
What is Azure SQL Database?
Azure SQL Database is a fully managed cloud relational database service built on the SQL Server engine that removes the need to manually manage underlying infrastructure and operating systems.
How can Azure SQL Database integrate with REST APIs?
Azure SQL Database can communicate directly with external REST endpoints and services using built-in capabilities like sp_invoke_external_rest_endpoint, enabling event-driven workflows and HTTP requests directly from the database.
What is the difference between Azure SQL Database and Azure SQL Managed Instance?
Azure SQL Database is designed for independent single databases ideal for modern microservices, whereas Azure SQL Managed Instance provides an experience closer to traditional SQL Server, supporting multiple databases per instance and cross-database queries.
How can AI be used inside Azure SQL Database?
Azure SQL can send stored dataβsuch as customer feedback or messy incoming filesβto external AI and cognitive services via API to perform tasks like text classification, sentiment analysis, and data cleaning.
00:00:00,000 --> 00:00:03,600
Welcome everybody to the MC65 of M podcast.
2
00:00:03,600 --> 00:00:06,060
The podcast where we explore the technologies,
3
00:00:06,060 --> 00:00:09,960
architectures and people shaping the Microsoft ecosystem.
4
00:00:09,960 --> 00:00:12,960
When most people think about Azure SQL database,
5
00:00:12,960 --> 00:00:15,880
they think about tables, transactions,
6
00:00:15,880 --> 00:00:19,560
store procedures, reporting and reliable data storage.
7
00:00:19,560 --> 00:00:21,720
But what if the database could become
8
00:00:21,720 --> 00:00:25,440
an active participant in one-on-a-pickation architecture?
9
00:00:25,440 --> 00:00:28,200
What is Azure SQL called
10
00:00:28,200 --> 00:00:32,080
securely instant the rest API's trigger automated process,
11
00:00:32,080 --> 00:00:35,040
connect with external service or support AI applications
12
00:00:35,040 --> 00:00:38,400
and help orchestrate intelligent workflows without requiring
13
00:00:38,400 --> 00:00:41,480
a large amount of external application code?
14
00:00:41,480 --> 00:00:44,320
That is exactly what we're exploring today.
15
00:00:44,320 --> 00:00:46,400
My guest is DeCruiResand.
16
00:00:46,400 --> 00:00:48,640
I always valid ride.
17
00:00:48,640 --> 00:00:50,400
Yeah, that's fine.
18
00:00:50,400 --> 00:00:54,520
Yeah, he's a specialist in databases and business intelligence
19
00:00:54,520 --> 00:00:58,160
who has been working in the data field since 2013.
20
00:00:58,160 --> 00:01:01,640
He could previously work at Microsoft,
21
00:01:01,640 --> 00:01:03,840
a senior program manager for Power BI
22
00:01:03,840 --> 00:01:07,840
and is currently an Azure Cloud administrator at Ryanair.
23
00:01:07,840 --> 00:01:11,360
He's also deeply involved in the technology community
24
00:01:11,360 --> 00:01:15,120
and has presented at more than 50 in-person events
25
00:01:15,120 --> 00:01:17,440
and over 300 online events.
26
00:01:17,440 --> 00:01:22,400
He was a part of the Palian Yaira's Brazil.
27
00:01:22,400 --> 00:01:23,560
I don't know.
28
00:01:23,560 --> 00:01:27,680
A YouTube channel with more than 160,000 subscribers
29
00:01:27,680 --> 00:01:29,640
and some million views.
30
00:01:29,640 --> 00:01:35,000
His website contains over 400 technical articles,
31
00:01:35,000 --> 00:01:37,600
has received more than 4 million views
32
00:01:37,600 --> 00:01:42,000
and has become one of the 10 America's most widely accessed
33
00:01:42,000 --> 00:01:45,120
Portuguese language resources for the Azure professionals.
34
00:01:45,120 --> 00:01:47,720
Today, we discuss Azure SQL database,
35
00:01:47,720 --> 00:01:51,680
rest API integration security automation, AI,
36
00:01:51,680 --> 00:01:57,680
Azure Tech Characters, Observability,
37
00:01:57,680 --> 00:01:59,520
and the change in the world of database
38
00:01:59,520 --> 00:02:00,920
inside modern applications.
39
00:02:00,920 --> 00:02:04,080
DeCruiRes, welcome to the N165 show.
40
00:02:04,080 --> 00:02:05,720
Thank you, Mirko.
41
00:02:05,720 --> 00:02:09,120
Thank you for everybody that is listening to us.
42
00:02:09,120 --> 00:02:10,800
It's a pleasure to be here.
43
00:02:10,800 --> 00:02:12,920
And I hope you have a very good chat
44
00:02:12,920 --> 00:02:17,640
and people can learn about Azure SQL DB
45
00:02:17,640 --> 00:02:21,600
and all data technology that you're going to talk about.
46
00:02:21,600 --> 00:02:24,600
Yeah, before we deep dive into the topic,
47
00:02:24,600 --> 00:02:27,960
can you a little bit tell about yourself
48
00:02:27,960 --> 00:02:31,520
and how did your career in data start,
49
00:02:31,520 --> 00:02:35,440
especially in the Microsoft ecosystem?
50
00:02:35,440 --> 00:02:37,640
Yeah, sure.
51
00:02:37,640 --> 00:02:42,000
So I've been in an ironier's old for a while now.
52
00:02:42,000 --> 00:02:46,800
I started with technology maybe 20 years ago.
53
00:02:46,800 --> 00:02:49,880
I started with computer maintenance.
54
00:02:49,880 --> 00:02:55,360
Most of people at that age started with something like this.
55
00:02:55,360 --> 00:03:00,360
The IT was not as evolved as it is right now.
56
00:03:00,360 --> 00:03:05,080
It was just baby steps at the time.
57
00:03:05,080 --> 00:03:09,640
I always had a lot of interest into programming.
58
00:03:09,640 --> 00:03:15,360
So I started with programming the coding.
59
00:03:15,360 --> 00:03:21,200
Then when you code, usually you have a lot of contact
60
00:03:21,200 --> 00:03:26,840
with databases because pretty much every application
61
00:03:26,840 --> 00:03:33,040
starts with interacting with the database,
62
00:03:33,040 --> 00:03:37,480
like starting data, managing data, and so on.
63
00:03:37,480 --> 00:03:40,640
And I really like this experience.
64
00:03:40,640 --> 00:03:47,320
I was very passionate about starting a little bit of performance
65
00:03:47,320 --> 00:03:52,800
because I like very much this topic
66
00:03:52,800 --> 00:03:57,480
on both application side and also on database side.
67
00:03:57,480 --> 00:04:01,600
And I really enjoyed this part of the database performance
68
00:04:01,600 --> 00:04:06,600
turning, especially because at least in my point of view,
69
00:04:06,600 --> 00:04:12,000
it's easier to test than in an application that you need to code.
70
00:04:12,000 --> 00:04:16,120
You need to test, you need to deploy, you need to build.
71
00:04:16,120 --> 00:04:19,040
In database, you just need to type F5.
72
00:04:19,040 --> 00:04:19,640
That's it.
73
00:04:19,640 --> 00:04:23,320
You can just run what you're trying to do.
74
00:04:23,320 --> 00:04:26,800
So if I create a procedure of function,
75
00:04:26,800 --> 00:04:29,120
I can just run in one line of code.
76
00:04:29,120 --> 00:04:34,680
With an app, usually, you have to build way more stuff to test
77
00:04:34,680 --> 00:04:36,680
than database.
78
00:04:36,680 --> 00:04:41,720
So I get no more about database.
79
00:04:41,720 --> 00:04:47,080
I started to study them to understand better how it works.
80
00:04:47,080 --> 00:04:53,400
I study other topics, not just like performance,
81
00:04:53,400 --> 00:04:57,480
good pratics, developing better solutions with database
82
00:04:57,480 --> 00:05:02,560
because sometimes you have to write a lot of code.
83
00:05:02,560 --> 00:05:05,200
And the database already has a solution for it
84
00:05:05,200 --> 00:05:09,240
with way more efficient way.
85
00:05:09,240 --> 00:05:15,440
And then after you have quite a good experience
86
00:05:15,440 --> 00:05:20,320
on the database itself, I think I reached this point
87
00:05:20,320 --> 00:05:24,560
in 2017, in '18, more or less.
88
00:05:24,560 --> 00:05:29,360
It went, Power BI became very popular.
89
00:05:29,360 --> 00:05:32,760
A lot of people from database background were migrating
90
00:05:32,760 --> 00:05:36,240
to business intelligence.
91
00:05:36,240 --> 00:05:42,280
AI was at the beginning of AI, machine learning, and so on.
92
00:05:42,280 --> 00:05:47,400
So I thought that it was a good idea at the time.
93
00:05:47,400 --> 00:05:49,880
I believe it was a good idea right now.
94
00:05:49,880 --> 00:05:56,720
But it was the beginning of professional business intelligence.
95
00:05:56,720 --> 00:05:58,160
Business intelligence is very old,
96
00:05:58,160 --> 00:06:05,760
but it was not that high demand that it is in the last maybe 10 years.
97
00:06:05,760 --> 00:06:09,120
And this is when I got into working
98
00:06:09,120 --> 00:06:15,600
with business intelligence for BI warehouses and other technologies.
99
00:06:15,600 --> 00:06:20,360
And this is what I usually do on my databases currently.
100
00:06:20,360 --> 00:06:23,800
And that's my summary.
101
00:06:23,800 --> 00:06:28,800
Awesome. You previously worked for Microsoft in a senior program manager
102
00:06:28,800 --> 00:06:30,080
for Power BI.
103
00:06:30,080 --> 00:06:34,800
Can you tell us a little bit about this work,
104
00:06:34,800 --> 00:06:39,720
what this role does and how it's how this helps you
105
00:06:39,720 --> 00:06:43,600
connect to the global community?
106
00:06:43,600 --> 00:06:45,080
Yes, definitely.
107
00:06:45,080 --> 00:06:48,440
I think it was a very good experience to my career.
108
00:06:48,440 --> 00:06:55,160
I learned a lot of new things that I was not used to because this role
109
00:06:55,160 --> 00:06:59,760
of program manager, especially at Microsoft,
110
00:06:59,760 --> 00:07:07,400
you are not very deep connected in terms of hands-on.
111
00:07:07,400 --> 00:07:11,560
Usually you work more into your creative specifications
112
00:07:11,560 --> 00:07:16,000
and requirements for features that the developers,
113
00:07:16,000 --> 00:07:21,600
the code developers that will implement on the Power BI 2 or the engine.
114
00:07:21,600 --> 00:07:26,720
So it's not all my career.
115
00:07:26,720 --> 00:07:31,400
I was on the other side that I was receiving the requirements
116
00:07:31,400 --> 00:07:36,000
and actually trying to create an analysis of SQL,
117
00:07:36,000 --> 00:07:43,440
create a pipeline implement a security mechanism on a database.
118
00:07:43,440 --> 00:07:47,320
So when I joined Microsoft, it was the opposite way.
119
00:07:47,320 --> 00:07:51,960
So I was writing the requirements to other people to implement.
120
00:07:51,960 --> 00:07:56,600
So it was a very different experience.
121
00:07:56,600 --> 00:08:00,480
I can say that.
122
00:08:00,480 --> 00:08:05,920
I think I based on this experience and all my other experience
123
00:08:05,920 --> 00:08:07,160
in my career.
124
00:08:07,160 --> 00:08:12,000
I'm still more into actually hands-on,
125
00:08:12,000 --> 00:08:15,240
more technical, personal, implementing solutions
126
00:08:15,240 --> 00:08:18,600
than writing the requirements.
127
00:08:18,600 --> 00:08:22,160
I think it's a whole different area.
128
00:08:22,160 --> 00:08:26,440
You need to have a whole different mindset
129
00:08:26,440 --> 00:08:31,960
because everything needs to be very, very perfect written
130
00:08:31,960 --> 00:08:33,000
to other persons.
131
00:08:33,000 --> 00:08:38,240
You read that file or that documents to understand.
132
00:08:38,240 --> 00:08:45,120
And you need to think and try to cover all the possible different ideas
133
00:08:45,120 --> 00:08:47,760
that somebody can have.
134
00:08:47,760 --> 00:08:50,840
So you need to try to cover everything.
135
00:08:50,840 --> 00:08:54,880
So the feature delivered is exactly what you thought
136
00:08:54,880 --> 00:08:57,320
when you create the documents.
137
00:08:57,320 --> 00:09:02,080
It's a little bit different when you can use your own creativity,
138
00:09:02,080 --> 00:09:06,560
your own ideas to implement something.
139
00:09:06,560 --> 00:09:07,360
Awesome.
140
00:09:07,360 --> 00:09:12,680
You are now a specialist for the Azure SQL database.
141
00:09:12,680 --> 00:09:16,840
For someone who has not followed the platform closely,
142
00:09:16,840 --> 00:09:22,320
how will you describe Azure SQL database today?
143
00:09:22,320 --> 00:09:29,760
I think if you need the database and you don't want to have any headache,
144
00:09:29,760 --> 00:09:39,360
managing backups, performance, having to concern in terms of
145
00:09:39,360 --> 00:09:47,880
RANs or where, virus, and a lot of security threads that you may have.
146
00:09:47,880 --> 00:09:52,720
The Azure SQL database is a platform.
147
00:09:52,720 --> 00:09:59,280
You just created with just some clicks on Azure portal.
148
00:09:59,280 --> 00:10:03,760
You have a very professional database so you can use it.
149
00:10:03,760 --> 00:10:07,280
You have a lot of different tools already available for you.
150
00:10:07,280 --> 00:10:12,920
And also you have the power of SQL server that has been one of the leaders of
151
00:10:12,920 --> 00:10:19,760
the market in the last 20 years, for sorry, in the last 20 years.
152
00:10:19,760 --> 00:10:27,600
And you have also a lot of good and very useful stuff like you can now make
153
00:10:27,600 --> 00:10:34,640
ATP requests so we can integrate your database with pretty much any service or
154
00:10:34,640 --> 00:10:41,920
application directly without needing an application to control this workflow.
155
00:10:41,920 --> 00:10:47,120
So from the database, you can connect to let's say chat TPPT API,
156
00:10:47,120 --> 00:10:52,920
use this API with the data you have on your database and process data,
157
00:10:52,920 --> 00:10:58,240
make post requests to change data on other services.
158
00:10:58,240 --> 00:11:05,160
And you have a very good job application on the database that can help you to
159
00:11:05,160 --> 00:11:08,000
schedule and automate process.
160
00:11:08,000 --> 00:11:15,080
So it's a very complete database that provides you more than just a regular database.
161
00:11:15,080 --> 00:11:19,560
You have a lot of different features, a lot of different features for
162
00:11:19,560 --> 00:11:24,240
form us for many many ability.
163
00:11:24,240 --> 00:11:29,960
You have a lot of different tools to better integrate your application with
164
00:11:29,960 --> 00:11:32,680
the database in terms of security.
165
00:11:32,680 --> 00:11:38,280
If your application is hosted on Azure, you can have manage identity,
166
00:11:38,280 --> 00:11:43,200
which is a very secure approach to connect an application with the database
167
00:11:43,200 --> 00:11:45,720
because it's a passwordless approach.
168
00:11:45,720 --> 00:11:52,880
So we don't have a password to manage to rotate or to somebody try to
169
00:11:52,880 --> 00:11:55,560
get an attacker application.
170
00:11:55,560 --> 00:12:02,120
So I think it's a very mature database for pretty much any application right now.
171
00:12:02,120 --> 00:12:08,520
>> Yeah, and where do the Azure SQL database fit alongside Azure SQL management
172
00:12:08,520 --> 00:12:10,600
instance and SQL server?
173
00:12:12,200 --> 00:12:16,480
Yeah, the managed instance, the experience in the managed instance is very
174
00:12:16,480 --> 00:12:22,800
similar what we have with the on-premise SQL server database.
175
00:12:22,800 --> 00:12:29,440
Because you have an instance that can hold various databases.
176
00:12:29,440 --> 00:12:35,080
You have the SQL server agent that you can control the jobs.
177
00:12:35,080 --> 00:12:43,280
You can publish and create SQL CLR procedures using botnet code,
178
00:12:43,280 --> 00:12:45,080
which is very, very powerful.
179
00:12:45,080 --> 00:12:51,000
The difference from the Azure SQL DB is that the SQL DB,
180
00:12:51,000 --> 00:12:56,440
you're working on a single database.
181
00:12:56,440 --> 00:13:01,240
So it's very useful, especially for micro services because you can have
182
00:13:01,240 --> 00:13:05,440
multiple smaller database independence.
183
00:13:05,440 --> 00:13:12,200
And so you're not sharing resources with other databases and other applications.
184
00:13:12,200 --> 00:13:16,760
You can have one server with a different database, but
185
00:13:16,760 --> 00:13:22,560
each database can have a different capacity with a different pricing.
186
00:13:22,560 --> 00:13:25,720
And also they are totally independent.
187
00:13:25,720 --> 00:13:28,720
So if you have an application that you need to use,
188
00:13:28,720 --> 00:13:32,360
let's say cross-query databases, so
189
00:13:32,360 --> 00:13:37,440
you need to create a joint that you need to join tables from different databases.
190
00:13:37,440 --> 00:13:41,240
The best tool for you is going to be the managed instance.
191
00:13:41,240 --> 00:13:45,520
If you don't have this scenario, you really want to have totally different
192
00:13:45,520 --> 00:13:50,480
and independent databases, especially for micro services approach.
193
00:13:50,480 --> 00:13:54,160
Then the Azure SQL DB should be your best option right now.
194
00:13:55,640 --> 00:14:02,600
Awesome. And can organizations move existing database to Azure SQL
195
00:14:02,600 --> 00:14:05,640
without changing the surrounding architecture?
196
00:14:05,640 --> 00:14:13,600
>> It's possible, but depending on how the application was designed,
197
00:14:13,600 --> 00:14:20,320
it could be a problem, especially because most of on-premise applications,
198
00:14:20,320 --> 00:14:25,360
it's not, it's very common to have linked service,
199
00:14:25,360 --> 00:14:30,240
your other instance, or to have cross database queries.
200
00:14:30,240 --> 00:14:37,680
To use, let's say, SQL CLR procedures or functions using .NET code,
201
00:14:37,680 --> 00:14:41,040
which is not supported by the SQL database.
202
00:14:41,040 --> 00:14:48,640
So if you have some features that are not supported,
203
00:14:48,640 --> 00:14:55,000
you can have some problems, especially because depending on the tier you're using,
204
00:14:55,840 --> 00:15:01,600
it could be slower than the tier you have on your own premise.
205
00:15:01,600 --> 00:15:05,920
Because the cloud, the easiest solution you have,
206
00:15:05,920 --> 00:15:08,200
the most expensive is going to be.
207
00:15:08,200 --> 00:15:11,520
So if you have managed service,
208
00:15:11,520 --> 00:15:18,560
probably is going to be more expensive than your VM or your physical server
209
00:15:18,560 --> 00:15:21,960
on your company, your data center.
210
00:15:21,960 --> 00:15:29,000
But definitely, with the managed service, the experience will be much easier,
211
00:15:29,000 --> 00:15:31,880
and it's going to be way better to maintain,
212
00:15:31,880 --> 00:15:38,000
because they don't need to be an expert to create and maintain a SQL database.
213
00:15:38,000 --> 00:15:42,640
But if you have an on-premise database on a critical production application,
214
00:15:42,640 --> 00:15:46,240
then you need to have someone from networking, from security,
215
00:15:48,240 --> 00:15:55,800
that understands a lot of turning, or from a stunning, you need somebody that understands about storage.
216
00:15:55,800 --> 00:16:00,840
So you need to have a lot of different people working on to maintain
217
00:16:00,840 --> 00:16:04,880
and to maintain an on-premise application.
218
00:16:04,880 --> 00:16:11,280
On cloud, it's easier because a lot of responsibilities,
219
00:16:11,280 --> 00:16:16,080
Microsoft holds for you, so you don't need to maintain everything.
220
00:16:17,920 --> 00:16:20,680
Yeah, storage is a good word.
221
00:16:20,680 --> 00:16:27,560
Your central message is that Azure SQL database can extend far beyond traditional data storage.
222
00:16:27,560 --> 00:16:30,320
What does it mean in practice?
223
00:16:30,320 --> 00:16:32,920
Sorry, can you repeat, please?
224
00:16:32,920 --> 00:16:40,360
Yeah, the Azure SQL database can extend far beyond the traditional data storage.
225
00:16:40,360 --> 00:16:44,320
Can you a little bit explain what it means in practice?
226
00:16:44,320 --> 00:16:54,320
Yes, so if you move your data from the on-premise SQL server to an Azure SQL database or a managing instance,
227
00:16:54,320 --> 00:17:01,040
because you're already on Azure, it's going to be way easier to integrate with different applications
228
00:17:01,040 --> 00:17:03,160
and also different servers.
229
00:17:03,160 --> 00:17:06,440
So let's say you have a fabric or a Power BI,
230
00:17:06,440 --> 00:17:12,560
or if you have an application using App Service or Kubernetes or Docker,
231
00:17:12,560 --> 00:17:18,720
it's way easier to access this data than if you have this on-premise.
232
00:17:18,720 --> 00:17:28,800
You can have also a fabric in memory that you can replicate this data from the Azure SQL DB to fabric seamlessly,
233
00:17:28,800 --> 00:17:38,040
in a way easier way than having to create a job that copies on a schedule job to fabric.
234
00:17:38,040 --> 00:17:43,560
Also, because you have always the latest version of SQL server,
235
00:17:43,560 --> 00:17:52,000
you have always the latest new features, especially the SP VWREST endpoint,
236
00:17:52,000 --> 00:18:00,400
which you can use to call HTTP requests and integrate with different services.
237
00:18:00,400 --> 00:18:11,360
The SQL server 2025 got this feature, but on Azure SQL, you could do this,
238
00:18:11,360 --> 00:18:14,600
I think it was two or three years ago,
239
00:18:14,600 --> 00:18:19,160
and people that are using the on-premise only got this this year.
240
00:18:19,160 --> 00:18:27,880
I think this year, I think it was in the last quarter of 2025, actually,
241
00:18:27,880 --> 00:18:31,000
that the 25 version was released.
242
00:18:31,000 --> 00:18:41,560
But people that are using the SQL DB got this way earlier than people are using the on-premise.
243
00:18:41,560 --> 00:18:42,720
>> Okay.
244
00:18:42,720 --> 00:18:53,160
What does it mean for database to be participate actively in an application workflow?
245
00:18:53,160 --> 00:18:57,600
>> Well, the database for me is the most important part in an application.
246
00:18:57,600 --> 00:19:02,080
Because if usually the code is version I don't get,
247
00:19:02,080 --> 00:19:07,600
so if let's say somebody hacked into the application and they destroyed the code,
248
00:19:07,600 --> 00:19:13,720
destroyed the resource, you can easily create the new,
249
00:19:13,720 --> 00:19:20,720
you can easily create the application again on a new resource and a new server,
250
00:19:20,720 --> 00:19:22,760
getting the code from Git.
251
00:19:22,760 --> 00:19:27,560
But if somebody destroys your data and they also destroys your backup,
252
00:19:27,560 --> 00:19:31,760
they probably most companies can go bankrupt.
253
00:19:31,760 --> 00:19:34,840
They can end because they don't have any data anymore.
254
00:19:34,840 --> 00:19:38,080
If you don't have a very good backup strategy,
255
00:19:38,080 --> 00:19:43,880
like having this stored into different storage types,
256
00:19:43,880 --> 00:19:48,520
this could be the end of for the company.
257
00:19:48,520 --> 00:19:52,840
So it's very important to have this deep integration,
258
00:19:52,840 --> 00:19:55,400
deep integration with the application.
259
00:19:55,400 --> 00:20:02,080
Also, the database needs a special attention on it,
260
00:20:02,080 --> 00:20:07,400
because you can version code, but you cannot version data.
261
00:20:07,400 --> 00:20:11,640
So data is pretty critical and pretty important.
262
00:20:11,640 --> 00:20:19,760
>> So I think I'll be moving away from the traditional idea that
263
00:20:19,760 --> 00:20:25,000
the database should remain isolated behind the application layer.
264
00:20:25,000 --> 00:20:30,200
>> Yeah, no, I agree with this approach.
265
00:20:30,200 --> 00:20:35,440
I mean, usually the application is open to internet, so it can access.
266
00:20:35,440 --> 00:20:37,600
If it's not an internal application,
267
00:20:37,600 --> 00:20:42,920
you can access from any public IPry, usually it's open.
268
00:20:42,920 --> 00:20:48,640
But database is usually behind a firewall, a virtual network,
269
00:20:48,640 --> 00:20:54,600
that only on a private Dnet can access the database.
270
00:20:54,600 --> 00:20:59,080
So it's a very good strategy trying to protect and reduce
271
00:20:59,080 --> 00:21:03,840
the surface area for you try to attack the database.
272
00:21:03,840 --> 00:21:12,680
But nowadays, the database is not just a place to store the database,
273
00:21:12,680 --> 00:21:18,680
can do way more right now, because even in the past,
274
00:21:18,680 --> 00:21:22,160
because when you install, for example, the SQL server,
275
00:21:22,160 --> 00:21:28,320
you also get the analysis service, which is all up to the integration service,
276
00:21:28,320 --> 00:21:32,160
which is an ETL2, and also the reporting service,
277
00:21:32,160 --> 00:21:37,720
which is a pixel perfect to just like crystal reports.
278
00:21:37,720 --> 00:21:43,840
So you have this since 2005, I guess, or 2008.
279
00:21:43,840 --> 00:21:51,360
But now with these integrations, with the possibility to automate jobs
280
00:21:51,360 --> 00:21:57,400
and to create automated executions to integrative different services,
281
00:21:57,400 --> 00:22:00,520
different apps to integrative AI.
282
00:22:00,520 --> 00:22:05,240
So we can use right now AI to actually process the data
283
00:22:05,240 --> 00:22:08,080
that you got from the application.
284
00:22:08,080 --> 00:22:16,120
Now the database can do much more than it was used to a few years ago.
285
00:22:16,120 --> 00:22:23,160
So the database now can be more independent from the application.
286
00:22:23,160 --> 00:22:29,160
Definitely the application usually is the main source of data for the database.
287
00:22:29,160 --> 00:22:31,080
But now we can have more sources.
288
00:22:31,080 --> 00:22:37,800
I can create a job that queries data from an external API store into a database
289
00:22:37,800 --> 00:22:41,480
across the data with the data that came from the application.
290
00:22:41,480 --> 00:22:48,000
I also can get the data from the blub storage that the user uploaded, XL file,
291
00:22:48,000 --> 00:22:52,000
and process all these data together without needing an application
292
00:22:52,000 --> 00:22:56,960
to actually orchestrate all this data flow, for example.
293
00:22:56,960 --> 00:23:05,280
What do new possibilities become available when Azure SQL can securely
294
00:23:05,280 --> 00:23:10,000
communicate well with external services?
295
00:23:10,000 --> 00:23:18,520
Yes, so first of all, the firewall will be our first barrier in terms of security.
296
00:23:18,520 --> 00:23:27,400
So if you can block external traffic from your database,
297
00:23:27,400 --> 00:23:32,520
you already got rid of most of the problems you can have.
298
00:23:32,520 --> 00:23:36,840
But you can also have other tools like,
299
00:23:36,840 --> 00:23:43,160
let's say I created an integration with an external application.
300
00:23:43,160 --> 00:23:48,240
So I created a new user for this application to access the data.
301
00:23:48,240 --> 00:23:52,160
If this application is accessing sensitive data,
302
00:23:52,160 --> 00:23:55,320
I can use the name data masking to mask that data.
303
00:23:55,320 --> 00:24:01,200
So even if somebody can compromise this tradition for this application,
304
00:24:01,200 --> 00:24:05,760
it will see mask data.
305
00:24:05,760 --> 00:24:12,200
This dynamic data masking is not that secure because you cannot definitely,
306
00:24:12,200 --> 00:24:18,840
if you have the credential, you can try to explore using simple select comments.
307
00:24:18,840 --> 00:24:21,640
You try to guess the original value.
308
00:24:21,640 --> 00:24:26,240
Even if you cannot see, but I can guess, let's see, I have a salary column.
309
00:24:26,240 --> 00:24:28,840
I don't know this value, but I can try to guess,
310
00:24:28,840 --> 00:24:34,960
let's see if it's below 10, 10k, okay, it's below 10k, the month salary.
311
00:24:34,960 --> 00:24:39,440
Let's see if it's below 5k, no, it's not, so it's between 5 and 10.
312
00:24:39,440 --> 00:24:41,280
So I can try to guess.
313
00:24:41,280 --> 00:24:48,520
But you have also other features like column level security.
314
00:24:48,520 --> 00:24:53,640
So you can hide certain columns from a table, from a specific credential.
315
00:24:53,640 --> 00:24:58,320
You can also have column encryption, which you can actually encrypt the column.
316
00:24:58,320 --> 00:25:07,040
You can have also always encrypted, which is probably the most secure technique you can apply
317
00:25:07,040 --> 00:25:13,520
to a SQL Server database, which you're going to have a private and a public key,
318
00:25:13,520 --> 00:25:18,760
to encrypt and decrypt the original data.
319
00:25:18,760 --> 00:25:25,360
So even if the DBA doesn't control this key, even if the DBA is a CZ,
320
00:25:25,360 --> 00:25:32,640
that means it will not be able to see the original data because this person doesn't hold the key for it.
321
00:25:32,640 --> 00:25:37,440
So it's probably the best approach for it, but it's a little bit complicated to implement
322
00:25:37,440 --> 00:25:41,840
because you have some limitations.
323
00:25:41,840 --> 00:25:48,920
It's hard for an application to not able to see the actual data,
324
00:25:48,920 --> 00:25:52,880
so it can break some applications on it, so you need to prepare.
325
00:25:52,880 --> 00:25:57,680
It's not just a setting that you turn on and that's automatically encrypted
326
00:25:57,680 --> 00:25:59,480
and the application will just work fine.
327
00:25:59,480 --> 00:26:04,960
So we need to create a project, we need to study a little bit of the limitations.
328
00:26:04,960 --> 00:26:09,280
You need to adjust as your application to see if it's going to work.
329
00:26:09,280 --> 00:26:17,480
But you have a lot of different ways, but the pre, the pre,
330
00:26:17,480 --> 00:26:22,520
the most basic stuff is probably your best friends on it.
331
00:26:22,520 --> 00:26:31,280
So it's going to be the firewall, try to separate the applications and integrations using different users.
332
00:26:31,280 --> 00:26:38,280
Using the list, what is it called?
333
00:26:38,280 --> 00:26:43,520
The principle of list privilege is always one good tip,
334
00:26:43,520 --> 00:26:51,320
so try to limit the permissions for each user at the minimum possible to work.
335
00:26:51,320 --> 00:26:57,680
And also use the other tools that I mentioned, the Damascan, column encryption,
336
00:26:57,680 --> 00:27:02,680
column level security, row level security, as much as possible,
337
00:27:02,680 --> 00:27:07,640
to try to reduce the surface area for attacks.
338
00:27:07,640 --> 00:27:10,640
So--
339
00:27:10,640 --> 00:27:17,080
Can you-- for better understand, can you describe a simple example
340
00:27:17,080 --> 00:27:22,040
of an Azure SQL-driven integration?
341
00:27:22,040 --> 00:27:23,240
Sorry, can it be?
342
00:27:23,240 --> 00:27:28,760
Yeah, a simple example of an Azure SQL-driven integration.
343
00:27:28,760 --> 00:27:31,640
Driven integration?
344
00:27:31,640 --> 00:27:33,040
Yeah.
345
00:27:33,040 --> 00:27:33,840
OK.
346
00:27:33,840 --> 00:27:39,080
What do you mean?
347
00:27:39,080 --> 00:27:40,040
Sorry.
348
00:27:40,040 --> 00:27:41,840
Yeah.
349
00:27:41,840 --> 00:27:50,320
What are the new possibilities with this Azure SQL?
350
00:27:50,320 --> 00:27:55,000
That's become more--
351
00:27:55,000 --> 00:27:57,800
that the SQL database can communicate.
352
00:27:57,800 --> 00:28:01,280
What can we do with this?
353
00:28:01,280 --> 00:28:02,800
OK.
354
00:28:02,800 --> 00:28:03,960
Yeah, sure.
355
00:28:03,960 --> 00:28:09,880
So if you can use the SP evoke rest endpoints,
356
00:28:09,880 --> 00:28:13,720
like similar rest endpoints, you can, for example,
357
00:28:13,720 --> 00:28:23,640
let's say I have a form that people can write, like a contact form,
358
00:28:23,640 --> 00:28:30,320
so people can write a message or a feedback form that people can write their opinion
359
00:28:30,320 --> 00:28:35,720
in terms of a product, a company, a service, something like this.
360
00:28:35,720 --> 00:28:42,320
So it's very hard to read one by one and try to decide if this person is happy,
361
00:28:42,320 --> 00:28:45,960
if it's not happy, it's very angry, it's very happy.
362
00:28:45,960 --> 00:28:54,680
So we can use the cognitive service you can use an AI to try to read all these comments
363
00:28:54,680 --> 00:28:57,360
and try to classify or score.
364
00:28:57,360 --> 00:29:04,600
So we can easily create a number and based on the number or the score,
365
00:29:04,600 --> 00:29:11,800
you can easily select the most happy customers for some action marketing action
366
00:29:11,800 --> 00:29:15,440
or some very angry customers that you need to call,
367
00:29:15,440 --> 00:29:18,920
you need to send a message and the email, something like this,
368
00:29:18,920 --> 00:29:26,000
you try to convert this unhappy customers into happy customers again.
369
00:29:26,000 --> 00:29:29,640
Another good example, let's say I have an integration
370
00:29:29,640 --> 00:29:36,000
with an external application, could be even a file integration
371
00:29:36,000 --> 00:29:41,760
that some company drops a file on an FTP or on some storage.
372
00:29:41,760 --> 00:29:45,760
I read this data and I port it to my database.
373
00:29:45,760 --> 00:29:51,400
Sometimes in this kind of integration, especially when it's using a file,
374
00:29:51,400 --> 00:29:55,040
like a CSV text file, Excel file,
375
00:29:55,040 --> 00:30:00,040
you can get a lot of garbage from the data.
376
00:30:00,040 --> 00:30:06,640
Let's say if you have a state column and the company was not using a drop down,
377
00:30:06,640 --> 00:30:15,640
so somebody can use a name for let's say New York, you could boot an AI,
378
00:30:15,640 --> 00:30:19,560
you can type New York wrong.
379
00:30:19,560 --> 00:30:28,680
It's really hard to work on this, to remove all these inconsistent data
380
00:30:28,680 --> 00:30:31,360
and try to create a standard.
381
00:30:31,360 --> 00:30:37,160
You can, in the past, you have to try to deal with it using code.
382
00:30:37,160 --> 00:30:42,760
It was very painful, especially because I'm just giving one example for one column.
383
00:30:42,760 --> 00:30:46,560
Sometimes you have integration with hundreds, maybe thousands of columns.
384
00:30:46,560 --> 00:30:53,520
You have to try to guess the pattern, you have to try to create a code,
385
00:30:53,520 --> 00:30:57,560
you should try to fix that data, to clean the data.
386
00:30:57,560 --> 00:31:04,000
Now using AI, you can just use the API, try to fix for you in a few minutes
387
00:31:04,000 --> 00:31:07,960
or maybe a few seconds instead of having two ways.
388
00:31:07,960 --> 00:31:13,840
Maybe days or weeks, maybe months trying to clean that data.
389
00:31:13,840 --> 00:31:22,840
So there's unlimited possibility now that you can use AI to work with your data.
390
00:31:22,840 --> 00:31:28,240
Let's say I can send emails using this integration.
391
00:31:28,240 --> 00:31:35,840
I can connect with let's say a send grid service that I can use the API to send email from the database.
392
00:31:35,840 --> 00:31:43,840
The on-premise database, you can use the DB-Mail service that you can use with any SMTP service.
393
00:31:43,840 --> 00:31:52,640
But we don't have this on Azure SQL DB, but you can use the HTTP request to integrate with different APIs.
394
00:31:52,640 --> 00:32:01,840
You can use now these integrations to upload the file to a different service.
395
00:32:01,840 --> 00:32:10,840
You can say, let's say I want to send the SMS if I have a service that allows me to use the SMS from an API.
396
00:32:10,840 --> 00:32:14,840
I can now send SMS from the database.
397
00:32:14,840 --> 00:32:18,840
I can send a WhatsApp message, a tagger on Slack.
398
00:32:18,840 --> 00:32:24,840
So I can use, for example, I want to monitor my database.
399
00:32:24,840 --> 00:32:34,840
And now I can monitor it sending emails, sending SMS, sending messages to any communication platform I'm using to receive these alerts.
400
00:32:34,840 --> 00:32:39,840
It could be a monitor of the database itself or could be a process.
401
00:32:39,840 --> 00:32:47,840
If I reach, let's say I have a product that I sell a lot and I have less than 10% on my storage.
402
00:32:47,840 --> 00:32:53,840
And I want to risk giving notification that I need to buy more of these products because I'm going to be out of stock.
403
00:32:53,840 --> 00:33:00,840
And so I can create a job at monitors every five minutes one day, I don't know.
404
00:33:00,840 --> 00:33:08,840
And send the alerts to the buyer or somebody that needs to buy a product.
405
00:33:08,840 --> 00:33:12,840
The possibilities are unlimited.
406
00:33:12,840 --> 00:33:24,840
As you say, we can work with rest, our piece, is there other type of services that can be integrated?
407
00:33:24,840 --> 00:33:26,840
The other author said?
408
00:33:26,840 --> 00:33:32,840
Yeah, you have to say that in your example, we have to talk about rest, our piece.
409
00:33:32,840 --> 00:33:38,840
Is there any other types of services that can be integrated?
410
00:33:38,840 --> 00:33:50,840
Let me think, any type of service you're talking about?
411
00:33:50,840 --> 00:33:56,840
Well, I think if the service has an API, you can pretty much integrate.
412
00:33:56,840 --> 00:33:59,840
So let's say I want to integrate with Teams.
413
00:33:59,840 --> 00:34:07,840
I could integrate with Outlook with the 365 platform.
414
00:34:07,840 --> 00:34:16,840
I can because most of the, I think all the platforms in M365, they have an API that you can automate a lot of different stuff.
415
00:34:16,840 --> 00:34:17,840
So now I can do this.
416
00:34:17,840 --> 00:34:19,840
I can integrate with office.
417
00:34:19,840 --> 00:34:26,840
I can integrate with pretty much how applications with HubSpot.
418
00:34:26,840 --> 00:34:30,840
Let's say I use HubSpot as the CRM for my company.
419
00:34:30,840 --> 00:34:36,840
I could integrate based on some event that happened at the DB.
420
00:34:36,840 --> 00:34:38,840
I can create a task on HubSpot.
421
00:34:38,840 --> 00:34:39,840
I can create a lead.
422
00:34:39,840 --> 00:34:45,840
I can create any voice.
423
00:34:45,840 --> 00:34:49,840
I can do a lot of stuff right now.
424
00:34:49,840 --> 00:34:50,840
Interesting.
425
00:34:50,840 --> 00:34:51,840
Yeah.
426
00:34:51,840 --> 00:34:59,840
I think, yeah, it's, it's, it's really, really interesting.
427
00:34:59,840 --> 00:35:09,840
Can you, can you a little bit about explain the difference between Zincronus and Azulcronus integration in this context?
428
00:35:09,840 --> 00:35:10,840
Yeah, sure.
429
00:35:10,840 --> 00:35:22,840
So if you want to build a synchronous approach on this, you can let's say I can create a trigger on a table that's laver time.
430
00:35:22,840 --> 00:35:27,840
Let's say I insert a row on orders table.
431
00:35:27,840 --> 00:35:31,840
So somebody create a new order on the application.
432
00:35:31,840 --> 00:35:48,840
I can trigger and on this trigger, I can send SMS or somebody or I can create a process on HubSpot that I need to now sell this product that I just made.
433
00:35:48,840 --> 00:36:07,840
So this is a synchronous process. So as soon as somebody create a new order on the application, without I need to change the application when this data arrived into the DB that it be already created an action on it.
434
00:36:07,840 --> 00:36:11,840
I also could create an a sync approach on this.
435
00:36:11,840 --> 00:36:16,840
So when I got, I can create a job that runs daily.
436
00:36:16,840 --> 00:36:21,840
So I can read this table.
437
00:36:21,840 --> 00:36:26,840
So I can read all this table from what happened it on in the last day.
438
00:36:26,840 --> 00:36:33,840
And when I got this data, let's say I received 10 different orders and I can create a summer.
439
00:36:33,840 --> 00:36:44,840
And where I can send an email with the summary of the 10 orders and send to a group or to a group of people to take an action on top of these new orders.
440
00:36:44,840 --> 00:36:52,840
If they need to sell something, if they need to prepare the warehouse or something like this.
441
00:36:52,840 --> 00:37:10,840
And now I can work at I sync. I don't need to show specifically taken an immediate action when this data can I can also use the this integration to query an external API.
442
00:37:10,840 --> 00:37:22,840
And then based on the return of this data, I can take another action that I can trigger another API to a different service to do something that I want to do.
443
00:37:22,840 --> 00:37:31,840
So it's just like you have the power of an application in the database. So you don't need to code anything. You don't need to deploy.
444
00:37:31,840 --> 00:37:34,840
You don't need to.
445
00:37:34,840 --> 00:37:39,840
I don't need to create a CICD approach if I don't want.
446
00:37:39,840 --> 00:37:48,840
Definitely, I can create the CICD approach to deploy these objects to my database, but I don't need to in this case.
447
00:37:48,840 --> 00:38:03,840
And because this already runs inside the database, the security concerns are less strict because I don't have anything external connection to the database.
448
00:38:03,840 --> 00:38:16,840
And the database is actually triggering the integration, the integrations. So the database is querying or standing the data to this service is not the opposite way.
449
00:38:16,840 --> 00:38:21,840
So I don't have a service trying to reach directly to the database.
450
00:38:21,840 --> 00:38:28,840
So in terms of security, it's a little, it's a little better in my opinion.
451
00:38:28,840 --> 00:38:38,840
When we normally talk about SQL, especially in Azure, there are, I say, some tools we think about.
452
00:38:38,840 --> 00:38:46,840
It's Azure ServicePose, Event Grid, Event Apps, Azure Function and Logic Apps.
453
00:38:46,840 --> 00:39:00,840
Is this, what role does it play or is it completely, I don't know, is this new option with this new database? Is it obsolete?
454
00:39:00,840 --> 00:39:15,840
Yeah, I think with this, especially because you can actually scan or jobs inside, even the Azure SQL DB, we don't have an interface for it, just like we have for the own primers or the managers.
455
00:39:15,840 --> 00:39:20,840
But since let's say, 2020, we can't scan or jobs.
456
00:39:20,840 --> 00:39:40,840
We may, we may don't need to use large caps to automate tasks because in the, in the past, if I want to schedule a query, a procedure or some action on the database, one of the alternatives was to use a large cap.
457
00:39:40,840 --> 00:39:52,840
So I could schedule this and every X minutes or a specific time, the large cap triggers and runs a specific comment on the database.
458
00:39:52,840 --> 00:39:56,840
Right now, I don't need an orchestrator anymore.
459
00:39:56,840 --> 00:40:08,840
I can use a factory, I can use ADF, I can use large cap, I'll automate to orchestrate queries and actions on the database.
460
00:40:08,840 --> 00:40:11,840
But you don't need now.
461
00:40:11,840 --> 00:40:14,840
You can use but it's not more required.
462
00:40:14,840 --> 00:40:28,840
So because you now you have options, you have a new options that I don't need an external service to automate executions of something, some integration.
463
00:40:28,840 --> 00:40:37,840
Because from the database, I can now use APIs, I can now query data from a blob storage directly.
464
00:40:37,840 --> 00:40:51,840
So I don't need an orchestrator or an application to to deal with different data from coming from different places and try to orchestrate and organize because the database now can do everything.
465
00:40:51,840 --> 00:41:03,840
I think a lot of companies, when you say you connected a database to external services, I think that immediately raises security questions.
466
00:41:03,840 --> 00:41:07,840
What are the biggest risks?
467
00:41:07,840 --> 00:41:20,840
Well, the biggest risk is that the database now can export data directly to a service. So imagine if I can hack into your database, I can build a web service.
468
00:41:20,840 --> 00:41:23,840
She received the data that I stole from you.
469
00:41:23,840 --> 00:41:36,840
So I can use this integration to get data from your database, post into a web service and get these data from these database that I hacked.
470
00:41:36,840 --> 00:41:43,840
I understand this concern is really real.
471
00:41:43,840 --> 00:41:50,840
But if you can hack into the database, you already have access to all the data anyway.
472
00:41:50,840 --> 00:41:59,840
So you can query and save into a file and get the file, upload the file to an FTP.
473
00:41:59,840 --> 00:42:09,840
You can just copy all the data to an external application. You can save as a file, you can save as a JSON as a CSV file.
474
00:42:09,840 --> 00:42:15,840
So if you can hack into the database, you already have control over the data.
475
00:42:15,840 --> 00:42:29,840
So I understand the concern, but I don't see it has an additional layer or an additional thing that you need to protect.
476
00:42:29,840 --> 00:42:40,840
Because to be able to actually send this data outside the database, you have to be inside the database anyway.
477
00:42:40,840 --> 00:42:49,840
OK, and how should Azure SQL identity Kate to do another Azure source?
478
00:42:49,840 --> 00:42:53,840
Using this integration, we are talking about.
479
00:42:53,840 --> 00:43:02,840
Well, usually if you can use the anonymous way, but most of service, they require some kind of authentication.
480
00:43:02,840 --> 00:43:12,840
You can use bear token, you can use user and password. I think these are the most common that you can use.
481
00:43:12,840 --> 00:43:21,840
Also you can use headers. So the X API keys, three common, you pass the token on the header of the request.
482
00:43:21,840 --> 00:43:24,840
So we cannot indicate the request you.
483
00:43:24,840 --> 00:43:34,840
These are the three most common way to authenticate. And all of three are supported into the SQL DB.
484
00:43:34,840 --> 00:43:53,840
It's a very good question though, because I see most of people passing the credential when they are trying to every time they want to make a request, they include the credentials like the token or the password.
485
00:43:53,840 --> 00:44:03,840
So you can use the code on the request itself, but the most secure way to work with this is that an admin that holds the credentials.
486
00:44:03,840 --> 00:44:09,840
This person can create an object called credential on the database.
487
00:44:09,840 --> 00:44:19,840
So when you create this object, you actually include the credential itself like the password, the key or the token.
488
00:44:19,840 --> 00:44:30,840
And when other person is wants to work with this service, you can refer it to the credential you created, the object you created.
489
00:44:30,840 --> 00:44:33,840
So you don't need to specify the credential anymore.
490
00:44:33,840 --> 00:44:38,840
And let's say you have 100 procedures using the same credential.
491
00:44:38,840 --> 00:45:00,840
If this token expired, I just run a common auto credential. I use the new token that I created and all the objects that are referring this credential will automatically be fixed because you don't need to update 100 procedures to update the token.
492
00:45:00,840 --> 00:45:21,840
And also is safer because the person that is creating these procedures that is actually working with this integration don't need to know the actual token only the person that maintain this credential object inside the database.
493
00:45:21,840 --> 00:45:35,840
And I don't know, we have to say, I think how did we handle error handle in Azure.
494
00:45:35,840 --> 00:45:39,840
How does it work that the error handling or how did you do it?
495
00:45:39,840 --> 00:45:49,840
Yes, SQL server and also Azure SQL DB it supports the begin try begin catch.
496
00:45:49,840 --> 00:45:55,840
So you have a track catch approach on the SQL server.
497
00:45:55,840 --> 00:46:05,840
Since 2008, 2005 I guess, but definitely it's getting better and better and better over the new versions.
498
00:46:05,840 --> 00:46:18,840
So with this integrations are any kind of procedure or workflow that you data flow you create on the SQL server or the SQL DB.
499
00:46:18,840 --> 00:46:33,840
You can work with the try catch approach and based on the the whole message or the arrow code, you can also have a sequential begin try catch.
500
00:46:33,840 --> 00:46:48,840
So let's say I try to send this request and I got the message that the service is offline by some reason or some code like a whole 500 is an internal issue on the service itself.
501
00:46:48,840 --> 00:46:52,840
I probably if I try to send again it will not work.
502
00:46:52,840 --> 00:47:07,840
I can use a retry on my catch. So if if it fails based on the arrow code, I can try again or depending on the arrow codes, let's say unauthorized it's I will not fix the unauthorized.
503
00:47:07,840 --> 00:47:14,840
If I try to run again, so I can try to use another credential can try to use a fallback service.
504
00:47:14,840 --> 00:47:22,840
Like say if I send email using send grid by some reason my send grid is returning unauthorized.
505
00:47:22,840 --> 00:47:32,840
So if it happens, I can try to use the fallback to send using send the email using Amazon says or another service.
506
00:47:32,840 --> 00:47:36,840
So I can deal with that just like in an application.
507
00:47:36,840 --> 00:47:51,840
I agree that an application is more powerful in terms of coding and implementing this kind of hero handling, but the database is not that far behind.
508
00:47:51,840 --> 00:48:09,840
So it has a lot of different controls that you can control an exception. You can you can record this into a table into a file into like say login analytics on Azure.
509
00:48:09,840 --> 00:48:18,840
I can try to use different different cases or different ifs approach depending on what's happening.
510
00:48:18,840 --> 00:48:24,840
So we have a very good hero handling on SQL server.
511
00:48:24,840 --> 00:48:35,840
And what's with the topics performance and scalability, how compares to other SQL solutions.
512
00:48:35,840 --> 00:48:48,840
The most is a very big topic, especially on Azure because let's say if I have a on premise instance or an on premise server.
513
00:48:48,840 --> 00:48:57,840
If you need if you need more performance, you just need to buy more CPUs or buy more memory or buy a faster disk.
514
00:48:57,840 --> 00:49:13,840
And it's an investment you pay just once and you're going to be you're going to get the benefits for maybe forever or as soon as your hardware starts to fail on on the cloud is different because you're paying monthly.
515
00:49:13,840 --> 00:49:21,840
So if need to increase the capacity increase your compute power, probably going to double your costs.
516
00:49:21,840 --> 00:49:34,840
And if you don't invest into performance stunning. I can assure to everybody this action to double the compute the compute power.
517
00:49:34,840 --> 00:49:49,840
It's not going to be once because if you don't invest into trying to improve the performance changing the code, doing better queries, implementing a good indexing strategy.
518
00:49:49,840 --> 00:50:07,840
This is going to happen once every every every time you increase the capacity in a few months is going to increase again and again and again and you're going to see your database costs are going to be very, very, very high.
519
00:50:07,840 --> 00:50:22,840
Performance is a very big topic. It's a it's a very in cloud. It's getting a lot of attention in the last years because you can reduce costs in improving performance on premise.
520
00:50:22,840 --> 00:50:39,840
This is this does not happen if I had if I need a 16 course server to to host my database and I did an awesome work reducing my query performance by 98%.
521
00:50:39,840 --> 00:50:52,840
Now I just need to course your at about a 16 so you can return your at about 16 code V course for the physical hardware and also for the license for sick of server.
522
00:50:52,840 --> 00:51:01,840
So you you definitely going to have more your lifetime is going to be higher because you reduce your compute power.
523
00:51:01,840 --> 00:51:15,840
You reduce your cost in terms of execution a query. So you don't need to buy more CPUs in a long time now, but you're going to have still the same cost in Azure if you can reduce your cost by 60%.
524
00:51:15,840 --> 00:51:23,840
You can reduce your cost by half because you can reduce your the capacity about for your database.
525
00:51:23,840 --> 00:51:36,840
So now that performance turning is actually making a difference in how much you're going to pay and a good performance could save millions of dollars a year.
526
00:51:36,840 --> 00:51:46,840
Now people are getting it is giving a lot of attention to people that work with performance turning.
527
00:51:46,840 --> 00:51:59,840
Interesting and Microsoft actually have the copilot for for everything all this all this what they are one for as well.
528
00:51:59,840 --> 00:52:13,840
So kind of more or less because usually the application that we use in daily basis is the sick of server management studio.
529
00:52:13,840 --> 00:52:28,840
And things the the last quarter of last year they included this option should actually they didn't call it copilot, but you can use AI on the two.
530
00:52:28,840 --> 00:52:48,840
And you have to use your own key so it's not included in the price you have to use your own key for chat to be to your other platform to kind of have this this AI features on your development platform.
531
00:52:48,840 --> 00:53:08,840
So sick of server has some AI features, especially for automatic turning that sick of server keeps analyzing the execution plan all the time to try to suggest you indexes that could benefit your application.
532
00:53:08,840 --> 00:53:26,840
At least sometimes they you could get good recommendations sometimes not that much if you try to analyze you could get better results but definitely if you don't have a lot of knowledge in terms of performance turning.
533
00:53:26,840 --> 00:53:34,840
At least it's an easy guess easy win sometimes it's not the best but at least it's better than nothing.
534
00:53:34,840 --> 00:53:52,840
And yes it's it's strange because you don't have a copilot for SMS probably because on copilot the you don't pay for for the usage they are usage right it's already included in the price.
535
00:53:52,840 --> 00:54:12,840
And in the case of the sick of server probably people use this is a lot and Microsoft prefers to okay I'm going to give you this feature you set up your API key you select the service and you can use the AI on the on the development platform.
536
00:54:12,840 --> 00:54:34,840
Yeah but when we talk about AI I think we talk most times about RAC and vector search how can you will you explain vector search and why is it so becomes so important for AI applications.
537
00:54:34,840 --> 00:54:52,840
Yes so in the in the 2025 version of sick of server and also in the SQL DB since 2024 I if I'm not wrong sick of server and actually SQL DB they now support vector search and RAC and also embedding tokens.
538
00:54:52,840 --> 00:55:21,840
This is pretty much the foundation of an AI LLM because it uses the embedding tokens to actually to actually send all these data to the to the billions of parameters that the LLM holds which pretty much is a bunch of instructions and kind of databases in its own form.
539
00:55:21,840 --> 00:55:37,840
It's a very compressed in a way that the LLM can easily access all this data this knowledge that is is a storage in forms of this billions of parameters.
540
00:55:37,840 --> 00:55:55,840
And now you can implement your own LLM kind of on the database itself so we can host your files your own files your own data you can use the vector search to try to implement.
541
00:55:55,840 --> 00:56:13,840
AI engine kind of an AI engine on your data without requiring an external service like chatty pt jmni and traffic aka cloud cloud code so you can use the on.
542
00:56:13,840 --> 00:56:42,840
AI engine from sick of server to try to replicate an LLM on your data definitely it's not it's got not going to be as powerful as this big LLM that runs on huge data center with hundreds of machines, cores and and CPUs and in GPUs but you can have some basic functionalities of LLM without having to pay something.
543
00:56:42,840 --> 00:56:51,840
To pay an extra cost to the like an AI service that you pay based on a token usage.
544
00:56:51,840 --> 00:57:01,840
So it's our wage will implement this without no cost if you understand how it works the embedding the vector search.
545
00:57:01,840 --> 00:57:15,840
And what are your also the data specialist what are the capabilities from error SQL especially for business intelligence.
546
00:57:15,840 --> 00:57:38,840
Yeah so if you are working with has a build business intelligence and Azure SQL DB Microsoft is pushing everything to fabric so prebich right now is the platform for business intelligence on Microsoft stack because you can have right houses like houses database.
547
00:57:38,840 --> 00:57:58,840
You can have also power be eyes deeply integrated with this platform called fabric if you have a data on Azure SQL DB but say I have an application and I have a database for this application and I want to analyze these data on fabric aka power be.
548
00:57:58,840 --> 00:58:19,840
We have to do in the past you need to create an ETL pipeline to read this data from the database for the application and copies to a different database for different structure using the data architecture something like this or layers which we used to call raw ODS and D.
549
00:58:19,840 --> 00:58:36,840
And transform all these data and then you can connect to power be eye on top of this layer. Of course you can connect power be redirected to the application database but is not recommended again having multiple different issues using that approach.
550
00:58:36,840 --> 00:58:47,840
It is possible but not recommended but now with the SQL DB is deeply integrated with fabric you can use the fabric you mirror in feature.
551
00:58:47,840 --> 00:59:02,840
It is not only that it is basically integrated all these data from your application in a new real time approach to a fabric warehouse so we're going to have this data available for you in your real time on fabric so we can.
552
00:59:02,840 --> 00:59:29,840
Look your dashboards your reports into this warehouse that is hosted on fabric is not using your database capacity so you're not going to have any issues just like blocks blocks or slowness because you're you're running heavy queries on top of database you're not running on a database you're running on the fabric warehouse.
553
00:59:29,840 --> 00:59:35,840
So you're consuming fabric capacity for it and you don't need to create an in.
554
00:59:35,840 --> 00:59:58,840
It's your pipeline to get this data from your database to fabric using fabric, you can integrate this with justice is more number of clicks and you have this data done on fabric and when you have this data fabric then you can apply your transformations and connect into your dashboard or your reports.
555
00:59:58,840 --> 01:00:18,840
So yeah, I think this is what Microsoft is are she right now in terms of the recommendations for the business intelligence intelligence approach in the past before fabric before everything.
556
01:00:18,840 --> 01:00:35,840
We used to have another service reporting service and integration service which is also a complete package to have the all app cubes for very high performance.
557
01:00:35,840 --> 01:00:52,840
And then we can connect data to so we can connect using excel or power BI into a cube so we're going to have an in memory architecture which is pretty much the the the service is the heart of power BI still nowadays.
558
01:00:52,840 --> 01:01:04,840
So you also had the integration service which is the ETL platform similar to ADF probably is the father of ADF the integration service.
559
01:01:04,840 --> 01:01:18,840
And I think that's pretty much it what the tools to integrate the actual SQL DB or SQL server with a business intelligence platform or pipeline.
560
01:01:18,840 --> 01:01:30,840
One question before we start in your rapid fire out and how do you do governance, how to gather as well.
561
01:01:30,840 --> 01:01:36,840
Yeah, so how to go over and okay, the I think is a very very good question.
562
01:01:36,840 --> 01:01:51,840
Pretty much if you have a Azure SQL DB, you have a server right so in the server you have the far old level the the far old level the far old in the server level.
563
01:01:51,840 --> 01:02:00,840
So let's say if I manage the server but I don't manage the database the database are managed by by the applications.
564
01:02:00,840 --> 01:02:11,840
So I block a certain IP at the server level this this IP will not be able to access this database or I can do the opposite.
565
01:02:11,840 --> 01:02:15,840
I can block all the IPs and create an allow list.
566
01:02:15,840 --> 01:02:22,840
So only certain IPs could access my server itself.
567
01:02:22,840 --> 01:02:39,840
I also have the database level far old so let's say I'm allowing all IPs at the server level but at the database level I'm allowing only certain IPs to access this specific database.
568
01:02:39,840 --> 01:02:47,840
Let's say I have an HR database usually it contains very sensitive information like salary and personal data.
569
01:02:47,840 --> 01:03:00,840
I can have a server that allows all IPs but for this specific database I want to be able to access only from one IP which is the the application IP.
570
01:03:00,840 --> 01:03:15,840
So I can set up this kind of security per database or also adding entire server level that holds a different a lot of number a lot of different databases.
571
01:03:15,840 --> 01:03:30,840
Also in terms of security I can create a login at the server level and then for this login I can specify in which databases this login can access.
572
01:03:30,840 --> 01:03:45,840
So I can I can I have control over the server itself and also everything that I can manage I can also have granular permissions on the database itself.
573
01:03:45,840 --> 01:04:00,840
So I can have on one server different app databases with different business rules different security concerns that I can manage at the database level.
574
01:04:00,840 --> 01:04:12,840
So in terms of government governance we have a lot of different tools that we can apply to the database itself.
575
01:04:12,840 --> 01:04:19,840
Interesting so let's have a little bit over time I'm sorry for this.
576
01:04:19,840 --> 01:04:34,840
I hope you have some seconds for the rapid fire route I ask some questions you give you answer so the rational data or vector data.
577
01:04:34,840 --> 01:04:51,840
So that's our relational database for sure.
578
01:04:51,840 --> 01:05:11,840
So what is the best or even good in a good when such an idali I come to you and say hey, you get all the money and resources for Microsoft to develop the Azure SQL feature.
579
01:05:11,840 --> 01:05:35,840
Well, first of all I will try to implement an active active cluster because Oracle has the Oracle hack and I think you'd be good to have more than one point of writing and we don't have this in SQL server because you have all the active and passive replicas.
580
01:05:35,840 --> 01:05:49,840
So we cannot have more than one instance running at the same time you should just one receive the rights and the others just have just receive the replications.
581
01:05:49,840 --> 01:06:02,840
So I think this would be probably my my first thing to try to implement because yeah, I think it will be something like this an active active cluster.
582
01:06:02,840 --> 01:06:12,840
Yeah, awesome and if you will be the next guest I should invite to the podcast and work questions through I ask.
583
01:06:12,840 --> 01:06:17,840
I think you should invite Fabiano Mori. I don't know if you know him.
584
01:06:17,840 --> 01:06:25,840
He is a specialist in terms of SQL server and performance and also security.
585
01:06:25,840 --> 01:06:45,840
He already hacked all the clouds the SQL server in all the clouds he discovered a lot of vulnerabilities in every every cloud AWS Azure GCP Aliba, and I think it will be a very interesting chat with him.
586
01:06:45,840 --> 01:06:54,840
Yeah, and then I find the question is what do you want to listen to remember from this session.
587
01:06:54,840 --> 01:07:17,840
I think what we talk about at most and it's very interesting and I think is not very explorate by people that use the Azure CPDB is the integration from the database to external service, which now opened on limitless possibilities and port.
588
01:07:17,840 --> 01:07:37,840
Because now the database is not the place that you can just store your data. You can actually be more active without requiring an application or an external service to orchestrate or to to command what database should do now the database is alive.
589
01:07:37,840 --> 01:07:59,840
It has its own responsibilities. It's on its own tasks that it could do. And in an easily way, because you don't need to deploy to code to create an application to host this to create a server to host this.
590
01:07:59,840 --> 01:08:02,840
It's already there.
591
01:08:02,840 --> 01:08:13,840
So, Dikuru, thank you for joining me and showing us the Azure SQL database can be more much more than a place where application stores data.
592
01:08:13,840 --> 01:08:31,840
My biggest takeaway from this conversion is that modern database architecture is, yeah, increasingly a bow connections Azure SQL can participate in RP integrations automation workflows analytics solutions, AI power experience.
593
01:08:31,840 --> 01:08:41,840
But these capabilities must be implemented with care for attention and security or reliable performance and operational visibility.
594
01:08:41,840 --> 01:08:57,840
Yeah, the goal is to move, not to move every part of an application database. The goal is to understand when keeping logic close to trust business data creates a simpler, faster, more, yeah, main, tittle solution.
595
01:08:57,840 --> 01:09:12,840
And when we decided to integration services is, yeah, better, the better architectural choice. So, thank you for for being here all your.
596
01:09:12,840 --> 01:09:28,840
And of course, we just find in the show notes, you are from this episode on the m65 and podcast page. So, yeah, thank you so much for staying here with me more than now. Thank you.
597
01:09:28,840 --> 01:09:40,840
Thank you for the invitation and thank you for everybody that's listening to us all this time. I hope you enjoyed the topics and what we discussed here and thank you for everything.
598
01:09:40,840 --> 01:09:50,840
[BLANK_AUDIO]