Dela via


Kör T-SQL-kod i Python-notebooks i Fabric

Blandningen av T-SQL och Python i moderna dataarbetsflöden erbjuder ett kraftfullt och flexibelt tillvägagångssätt som blandar styrkan i båda språken. SQL är fortfarande det mest effektiva och läsbara sättet att fråga, filtrera och koppla strukturerade data, medan Python utmärker sig för datatransformering, statistisk analys, maskininlärning och visualisering. Genom att kombinera T-SQL och Python kan datatekniker använda det bästa av två världar, vilket gör att de kan skapa robusta datapipelines som är effektiva, underhållsbara och kan hantera komplexa databearbetningsuppgifter.

I Microsoft Fabric Python-notebook-filer introducerade vi en ny funktion med namnet T-SQL Magic Command. Med den här funktionen kan du köra T-SQL-kod direkt i Python-notebook-filer med fullständig syntaxmarkering och kodkomplettering. Det innebär att du kan skriva T-SQL-kod i en Python-notebook-fil och att den körs som om den vore en T-SQL-cell. Den här funktionen är användbar för datatekniker som vill använda kraften i T-SQL medan de fortfarande använder flexibiliteten i Python-notebook-filer.

I den här artikeln utforskar vi det magiska T-SQL-kommandot i Microsoft Fabric-notebook-filer. Vi går igenom hur du aktiverar det här kommandot, anger vilket lager som ska användas och hur du binder resultatet av T-SQL-frågor till Python-variabler.

Den här funktionen är tillgänglig för Fabric Python-notebook-filer. Du måste ange språket som Python i anteckningsboken.

Viktigt!

Den här funktionen är i förhandsversion.

Använda ett magiskt T-SQL-kommando för att fråga Fabric-informationslagret

Om du vill aktivera det magiska T-SQL-kommandot i din Fabric-notebook-fil måste du ange det %%tsql magiska kommandot i början av cellen. Det här kommandot anger att koden i cellen ska behandlas som T-SQL-kod.

I det här exemplet använder vi T-SQL magic-commandot för att köra frågor mot ett Fabric Data Warehouse. Kommandot tar följande parametrar:

  • Parametern -artifact anger namnet på informationslagret som ska användas. T-SQL-koden i cellen körs mot det angivna informationslagret.
  • Parametern -type anger artefaktens typ, som i det här fallet är ett informationslager.
  • Parametern -bind anger namnet på variabeln som T-SQL-frågans resultat ska bindas till. I följande exempel lagras resultatet av frågan i en Python-variabel med namnet df1. Om du behöver tillämpa en transformering på df1-variabeln kan du göra det med hjälp av Python-kod i nästa cell. Parametern -bind är valfri, men vi rekommenderar att du binder resultatet av T-SQL-frågan till en Python-variabel. Med den här parametern kan du enkelt manipulera och analysera resultaten med hjälp av Python-kod.
  • Parametern -workspace är valfri och används om lagret finns på en annan arbetsyta. Utan denna parameter använder notebooken den aktuella arbetsytan.
%%tsql -artifact dw1 -type Warehouse -bind df1
SELECT TOP (10) [GeographyID],
			[ZipCodeBKey],
			[County],
			[City],
			[State],
			[Country],
			[ZipCode]
FROM [dw1].[dbo].[Geography]

Skärmbild som visar det magiska kommandot tsql med informationslagret.

Om både parametrarna -artifact och -type hoppar över använder notebooken standardinformationslagret i den aktuella notebooken.

Använda T-SQL-magikommandot för att anropa SQL-databasen

Du kan också använda det magiska T-SQL-kommandot för att köra frågor mot en FABRIC SQL Database. Syntaxen liknar att köra frågor mot ett informationslager, men artefaktparametern måste vara inställd på SQLDatabase. Parametern -bind anger namnet på variabeln som T-SQL-frågans resultat ska bindas till. I följande exempel lagras resultatet av frågan i en Python-variabel med namnet df2.

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

Skärmbild som visar ett magiskt tsql-kommando med sql database.

Använda T-SQL-magi-kommando för att köra förfrågningar mot lakehouse SQL-slutpunkt

Du kan också använda T-SQL-magi-kommandot för att köra frågor mot en Fabric SQL-slutpunkt. Syntaxen liknar att köra frågor mot ett informationslager, men artefaktparametern måste vara inställd på Lakehouse.

Använda T-SQL-magiskt kommando som linjemagi

Förutom att köra T-SQL i en fullständig kodcell med %%tsqlkan du också köra T-SQL på en enda rad med %tsql som linjemagi. Med följande radkommando kan du köra snabbfrågor utan att behöva skapa en fullständig kodcell.

df = %tsql select top(10) * from [dw1].[dbo].[Geography]

Skärmbild som visar det magiska kommandot tsql med radmagi.

Referera till Python-variabler i T-SQL

Du kan också referera till Python-variabler i T-SQL-kod. Om du vill göra det använder du symbolen {} följt av namnet på Python-variabeln. Om du till exempel har en Python-variabel med namnet countkan du referera till den enligt följande i din T-SQL-kod:

count = 10

df = %tsql select top({count}) * from [dw1].[dbo].[Geography]

Skärmbild som visar det magiska kommandot tsql med referensvariabeln python.

Om du vill se den fullständiga syntaxen använder du %tsql? kommandot . Det här kommandot visar hjälpinformationen för det magiska T-SQL-kommandot, inklusive tillgängliga parametrar och deras beskrivningar.

Anmärkning

Du kan köra fullständiga DML- och DDL-kommandon mot informationslagret eller SQL-databasen, men endast skrivskyddade frågor mot lakehouse SQL-slutpunkten.

Mer information om Fabric-notebook-filer finns i följande artiklar.