Within the database, there can be multiple database instances that each have their own administrator. So if you're like doing a cloud native environment, and you have, you know, the order service and customer service, right, each of those can become PDBs in the database managed by that service team, right? So why we're doing this is because we're going to run a script at the database after you install it. And what this script does is basically enable JSON development against this database instance called free PDB1 which is the default, right? You get it. Any time you start this container, you get this database instance in there with PDB admin as the default administrator of that database instance. You can also just cut and paste this into a soda file, I call it, and just run the command as a script, right? Now, I've prestarted all this stuff. So if I go, docker ps.tray, you can see it's up, it's running, it's healthy. So that piece of the stack is gone. And that's all you should have to do to get the database part of the stack going.
Well, this is what I was talking about, about the container database, right? So, you know, each self-contained PDB could be like analogous to a services bounded context. At the container database level, and this is interesting and useful, I think, you can manage many as one, you can patch them all, you can upgrade them all. The other interesting bit I like here is you can report across all the PDBs in your instance. So if you're capturing metrics and you want to see them on like a global scale, you could do that very simply. All right, so like I was waxy on and on about the new features, and I really do believe it's true, this has been in development for a long time. There's a ton of new features that you can use and innovate on. So some of the features I'm using going forwards, or have used, so I'm using property graphs. What I'm doing with the property graph feature, and this is kind of interesting, especially if any of you are involved with existing Oracle databases that may have huge schemas. You can collect a thing called a SQL tuning set, which basically captures every query that's run against the database. And you take that information and you could turn it into a weighted graph based on join activity. And you can assign affinities, and that becomes the graph. And then I run community detection on there using the info map algorithm. And that sort of finds communities or clusters in the existing database based on joint affinities, which may be useful in sort of combining those communities into one PDB, which then becomes the database for a service. JSON relational duality, I'm using, it's kind of nice. What it does is that it allows you to write JSON views, read, write views on top of existing SQL schema. So that's really useful, right? Because you could take these services and instead of having to query them all and merge it together, you can just write this view on top of it, and it'll just run for you. So like, for example, all right, this is what I am working on, right? So I'm looking at the prototype is like a college database with courses and schedules and stuff, right? Pulling out all the different sort of services out of an existing SQL schema and dividing that into their specific services. And then for gathering data across these different services, I just write these views.
Java stored procedures I will talk about, you can write JavaScript stored procedures now in the database. You want to combine some things together to reduce route trips, that's available. And obviously AI vector search, everybody wants it.
Comments