Tag: syndicated

  • The Data API Builder Start and Add Extensions in VS Code

    One of the things that I like about the Data API Builder (DAB) is that there is a lot of CLI work that can be done. However, lots of people don’t like these, so I’m glad there’s a series of extensions in the Visual Studio Code (VSCode) marketplace that you can use.

    This post looks at the start and add extensions. Another post will look at the others.

    Update: All these are now in one extension.

    This is part of a series of posts on DAB that I’ve written. I also have articles at SQL Server Central about DAB.

    Installing the Extensions

    In VSCode, you can search for DAB in the extensions blade. You should see these, but there could be more by the time you read this.

    2024-12_0249

    I clicked install on these and they were added to my VS Code. Now let’s play with them. Each of them adds a right click menu item to the dab-config.json file.

    DAB Start

    The first one I tried was start. Since I had a valid dab-config.json in my file list, I could right click it. I see DAB Start as an option and select it.

    2024-12_0266

    This opens a new terminal. You need to be aware of this, as on the right side of your terminal, there is a new column and each terminal session is listed. The lower one is highlighted, opened by the DAB Start extension. You can see the output on the left, which is running.

    2024-12_0267

    I could then interact with my APIs in the browser. When I wanted to stop this, I could CTRL+C in the left terminal section, as in any, but I’d still have this terminal extension. The next time I clicked DAB Start, another new session would start.

    Instead, I clicked the “Delete” trashcan next to the terminal on the left to stop this session and the DAB service.

    2024-12_0265

    DAB ADD

    The ADD extension lets you add entites as well. If I right click and select DAB Add, I get another menu of types.

    2024-12_0259

    Once I select one, I see a list of objects from the database that I can view. In this case, the connection used in my DAB config file only sees three tables, so I can choose one of these.

    2024-12_0260

    If I hit Enter, I get a message that this was added.

    2024-12_0261

    If I look in the JSON for the config, I see that this is indeed added. This is another entity in my list, with the graphql and REST endpoints enabled.

    2024-12_0262

    Summary

    This post looked at these simple extensions, which leverage VSCode to make working with the DAB easier. If you’re experimenting with DAB, try these extensions. I certainly find them easier ways to work with my config file than editing things directly or trying to copy/paste.

     

  • Another AI Faux Pax

    I was experimenting with a local model (article) and as a part of this, I pulled down a web interface for my model in a container. I ran it and had it in the background. I’ve randomly been asking questions as I need to look up things. I’m mostly curious how well it works.

    This week I asked about CDC and got and interesting response.

    This is part of a series of experiments with AI systems.

    Updating a CDC Schema

    I asked this question of my local mistral model: How do I alter a table in SQL SErver that is being tracked by CDC to add a new column?

    That might not be the best way to phrase things, but I was on a call with a customer who was going to enable CDC and wanted to discuss how to manage this with schema changes. I’m not a CDC expert, so I was checking some documentation while chatting and decided to put this query in.

    I got these results,

    2025-01_0153

    I thought I’d missed something, as I had never heard of sp_cdc_refresh_schema. Sure enough, I didn’t see it on MS Docs.

    2025-01_0155

    If I were trying to do this (pretend I’m a copy/paste DBA), I would see this:

    2025-01_0156

    So, the next step is to call the AI on this. It finds that it hallucinated and give me other ideas.

    2025-01_0158

    It gets worse. Now I create a proc and insert into the system tables, which isn’t recommended.

    2025-01_0160

    This won’t work either, but I can see people trying this.

    First, if you get advice from the Internet, please always, always use a sandbox to test (what I also recommended to the customer), and second, treat any AI response like it came from a teenager.

  • Monday Monitor Tips: Using the PowerShell API

    Redgate Monitor has grown tremendously from its early days and I find many customers using this to monitor lots of servers, like thousands. In those cases, some of tasks you might do to manage your Redgate Monitor server can be cumbersome in the GUI.

    This post shows you how to get started with PowerShell to administer your Redgate Monitor Instance.

    This is part of a series of posts on Redgate Monitor. Click to see the other posts

    The Purpose of the PowerShell API

    Redgate Monitor (RGM) has lots of configuration options that you can set. In any size estate, this can be overwhelming when you need to change settings for some servers, but not others. For example, suspending some monitoring for servers being patched or upgraded. While this can be done easily in the web interface, for more than 1 or 2 servers, you might want a programmatic way to do this.

    The PowerShell API is designed to help you change your configuration in a programmatic way rather than clicking through the GUI. If you look at the main documentation screen below, it says the same thing.

    2025-01_0143

    Getting the PowerShell Module

    To get the various PoSh modules you need, you need to go to your configuration screen and click the download under the PoSh API section. You can see this below, and it’s also in the docs.

    2025-01_0144

    While this downloads, you also need an authorization token from your install. This is also on the configuration screen and described in these docs. The PowerShell API section has the Authorization Tokens section. Click that and in this screen you can genernate a new one. Save this, as you can’t see it after generation.

    2025-01_0145

    From here, test making a basic connection to your server with a script like this one below. One of our solutions specialists wrote it, and it imports the module, sets the URL and token, and then tries a connection. If that works, you are connected. You can run the Get-RedgateMonitorMonitoredObject as well. This gets a list of all objects being monitored.

    2024-12_0280

    Where to go from there is up to you. What types of things do you find yourself changing in Redgate Monitor? If there are a series of stops, then think about automating them. We have a set of example scripts that might give you some examples. There are things you might do from a list of servers like:

    • add to a group (or move)
    • suspect monitoring
    • annotate them with an event
    • set a tag
    • copy settings from one server to another

    With PowerShell, there are so many ways to program a script to do the thing you used to do manually. Give it a try with Redgate Monitor today.

    https://youtu.be/eTlg1auKRUA

    Redgate Monitor is a world class monitoring solution for your database estate. Download a trial today and see how it can help you manage your estate more efficiently.

  • Setting up a Local LLM

    I wanted to experiment a bit with an LLM and training it, so I decided to try a few things. I looked at a few tutorials (see the references below) and then finally got this working. This post distills down what I got to work.

    Getting Started

    I like containers, and rather than install something on my machine, I decided to get docker images for ollama. I ran this to get started:

    docker pull ollama/ollama

    I ran the Docker container with this command:

    docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

    From there, I pulled a few models into the container with these commands:

    docker exec -it ollama ollama pull mistral

    I then ran this to start the model and interact with it.

    docker exec -it ollama ollama run mistral

    Here are a first few things I typed in to test the model.

    2025-01_0111

    From here, I exited and then ran this to start the model in detached mode.

    docker exec -d ollama ollama run mistral

    From there, more experiments, but that’s in another article.

    References

    Here are some places and tutorials I looked at: