Партнерство між Microsoft і Canonical: SQL Server 2025

Партнерство між Microsoft і Canonical

З 2016 року, коли Microsoft оголосила про намір зробити Linux повноправним учасником своєї екосистеми, Canonical та Microsoft працюють пліч-о-пліч, щоб реалізувати це бачення. Ubuntu була серед перших дистрибутивів, які підтримали попередній перегляд SQL Server на Linux. Ubuntu також стала першим дистрибутивом у запуску Windows Subsystem for Linux (WSL) і залишається за замовчуванням до цього часу. Крім того, Ubuntu була першим дистрибутивом Linux, що підтримує Конфіденційні ВМ Azure.

SQL Server став основою для продовження співпраці, спрямованої на надання безшовного досвіду роботи з Linux для розробників і підприємств. Спільно ми змогли задовольнити зростаючі вимоги клієнтів, запропонувавши ряд спільних пропозицій, включаючи готові та спільно підтримувані конфігурації для SQL Server на базі Ubuntu. У цій статті ми розглянемо наше останнє співробітництво: SQL Server 2025 на Ubuntu.

SQL Server 2025

Загальна доступність SQL Server 2025 на Ubuntu 24.04 є важливим етапом у нашому партнерстві. SQL Server 2025 приносить кілька нових можливостей, включаючи нові можливості штучного інтелекту, такі як векторний пошук і інтеграція зовнішніх AI-моделей. Давайте розглянемо, як ви можете швидко запустити ці нові можливості.

Ваш новий майданчик для AI

Розгортання екземпляра сервера бази даних

Розпочнемо з установки LXD, нашого інструменту Canonical для простого управління віртуальними машинами та контейнерами.

sudo snap install lxd sudo snap list | awk '/lxd/ {print $3}'sudo lxd init --minimal # налаштування LXD

Тепер створимо віртуальну машину, щоб вона слугувала майданчиком:

sudo lxc launch ubuntu:24.04 mssql25 --vm -c limits.cpu=4 -c limits.memory=6GiB -d root,size=24GiB

Далі ми будемо встановлювати всі передумови для запуску SQL Server 2017:

sudo lxc exec mssql25 bashsu -l ubuntu# Завжди починаємо з оновлення пакетівsudo apt -y update && sudo apt -y upgrade# Завантажте та довірте ключ Microsoftcurl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg# Зареєструйте репозиторій SQL Servercurl -fsSL https://packages.microsoft.com/config/ubuntu/24.04/mssql-server-2025.list | sudo tee /etc/apt/sources.list.d/mssql-server-2025.list# Переконайтеся, що нові репозиторії завантаженоsudo apt-get update# Встановіть SQL Server і генератор паролівsudo apt-get install -y mssql-server pwgen

Тепер налаштуємо встановлений SQL Server для запуску екземпляра:

PW="$(pwgen -sB 22 1)" # Генерує пароль, що відповідає SQL Server# Підготуйте деякі змінні середовища для налаштування SQL Serverinstall -d -m 700 ~/.secrets/sqlinstall -m 600 /dev/null ~/.secrets/sql/mssql.envcat > ~/.secrets/sql/mssql.env <<EOFMSSQL_PID=DeveloperMSSQL_SA_PASSWORD='$PW'SQLSERVER=127.0.0.1SQLPORT=1433SQLUSER=saSQLCMDPASSWORD='$PW'EOF# Експортувати кожен рядок у mssql.env як змінні середовища set -a; . ~/.secrets/sql/mssql.env; set +a# Налаштування SQL Serversudo MSSQL_SA_PASSWORD="$MSSQL_SA_PASSWORD" MSSQL_PID="$MSSQL_PID" /opt/mssql/bin/mssql-conf -n setup# Давайте перевіримо, щоб все пройшло успішно systemctl status mssql-server --no-pager

Тепер встановимо кілька додаткових інструментів, щоб підключитися до SQL Server:

# Завантажте deb-пакетcurl -sSL -O https://packages.microsoft.com/config/ubuntu/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2)/packages-microsoft-prod.deb# Встановіть завантажений deb пакету sudo dpkg -i packages-microsoft-prod.deb# Видаліть завантажений пакету rm packages-microsoft-prod.deb# Встановіть драйвер ODBC від Microsoft та додаткові інструменти sudo apt-get updatesudo apt-get install -y msodbcsql18 mssql-tools18 unixodbc-dev libodbc2echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrcsource ~/.bashrc

Запустимо запит, щоб перевірити, чи все працює належним чином:

/opt/mssql-tools18/bin/sqlcmd -S 127.0.0.1 -U sa -No -C -P "$SQLCMDPASSWORD"SELECT @@VERSION AS 'Версія SQL Server';GO

Вище повинно повернути точну версію SQL Server, яку ви використовуєте. Досі ми виконали прості взаємодії з SQL Server. У наступному розділі ми протестуємо деякі нові захоплюючі функції редакції 2025.

Тип вектора

Тип вектора — це безперервний масив чисел фіксованої довжини, що дозволяє виконувати апаратно прискорене векторизоване виконання (SIMD). Тип вектора ідеально підходить для зберігання векторних представлень об’єктів, що маніпулюються AI-моделями, такими як текст і зображення. Давайте створимо таблицю з колонкою типу вектора:

CREATE DATABASE DemoDb;USE DemoDb;GOALTER DATABASE SCOPED CONFIGURATION SET PREVIEW_FEATURES = ON;CREATE TABLE dbo.VectorDemo (id INT IDENTITY(1,1) PRIMARY KEY, embedding VECTOR(3) NOT NULL);GOINSERT INTO dbo.VectorDemo (embedding) VALUES ('[2,3,5]'), ('[7,11,13]'), ('[17,19,23]');GODECLARE @q VECTOR(3) = '[7,11,13]';SELECT embedding, VECTOR_DISTANCE('euclidean', embedding, @q) AS distance FROM dbo.VectorDemo ORDER BY distance;GODECLARE @q2 VECTOR(3) = '[7,11,13]';SELECT embedding, VECTOR_DISTANCE('cosine', embedding, @q2) AS distance FROM dbo.VectorDemo ORDER BY distance;GOexit

Ми перевірили, як створити тип вектора і як використовувати оператор vector_distance. Тепер надамо приклад більш складного випадку використання, що включає виклик AI-моделі та виконання пошуку за схожістю.

Інтеграція AI моделей

Одна з найбільш захоплюючих функцій SQL Server 2025 — це можливість викликати AI моделі безпосередньо з вашої бази даних структурованим способом. Давайте подивимося, як це зробити:

Розгортання AI моделей

Розпочнемо з розгортання локальної моделі векторного представлення за допомогою Ollama.

curl -fsSL https://ollama.com/install.sh | sh # Встановлює ollamaollama pull nomic-embed-text # Завантажує модель векторного представленняcurl -k http://localhost:11434/api/tags # Перевіряє кінцеву точку api

Розгортання http-проксі

SQL Server 2025 вимагає, щоб кінцеві точки моделей були відкриті з використанням https (а не просто http). Тому ми розгорнемо та налаштуємо Caddy для цієї мети наступним чином:

sudo apt install -y caddy sudo cp /etc/caddy/Caddyfile /etc/caddy/Caddyfile.bak # Зробіть резервну копіюsudo tee /etc/caddy/Caddyfile >/dev/null <<'EOF'https://localhost:11435 { tls internal reverse_proxy 127.0.0.1:11434}EOFsudo systemctl reload caddy # Потрібно для застосування попередніх змін# Необхідно, щоб система довіряла сертифікату Caddy, виконавши таке:sudo cp /var/lib/caddy/.local/share/caddy/pki/authorities/local/root.crt /usr/local/share/ca-certificates/caddy-local-root.crt# Потрібно також, щоб система SQL Server довіряла сертифікату Caddy:sudo mkdir -p /var/opt/mssql/security/ca-certificatessudo cp /var/lib/caddy/.local/share/caddy/pki/authorities/local/root.crt /var/opt/mssql/security/ca-certificates/caddy-local-root.crtsudo chown -R mssql:mssql /var/opt/mssql/securitysudo chmod 744 /var/opt/mssql/security/ca-certificatessudo chmod 644 /var/opt/mssql/security/ca-certificates/caddy-local-root.crt# Оновіть довірені сертифікати ВМsudo update-ca-certificates# Перезавантажте SQL Server sudo systemctl restart mssql-server# Перевірте кілька https-кінець curl -w '\n' https://localhost:11435/api/tags curl -w '\n' https://localhost:11435/api/embed \ -H "Content-Type: application/json" \ -d '{ "model":"nomic-embed-text", "input":"привіт з caddy" }'

Залежності Python

Тепер перейдемо до установки передумов для підключення до екземпляра SQL Server за допомогою програми на python.

sudo apt install -y python3-openai python3-pyodbc

Виклик AI моделей всередині SQL Server 2025

Тепер ми увімкнемо SQL Server для використання зовнішньої кінцевої точки, а потім перезавантажимо його, щоб переконатися, що правильно взяв нові довірені сертифікати.

/opt/mssql-tools18/bin/sqlcmd -S 127.0.0.1 -U sa -C -P "$SQLCMDPASSWORD" -Q "EXEC sp_configure 'external rest endpoint enabled', 1; RECONFIGURE;"sudo systemctl restart mssql-server

Далі ми напишемо простий скрипт Python для тестування наступних можливостей:

  • Програмне підключення до сервера
  • Реєстрація моделі Ollama через HTTPS проксі
  • Створення колонки вектора та заповнення її прикладами за допомогою зареєстрованої моделі
  • Створення оптимізованого індексу на основі вектора та використання його для виконання пошуку за схожістю
cat <<EOT > ~/mssqlvector.pydimport pyodbc# Визначте параметри на основі вашого sqlcmdserver = '127.0.0.1'database = 'DemoDb'username = 'sa'password = "$MSSQL_SA_PASSWORD"port = '1433'# Рядок підключення за допомогою аутентифікації SQL Serverconnection_string = ( "DRIVER={ODBC Driver 18 for SQL Server};" f"SERVER={server},{port};" f"DATABASE={database};" f"UID={username};" f"PWD={{{password}}};" f"Encrypt=no;" f"Connection Timeout=7;" f"TrustServerCertificate=yes;")try: conn = pyodbc.connect(connection_string) cur = conn.cursor() print("Підключено до SQL Server!") # Приклад: простий запит cur.execute("SELECT name FROM sys.databases;") for row in cur.fetchall(): print(row) conn.autocommit = True # 1) Реєстрація моделі Ollama через HTTPS проксicur.execute("""IF NOT EXISTS (SELECT * FROM sys.external_models WHERE name='ollama')CREATE EXTERNAL MODEL ollamaWITH ( LOCATION = 'https://localhost:11435/api/embed', API_FORMAT = 'Ollama', MODEL_TYPE = EMBEDDINGS, MODEL = 'nomic-embed-text' -- 768 dims);""") # 2) Створення нової таблиці, що включає колонку вектора cur.execute("""DROP TABLE IF EXISTS dbo.SupportMatrix;CREATE TABLE dbo.SupportMatrix ( id INT IDENTITY PRIMARY KEY, sentence NVARCHAR(400) NOT NULL, embedding VECTOR(768) NULL);""") # 3) Вставка текстів з SQL Server на Ubuntu lines = [ "Ubuntu 24.04 підтримується SQL Server 2025", "Ubuntu 22.04 підтримується SQL Server 2022", "Ubuntu 20.04 підтримується SQL Server 2019", "Ubuntu 18.04 підтримується SQL Server 2019" ] cur.executemany("INSERT INTO dbo.SupportMatrix(sentence) VALUES (?);", [(t,) for t in texts]) # 4) Генерування векторних представлень в базі даних (використовуючи зовнішню модель) cur.execute("""UPDATE dbo.SupportMatrixSET embedding = AI_GENERATE_EMBEDDINGS(sentence USE MODEL ollama)WHERE embedding IS NULL;""") # 5) Створення індексу схожості ANN (DiskANN) на колонці вектора cur.execute("""IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'IX_SupportMatrix_Embedding')CREATE VECTOR INDEX IX_SupportMatrix_EmbeddingON dbo.SupportMatrix(embedding)WITH (METRIC = 'cosine', TYPE = 'diskann');""") # 6) Виконання пошуку схожості з VECTOR_SEARCH (використовується індекс ANN) query_text = "Яка версія Ubuntu підтримується SQL Server 2025?" cur.execute("""DECLARE @q VECTOR(768) = AI_GENERATE_EMBEDDINGS(?, ollama);SELECT TOP (3) t.id, t.sentence, s.distanceFROM VECTOR_SEARCH( table = dbo.SupportMatrix AS t, column = embedding, similar_to = @q, metric = 'cosine', top_n = 3) AS sORDER BY s.distance, t.id;""", (query_text,)) print(f"Найкращі збіги для: '{query_text}'\n") for row in cur.fetchall(): print(row)except Exception as e: print("Підключення не вдалося:", e)finally: conn.close()EOT

Ми можемо використовувати наш скрипт на python наступним чином:

python3 ~/mssqlvector.py

Ми дослідили деякі з нових функцій, пов’язаних зі штучним інтелектом, які ви можете використовувати в комфорті вашої бази даних SQL Server. Приближення AI до ваших даних – это гарний спосіб отримати більшу цінність від ваших даних без труднощів, пов’язаних із дублюванням даних.

Ще однією проблемою, яку потрібно вирішити компаніям, є забезпечення безпеки ланцюга поставок AI. Давайте подивимося, як ви можете з цим впоратися далі.

Ваш безпечний майданчик для AI

Для отримання оновлень безпеки для до 25 000 відкритих пакетів програмного забезпечення ви можете підписатися на Ubuntu Pro (безкоштовно для особистого користування для до 5 машин). Щоб перевірити, чи маєте ви вже підписку, виконайте наступну команду:

pro api u.pro.status.enabled_services.v1 | grep -c esm

Якщо вона не активована, ви можете підписатися на Ubuntu Pro тут. Отримавши ваш токен, просто наберіть:

sudo pro attach <token>

Тепер, коли ви покрили всі свої пакетами, що підтримуються Canonical, наступним кроком є перевірка постачальників ваших інших пакетів, які не включені в Ubuntu Pro. Наступна команда допоможе вам ідентифікувати всі пакети deb, які не підтримуються безпосередньо Canonical:

dpkg-query -W -f='${Package}\n' | while read pkg; do src=$(apt-cache policy "$pkg" | grep -m 1 http | awk '{print $2}') if [[ -n "$src" && "$src" != *ubuntu.com* ]]; then echo "$pkg -> $src" fidone

На моїй тестовій віртуальній машині вище надає наступні пакети, надані Microsoft:

msodbcsql18 -> https://packages.microsoft.com/ubuntu/24.04/prodmssql-server -> https://packages.microsoft.com/ubuntu/24.04/mssql-server-previewmssql-tools18 -> https://packages.microsoft.com/ubuntu/24.04/prodpackages-microsoft-prod -> https://packages.microsoft.com/ubuntu/24.04/prod

Слід зберігати лише довірені джерела, такі як Microsoft і Canonical. Вам також потрібно виконати ті ж перевірки для всіх інших типів пакетів або зображень, які ви можете використовувати (контейнери, снапи тощо). На жаль, багато компаній можуть ігнорувати забезпечення самих моделей. Canonical не лише надає аудовані AI моделі, але й моделі, оптимізовані для вашої інфраструктури. Давайте розглянемо приклад.

Ваші оптимізовані AI моделі

Canonical нещодавно оголосила про інференційні снапи, які використовують ваші можливості кремнію (незалежно від того, чи це ЦП або ГП), щоб прискорити ваші AI навантаження. Ось як ви можете його встановити:

sudo snap install qwen-vl --betaqwen-vl status # Перевіряє, чи завершено успішно

На моїй машині я отримую:

engine: cpu-avx512endpoints: openai: http://localhost:8326/v1

Ви можете використовувати нову модель наступним чином:

curl http://localhost:8326/v1/chat/completions \-H "Content-Type: application/json" \-d '{ "model": "<model-name>", "messages": [{"role": "user", "content": "Хто є видавцем Ubuntu?"}],"temperature": 0.7}' | jq

Ви повинні отримати відповідь на надане запитання.

Запуск оптимізованих AI моделей разом із Ubuntu Pro і SQL Server забезпечує вам безпечний і надійний стек для підтримки ваших AI робочих навантажень. Canonical і Microsoft можуть допомогти вам піти далі зі спільно підтримуваними пропозиціями.

Ваш підтримуваний майданчик для AI

Ми разом розглянули, як Canonical і Microsoft допомагають вам запустити інтегрований стек AI від операційної системи до механізму бази даних і AI моделей. Canonical і Microsoft надають попередньо побудовані образи Azure VM з попередньо налаштованим SQL Server поверх Ubuntu Pro, із підтримкою обох компаній. Ми також можемо допомогти вам запустити високодоступні та підтримувані розгортання SQL Server поверх Ubuntu Pro. Будь ласка, зв’яжіться з нами для отримання додаткової інформації.

Зв’яжіться з нами вже сьогодні

Цікавитесь, як запустити Ubuntu у вашій організації?

Підписка на розсилку новин

Отримуйте останні новини та оновлення Ubuntu на свою пошту.

Надсилаючи цю форму, я підтверджую, що я прочитав і погоджуюсь з Політикою конфіденційності Canonical.