AI 애플리케이션에서 SQL 데이터베이스 사용

적용 대상:Microsoft Fabric의 SQL 데이터베이스

이 문서에서는 Fabric SQL 데이터베이스를 사용하여 트랜잭션 데이터를 LLM(큰 언어 모델), 벡터 검색 또는 RAG(검색 보강 세대) 패턴과 결합하는 AI 기반 애플리케이션을 빌드하는 방법을 설명합니다.

Fabric SQL 데이터베이스는 ACID 트랜잭션, 짧은 대기 시간 쿼리, 네이티브 vector 데이터 형식 및 함수, 광범위한 Fabric 분석 및 AI 플랫폼과의 긴밀한 통합 등 지능형 애플리케이션을 위한 관계형 기반을 제공합니다.

AI 애플리케이션에 Fabric의 SQL 데이터베이스가 필요한 이유는 무엇인가요?

지능형 애플리케이션을 빌드하려면 벡터 포함과 함께 운영 데이터를 저장하고, 짧은 대기 시간에 트랜잭션 및 유사성 쿼리를 모두 제공하고, AI 오케스트레이션 프레임워크와 통합할 수 있는 데이터베이스가 필요합니다. Fabric SQL 데이터베이스는 다음 요구 사항을 충족합니다.

  • 네이티브 벡터 지원: SQL 데이터베이스 엔진의 네이티브 벡터 데이터 형식벡터 스칼라 함수를 사용하면 별도의 벡터 데이터베이스 없이 T-SQL에서 직접 임베딩을 저장하고 유사성 검색을 수행할 수 있습니다.
  • RAG 지원 아키텍처: 구조화된 비즈니스 데이터를 동일한 데이터베이스의 벡터 포함과 결합하면 검색 쿼리가 관계형 컨텍스트(고객 레코드, 주문 기록, 제품 카탈로그)와 의미 체계 검색 결과를 단일 쿼리로 조인할 수 있습니다.
  • Framework 통합: 기존 SQL Server 커넥터를 통해 LangChain의미 체계 커널 연결하여 오케스트레이션된 AI 워크플로를 빌드합니다.
  • Fabric 플랫폼 통합: 데이터를 플랫폼에서 이동하지 않고도 Fabric Notebook, 데이터 과학 워크로드 및 Copilot 환경에서 SQL 데이터에 액세스합니다.
  • 지속 거버넌스: Microsoft Entra ID 인증, 작업 영역 수준 보안 및 고객 관리형 키 암호화는 다른 운영 워크로드와 동일하게 AI 워크로드에 적용됩니다.

Tip

Fabric SQL 데이터베이스를 사용하여 데이터를 처리하고 벡터 임베딩을 생성하는 실제 고객 사례는 고객 사례: Eastman은 Microsoft Fabric으로 데이터를 통합하고 AI 기반 미래를 구축합니다를 참조하세요.

RAG(검색 증강 생성)

RAG는 답변을 생성하기 전에 데이터베이스에서 관련 데이터를 검색하여 LLM 응답을 향상시킵니다. 애플리케이션은 모델의 학습 데이터에만 의존하는 대신 운영 데이터를 쿼리하여 현재 도메인별 팩트의 기본 응답을 제공합니다. 포괄적인 개요는 RAG(검색 보강 세대)를 참조하세요.

Fabric SQL 데이터베이스를 사용하는 일반적인 RAG 패턴은 다음 단계를 수행합니다.

  1. 청크: 대용량 데이터 원본(문서, 기술 자료 문서, 제품 카탈로그)을 관리 가능한 조각으로 분할하고 일반 텍스트로 변환합니다.
  2. Embed: Azure OpenAI 또는 다른 포함 모델을 사용하여 각 청크에 대한 벡터 포함을 생성합니다.
  3. 저장소: 원본 텍스트 및 관계형 메타데이터와 함께 벡터 열이 있는 테이블에 포함 항목을 삽입합니다.
  4. 검색: 사용자가 질문을 할 때 동일한 모델을 사용하여 쿼리를 포함한 다음 , VECTOR_DISTANCE 사용하여 가장 유사한 청크를 찾습니다. 관계형 테이블과 조인하여 컨텍스트를 보강합니다.
  5. 보강: 검색된 청크를 사용자의 원래 질문과 결합하여 LLM에 컨텍스트를 사용하는 방법을 지시하는 프롬프트로 결합합니다.
  6. 생성: LLM에 증강 프롬프트를 보내면 검색된 데이터에 근거한 응답이 생성됩니다.

트랜잭션 데이터베이스의 하이브리드 벡터 검색

포함 및 관계형 데이터는 동일한 데이터베이스에 있으므로 동일한 쿼리에서 관계형 특성(날짜 범위, 범주, 액세스 권한)을 기준으로 필터링하여 관련성과 보안을 모두 향상시킬 수 있습니다. 트랜잭션 관계와 벡터 함수 모두에서 필터링된 결과에 대한 벡터 검색을 기존 SQL 필터(WHERE)와 결합할 수 있습니다. 다음은 그 예입니다.

-- Hybrid search: vector similarity filtered by product category
SELECT TOP (5) p.product_name, p.description
, cosine_distance = VECTOR_DISTANCE('cosine', @query_embedding, p.embedding)
FROM dbo.products AS p
WHERE p.category = 'Electronics'
ORDER BY VECTOR_DISTANCE('cosine', @query_embedding, p.embedding);

이 패턴은 제품 권장 사항, 기술 자료 검색 및 고객 지원 시나리오에 유용하며, 결과는 의미상 관련성이 있고 비즈니스 규칙에 따라 제한되어야 합니다.

최신 VECTOR_SEARCH T-SQL 구문을 사용하여 근사한 인접 결과를 찾을 수도 있습니다. 다음은 그 예입니다.

DECLARE @qv VECTOR(1536) = AI_GENERATE_EMBEDDINGS(N'Pink Floyd music style' USE MODEL Ada2Embeddings);

SELECT TOP (10) WITH APPROXIMATE
    t.id,
    t.title,
    r.distance
FROM VECTOR_SEARCH(
        TABLE = dbo.wikipedia_articles_embeddings AS t,
        COLUMN = content_vector,
        SIMILAR_TO = @qv,
        METRIC = 'cosine'
    ) AS r
ORDER BY r.distance;

FABRIC MCP 서버를 사용하는 AI 에이전트

Fabric 오픈 소스 Fabric 로컬 MCP와 AI 에이전트용 Fabric 원격 MCP 서버를 모두 제공합니다. 이러한 서버는 작업 영역 관리, 항목 CRUD 및 정의 및 권한 관리와 같은 준비된 작업에 대한 직접 인증 및 지침을 제공합니다.

두 Fabric MCP 서버 옵션은 GitHub Copilot, 커서, Claude Desktop 등을 비롯한 MCP 호환 클라이언트에서 작동합니다. 예를 들어, Visual Studio Code용 Fabric MCP Server 확장Microsoft Fabric 확장 및 GitHub Copilot Chat 확장과 함께 작동합니다. 이러한 확장을 사용하면 GitHub Copilot 채팅 내에서 Fabric MCP 도구에 액세스하고 에이전트를 사용하여 Fabric SQL 데이터베이스 만들기 및 관리와 같은 Fabric 항목을 관리할 수 있습니다.

  • Fabric 로컬 MCP 서버는 컴퓨터에서 로컬로 실행되므로 AI 에이전트는 환경에 액세스하지 않고 코드를 생성하고 항목을 작성하는 데 필요한 컨텍스트를 가져옵니다.
  • Fabric 원격 MCP 서버는 AI 에이전트가 로컬 설정 없이 Fabric 환경에서 준비되고 인증된 작업을 수행할 수 있는 클라우드 호스팅 서버입니다.

AI 도구는 Fabric MCP 서버를 사용하여 올바른 API와 이미 신뢰하는 올바른 RBAC 경계 내에서 코드를 작성합니다.

예를 들어 Fabric 로컬 MCP 서버를 빠르게 설치한 후에는 인프라 질문을 하고 에이전트 모드에서 Visual Studio 코드에서 GitHub Copilot 채팅에 작업을 할당할 수 있습니다. 다음은 그 예입니다.

List all SQL databases and mirrored SQL databases in the Fabric workspace "DemoSQLdb".

에이전트는 알려진 Fabric API 명령을 사용하여 해당 형식의 모든 Fabric 항목을 반환합니다.

Create a new SQL database in Fabric named "ContosoTest" in the Fabric workspace "DemoSQLdb".

에이전트는 알려진 Fabric API 명령을 사용하여 기본 설정으로 데이터베이스 항목을 만듭니다.

SQL MCP Server를 사용하는 AI 에이전트

SQL MCP Server는 AI 에이전트가 원시 SQL을 생성하는 대신 관리되는 도구 기반 API를 통해 데이터베이스와 상호 작용하는 데 사용할 수 있는 모델 컨텍스트 프로토콜 인터페이스를 제공합니다. 서버:

  • 구성에서 지원되는 정의된 도구 집합을 노출합니다.
  • 사용 권한 및 제약 조건을 일관되게 적용합니다.
  • 에이전트가 스키마 추측 없이 사용 가능한 기능을 검색할 수 있습니다.

이 패턴은 다중 단계 워크플로의 일부로 운영 데이터를 쿼리하고 업데이트할 수 있는 자율 에이전트를 빌드하는 데 유용합니다.

SQL MCP Server는 Data API Builder의 엔터티 추상화, RBAC, 캐싱 및 원격 분석을 사용하여 REST, GraphQL 및 MCP에서 동일하게 작동하는 프로덕션 준비 표면을 제공합니다. 한 번 구성하면 엔진이 나머지를 처리합니다.

Visual Studio CodeMSSQL 확장에는 >데이타 API 작성기용 통합 UI가 포함되어 있으므로 구성 파일을 작성하거나 Visual Studio Code 종료하지 않고도 SQL 데이터베이스 테이블에 대한 REST, GraphQL 및 MCP 엔드포인트를 만들 수 있습니다. 시각적 인터페이스에서 노출할 테이블을 선택하고, CRUD 권한을 구성하고, API 형식을 선택하고, 생성된 구성을 미리 볼 수 있으며, Data API 작성기에서 제공하는 로컬 백 엔드를 배포할 수 있습니다.

Azure OpenAI를 사용하여 보강

SQL 데이터베이스 엔진 외부 코드 또는 파이프라인 없이 데이터베이스에 직접 포함 및 청크 텍스트를 생성하기 위한 기본 제공 T-SQL 함수를 제공합니다.

임베딩 모델 등록

CREATE EXTERNAL MODEL 사용하여 Azure OpenAI 포함 엔드포인트를 데이터베이스 개체로 등록합니다. 이 예제에서는 text-embedding-ada-002 배포를 Microsoft Entra 관리 ID 인증과 함께 사용합니다. 먼저 관리 ID를 사용하여 OpenAI를 Azure 액세스 자격 증명을 만듭니다.

CREATE DATABASE SCOPED CREDENTIAL [https://my-azure-openai-endpoint.cognitiveservices.azure.com/]
    WITH IDENTITY = 'Managed Identity',
    SECRET = '{"resourceid":"https://cognitiveservices.azure.com"}';
GO

그런 다음, 외부 모델을 만듭니다.

CREATE EXTERNAL MODEL MyEmbeddingModel
WITH (
    LOCATION = 'https://my-openai.cognitiveservices.azure.com/openai/deployments/text-embedding-ada-002/embeddings?api-version=2024-02-01',
    API_FORMAT = 'Azure OpenAI',
    MODEL_TYPE = EMBEDDINGS,
    MODEL = 'text-embedding-ada-002',
    CREDENTIAL = [https://my-azure-openai-endpoint.cognitiveservices.azure.com/]
);

API 키를 비롯한 더 많은 인증 옵션은 CREATE EXTERNAL MODEL을 참조하세요.

인라인으로 임베딩 생성

AI_GENERATE_EMBEDDINGS 사용하여 T-SQL 쿼리, 삽입 및 업데이트에서 직접 벡터 포함을 생성합니다.

-- Generate embeddings for existing rows
UPDATE t
SET t.embedding = AI_GENERATE_EMBEDDINGS(t.description USE MODEL MyEmbeddingModel)
FROM dbo.products AS t;

청크로 나누고 단일 문장에 삽입

AI_GENERATE_CHUNKSAI_GENERATE_EMBEDDINGS 결합하여 큰 텍스트를 청크로 분할하고 단일 T-SQL 문에 포함합니다.

INSERT INTO dbo.document_embeddings (chunked_text, embedding)
SELECT c.chunk,
       AI_GENERATE_EMBEDDINGS(c.chunk USE MODEL MyEmbeddingModel)
FROM dbo.documents AS d
CROSS APPLY AI_GENERATE_CHUNKS(
    SOURCE = d.content,
    CHUNK_TYPE = FIXED,
    CHUNK_SIZE = 100
) AS c;

sp_invoke_external_rest_endpoint 사용하여 직접 REST 호출

호출 완료 또는 채팅 엔드포인트와 같이 AI_GENERATE_EMBEDDINGS 적용되지 않는 시나리오의 경우 sp_invoke_external_rest_endpoint 사용하여 T-SQL에서 직접 Azure OpenAI REST API를 호출합니다. 자세한 내용은 Azure OpenAI 통합 참조하세요.

Fabric AI 워크로드와 통합

Fabric SQL 데이터베이스는 플랫폼의 광범위한 AI 기능에 연결합니다.

통합 사용
패브릭 Notebook PySpark 또는 Python Notebook에서 SQL 데이터베이스를 쿼리하여 데이터 준비, 모델 학습 및 일괄 처리 채점을 수행합니다.
패브릭 데이터 과학 기계 학습 실험에 대한 입력으로 SQL 데이터를 사용한 다음, 운영 사용을 위해 데이터베이스에 예측을 다시 씁니다.
SQL 데이터베이스의 Copilot 자연어를 사용하여 Fabric 포털 쿼리 편집기에서 직접 T-SQL 쿼리를 생성, 설명 및 최적화합니다.
GraphQL용 API 애플리케이션 사용을 위해 GraphQL 엔드포인트를 통해 AI 보강 데이터를 노출합니다.
데이터 파이프라인 및 데이터 흐름 Gen2 대규모로 임베딩 생성 및 풍부화 워크플로를 조정합니다.

FABRIC SQL Database 사용 사례 사례

FABRIC SQL 데이터베이스에 가장 적합한 사용 사례에 대해 자세히 알아보려면 다음을 참조하세요.