T-SQL-code uitvoeren in Fabric Python-notebooks

De combinatie van T-SQL en Python in moderne gegevenswerkstromen biedt een krachtige en flexibele benadering die de sterke punten van beide talen combineert. SQL blijft de meest efficiënte en leesbare manier om gestructureerde gegevens op te vragen, te filteren en samen te voegen, terwijl Python excelleert over gegevenstransformatie, statistische analyse, machine learning en visualisatie. Door T-SQL en Python te combineren, kunnen data engineers het beste van beide werelden gebruiken, zodat ze robuuste pijplijnen kunnen bouwen die efficiënt, onderhoudbaar zijn en complexe gegevensverwerkingstaken kunnen verwerken.

In Fabric Python notebooks introduceerden we een nieuwe functie genaamd T-SQL magic command. Met deze functie kunt u T-SQL-code rechtstreeks uitvoeren in Python-notebooks met volledige syntaxismarkering en het voltooien van code. Dit betekent dat u T-SQL-code kunt schrijven in een Python-notebook en dat deze wordt uitgevoerd alsof het een T-SQL-cel is. Deze functie is handig voor data engineers die de kracht van T-SQL willen gebruiken terwijl ze nog steeds de flexibiliteit van Python-notebooks gebruiken.

In dit artikel verkennen we het T-SQL magische commando in Fabric-notebooks. We bespreken hoe u deze opdracht inschakelt, opgeeft welk magazijn moet worden gebruikt en hoe u de resultaten van T-SQL-query's koppelt aan Python-variabelen.

Deze functie is beschikbaar voor Fabric Python-notebooks. U moet de taal instellen op Python in het notebook en het celtype op T-SQL.

Important

Deze functie is beschikbaar als preview-versie.

Een T-SQL-magic-opdracht gebruiken om een query uit te voeren op Fabric-datawarehouse

Als u de T-SQL-magic-opdracht in uw Fabric-notebook wilt inschakelen, moet u de %%tsql magic-opdracht instellen aan het begin van de cel. Met deze opdracht wordt de code in die cel als T-SQL-code behandeld.

In dit voorbeeld gebruiken we het T-SQL magische commando om een warehouse in Fabric te bevragen. De opdracht gebruikt de volgende parameters:

  • De -artifact parameter specificeert de naam van het magazijn dat gebruikt moet worden. De T-SQL-code in de cel wordt uitgevoerd tegen het opgegeven warehouse in Fabric.
  • De -type parameter geeft het type van het fabric-item op. Voor magazijnen in Fabric, gebruik Warehouse.
  • De -bind parameter geeft de naam van de variabele op waarmee de resultaten van de T-SQL-query moeten worden gekoppeld. In het volgende voorbeeld worden de resultaten van de query opgeslagen in een Python-variabele met de naam df1. Als u een transformatie wilt toepassen op de variabele df1, kunt u dit doen met behulp van Python-code in de volgende cel. De -bind parameter is optioneel, maar het wordt aanbevolen om de resultaten van de T-SQL-query te binden aan een Python-variabele. Met deze parameter kunt u de resultaten eenvoudig bewerken en analyseren met behulp van Python-code.
  • De -workspace parameter is optioneel en wordt gebruikt als het magazijn zich in een andere werkruimte bevindt. Zonder deze parameter gebruikt het notebook de huidige werkruimte.
%%tsql -artifact dw1 -type Warehouse -bind df1
SELECT TOP (10) [GeographyID],
            [ZipCodeBKey],
            [County],
            [City],
            [State],
            [Country],
            [ZipCode]
FROM [dw1].[dbo].[Geography]

Screenshot met het tsql magic-commando met de warehouse-parameter.

Als zowel de -artifact- als de -type-parameters worden overgeslagen, gebruikt het notebook het standaard-warehouse-item in het huidige notebook.

Een T-SQL-magic-opdracht gebruiken om een query uit te voeren op SQL-database

U kunt ook de T-SQL-magic-opdracht gebruiken om een query uit te voeren op een SQL-database in Fabric. De syntaxis lijkt op het queryen van een warehouse, maar de -type parameter moet worden ingesteld op SQLDatabase. De -bind parameter geeft de naam van de variabele op waarmee de resultaten van de T-SQL-query moeten worden gekoppeld.

In het volgende voorbeeld wordt het resultaat van de query opgeslagen in een Python-variabele met de naam df2.

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

Schermopname van de tsql-magic-opdracht met sql-database.

Een T-SQL-magic-opdracht gebruiken om een query uit te voeren op het SQL-analyse-eindpunt van Lakehouse

U kunt ook de T-SQL Magic-opdracht gebruiken om een query uit te voeren op een SQL-analyse-eindpunt. De syntaxis lijkt op het queryen van een warehouse, maar de -type parameter moet worden ingesteld op Lakehouse. De -bind parameter geeft de naam van de variabele op waarmee de resultaten van de T-SQL-query moeten worden gekoppeld.

In het volgende voorbeeld wordt het resultaat van de query opgeslagen in een Python-variabele met de naam df3.

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

T-SQL magic-opdracht gebruiken als regelmagie

In plaats van T-SQL uit te voeren in een volledige codecel met %%tsql, kunt u T-SQL op één regel uitvoeren met %tsql als line magic. U moet echter eerst een sessieverbinding tot stand brengen.

Important

Voordat u line magic %tsql gebruikt, moet u een celmagic-opdracht %%tsql uitvoeren met de -session parameter om de SQL-magic-context te initialiseren. Als %tsql zonder deze installatie wordt uitgevoerd, resulteert dit in een SQLMagicContextInitializationException.

Vereisten voor line magic

  1. Initialiseer de sessie: Neem in een cel die gebruikmaakt van de %%tsql magic-opdracht de parameter -session op om de verbindingscontext tot stand te brengen. Voorbeeld:

    %%tsql -artifact ContosoDWH -type Warehouse -session
    SELECT TOP(10) * FROM [ContosoDWH].[dbo].[Geography];
    
  2. Gebruik regelmagie: Nadat u de sessie hebt geïnitialiseerd, kunt u deze gebruiken %tsql in de volgende cellen. De regelmagie gebruikt de verbinding die in stap 1 is tot stand gebracht zonder dat u -artifact en -type opnieuw hoeft op te geven. Voorbeeld:

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

Schermopname van de tsql magic-opdracht met line magic.

Verwijs naar Python-variabelen in T-SQL

U kunt ook verwijzen naar Python-variabelen in T-SQL-code. Gebruik hiervoor het {} symbool gevolgd door de naam van de Python-variabele. Als u bijvoorbeeld een Python-variabele hebt met de naam count, kunt u deze als volgt raadplegen in uw T-SQL-code:

count = 10

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

Schermopname van de tsql magic-opdracht met de python-referentievariabele.

Gebruik de %tsql? opdracht om de volledige syntaxis te zien. Met deze opdracht worden de Help-informatie voor de T-SQL-magic-opdracht weergegeven, inclusief de beschikbare parameters en de bijbehorende beschrijvingen.

Note

U kunt de volledige DML- en DDL-opdrachten uitvoeren op een datawarehouse of SQL-database, maar alleen alleen-lezenquery's uitvoeren op het SQL-analyse-eindpunt van het lakehouse.

Zie de volgende artikelen voor meer informatie over Fabric-notebooks.