23.8.25

SQL Server 2025 — не просто база, а переосмысленный «движок данных»

Автор: Chris. SQL Server 2025: Not Just a Database; A Data Engine Reimagined

Статья подчёркивает, что SQL Server 2025 делает качественный шаг вперёд: из коробки появляются возможности для семантического (векторного) поиска, потоковой передачи изменений в событийные шины, а также удобные для разработчиков инструменты вроде регулярных выражений и вызова REST API прямо из T-SQL. Ниже — краткие тезисы и примеры.

Векторный поиск и индексация (ANN)

Появляется векторный тип данных и индекс Approximate Nearest Neighbor. Это позволяет хранить эмбеддинги и выполнять семантические запросы прямо в SQL.

-- Create a table with a vector column
CREATE TABLE ProductEmbeddings (
    ProductID INT PRIMARY KEY,
    Name NVARCHAR(100),
    Embedding VECTOR(128)    -- New vector data type
);

-- Create an ANN index on the vector column
CREATE INDEX IX_Product_Embedding_ANN
ON ProductEmbeddings (Embedding)
USING APPROXIMATE_NEAREST_NEIGHBOR;

-- Find similar products using ANN search
SELECT TOP 5 ProductID, Name
FROM ProductEmbeddings
WHERE Embedding ANN_SEARCH '[0.12, -0.34, 0.56, ...]'
WITH (TOP = 5);

Потоковая передача изменений (Change Event Streaming)

Изменения в таблицах можно транслировать в шины событий (например, Azure Event Hubs), что упрощает построение событийных и стриминговых конвейеров.

-- Enable Change Event Streaming on a table
ALTER TABLE Transactions
ENABLE CHANGE_EVENT_STREAMING
WITH (
    DESTINATION = 'AzureEventHub',
    EVENT_TYPE  = 'Insert, Update, Delete'
);

Регулярные выражения в T-SQL

Для некоторых сценариев проверки и фильтрации строк теперь можно применять RegEx-шаблоны прямо в запросах.

-- Find emails with unusual patterns using RegEx
SELECT Email
FROM Users
WHERE Email LIKE_REGEX '[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}';

Вызов внешнего REST API из SQL Server

Появилась возможность обращаться к внешним REST-сервисам напрямую, без дополнительного кода вне СУБД.

-- Call external REST API from within SQL Server
EXEC sp_invoke_external_rest_endpoint
    @url = 'https://api.example.com/data',
    @method = 'GET',
    @headers = '{"Authorization":"Bearer YOUR_TOKEN"}';

Что это даёт на практике

  • Поиск по смыслу: рекомендации, похожие товары/документы, RAG-сценарии без внешних стоек.
  • Реальное время: аналитика и интеграции через события без тяжёлого ETL.
  • Удобство разработки: более выразительные запросы, вызовы внешних API и меньше «костылей» вне SQL.


Комментариев нет:

Отправить комментарий