Del via


Kjør T-SQL-kode i Fabric Python-notatblokker

Blandingen av T-SQL og Python i moderne dataarbeidsflyter gir en kraftig og fleksibel tilnærming som blander styrkene til begge språkene. SQL er fortsatt den mest effektive og lesbare måten å spørre, filtrere og koble sammen strukturerte data på, mens Python utmerker seg ved datatransformasjon, statistisk analyse, maskinlæring og visualisering. Ved å kombinere T-SQL og Python kan dataingeniører bruke det beste fra begge verdener, slik at de kan bygge robuste pipeliner som er effektive, vedlikeholdbare og i stand til å håndtere komplekse databehandlingsoppgaver.

I Microsoft Fabric Python-notatblokker introduserte vi en ny funksjon kalt T-SQL Magic Command. Med denne funksjonen kan du kjøre T-SQL-kode direkte i Python-notatblokker med full syntaksutheving og fullføring av kode. Dette betyr at du kan skrive T-SQL-kode i en Python-notatblokk, og den vil bli utført som om den var en T-SQL-celle. Denne funksjonen er nyttig for datateknikere som ønsker å bruke kraften i T-SQL, samtidig som de bruker fleksibiliteten til Python-notatblokker.

I denne artikkelen utforsker vi kommandoen T-SQL magic i Microsoft Fabric-notatblokker. Vi dekker hvordan du aktiverer denne kommandoen, angir hvilket lager som skal brukes, og hvordan du binder resultatene av T-SQL-spørringer til Python-variabler.

Denne funksjonen er tilgjengelig for Fabric Python-notatblokker. Du må sette språket til Python i notatblokken, og celletypen til T-SQL.

Important

Denne funksjonen er i forhåndsvisning.

Bruke T-SQL Magic-kommandoen til å spørre Fabric-datalageret

Hvis du vil aktivere kommandoen T-SQL magic i Fabric-notatblokken, må du angi den %%tsql magiske kommandoen i begynnelsen av cellen. Denne kommandoen angir at koden i cellen skal behandles som T-SQL-kode.

I dette eksemplet bruker vi den magiske T-SQL-kommandoen til å spørre et Fabric Data Warehouse. Kommandoen tar følgende parametere:

  • Parameteren -artifact angir navnet på datalageret som skal brukes. T-SQL-koden i cellen kjøres mot det angitte datalageret i Fabric.
  • Parameteren -type angir typen Stoff-elementet. For Fabric Data Warehouse bruker du Warehouse.
  • Parameteren -bind angir navnet på variabelen som resultatene av T-SQL-spørringen skal bindes til. I eksemplet nedenfor lagres resultatene av spørringen i en Python-variabel kalt df1. Hvis du trenger å bruke en transformasjon på df1-variabelen, kan du gjøre dette ved hjelp av Python-kode i neste celle. Parameteren -bind er valgfri, men det anbefales å binde resultatene av T-SQL-spørringen til en Python-variabel. Med denne parameteren kan du enkelt manipulere og analysere resultatene ved hjelp av Python-kode.
  • Parameteren -workspace er valgfri og brukes hvis lageret er plassert i et annet arbeidsområde. Uten denne parameteren bruker notatblokken gjeldende arbeidsområde.
%%tsql -artifact dw1 -type Warehouse -bind df1
SELECT TOP (10) [GeographyID],
            [ZipCodeBKey],
            [County],
            [City],
            [State],
            [Country],
            [ZipCode]
FROM [dw1].[dbo].[Geography]

Skjermbilde som viser den magiske kommandoen tsql med datalageret.

Hvis både parameterne -artifact og -type hoppes over, bruker notatblokken standard lagervare i gjeldende notatblokk.

Bruke T-SQL magisk kommando for å spørre SQL-databasen

Du kan også bruke den magiske kommandoen T-SQL til å spørre en SQL-database i Fabric. Syntaksen ligner på spørring av et datavarehus, men parameteren -type må settes til SQLDatabase. Parameteren -bind angir navnet på variabelen som resultatene av T-SQL-spørringen skal bindes til.

I eksemplet nedenfor lagres resultatet av spørringen i en Python-variabel kalt df2.

%%tsql -artifact sqldb1 -type SQLDatabase -bind df2
SELECT TOP (10) [AddressID]
      ,[AddressLine1]
      ,[AddressLine2]
      ,[City]
      ,[StateProvince]
      ,[CountryRegion]
      ,[PostalCode]
      ,[rowguid]
      ,[ModifiedDate]
  FROM [SalesLT].[Address];

Skjermbilde som viser den magiske kommandoen tsql med SQL-databasen.

Bruke T-SQL magisk kommando til å spørre SQL-analyseendepunkt for lakehouse

Du kan også bruke den magiske kommandoen T-SQL til å spørre et SQL-analyseendepunkt. Syntaksen ligner på spørring av et datavarehus, men parameteren -type må settes til Lakehouse. Parameteren -bind angir navnet på variabelen som resultatene av T-SQL-spørringen skal bindes til.

I eksemplet nedenfor lagres resultatet av spørringen i en Python-variabel kalt df3.

%%tsql -artifact lakehouse1 -type Lakehouse -bind df3
SELECT TOP (10) [ProductID],
      [Name],
      [ProductNumber],
      [Color],
      [StandardCost],
      [ListPrice]
FROM [lakehouse1].[dbo].[Product];

Bruke T-SQL magic-kommandoen som linjemagi

I stedet for å kjøre T-SQL i en full kodecelle med %%tsql, kan du kjøre T-SQL i én linje med %tsql som linjemagi. Du må imidlertid først etablere en sesjonsforbindelse.

Important

Før du bruker %tsql Line Magic, må du kjøre en %%tsql cell magic-kommando med parameteren -session for å initialisere SQL-magic-konteksten. Kjøring %tsql uten dette oppsettet vil resultere i en SQLMagicContextInitializationException.

Forutsetninger for linjemagi

  1. Initialiser økten: I en celle som bruker magikommandoen %%tsql , inkluder parameteren -session for å etablere tilkoblingskonteksten. Eksempel:

    %%tsql -artifact ContosoDWH -type Warehouse -session
    SELECT TOP(10) * FROM [ContosoDWH].[dbo].[Geography];
    
  2. Bruk linjemagi: Etter å ha initialisert økten, kan du bruke %tsql i følgende celler. Linjemagien vil bruke forbindelsen etablert i steg 1 uten at du må spesifisere -artifact og -type igjen. Eksempel:

    df = %tsql SELECT TOP(10) * FROM [ContosoDWH].[dbo].[Geography];
    

Skjermbilde som viser den magiske kommandoen tsql med linjemagi.

Referere til Python-variabler i T-SQL

Du kan også referere til Python-variabler i T-SQL-kode. Hvis du vil gjøre dette, bruker du symbolet {} etterfulgt av navnet på Python-variabelen. Hvis du for eksempel har en Python-variabel kalt count, kan du referere til den som følger i T-SQL-koden:

count = 10

df = %tsql SELECT TOP({count}) * FROM [dw1].[dbo].[Geography];

Skjermbilde som viser den magiske kommandoen tsql med python-variabelen referanse.

Hvis du vil se hele syntaksen %tsql? , bruker du kommandoen. Denne kommandoen viser hjelpeinformasjonen for T-SQL Magic-kommandoen, inkludert tilgjengelige parametere og deres beskrivelser.

Note

Du kan kjøre alle DML- og DDL-kommandoene mot datalageret eller SQL-databasen, men bare skrivebeskyttet spørring mot sql-endepunktet i lakehouse.

Hvis du vil ha mer informasjon om Fabric-notatblokker, kan du se følgende artikler.