Udostępnij za pomocą


Łączenie z elementami Fabric z elementu funkcji danych użytkownika Fabric

Funkcje danych użytkowników Fabric zapewniają połączenia z obsługiwanymi źródłami danych i elementami przy użyciu funkcji Zarządzanie połączeniami w portalu Fabric. Ta funkcja umożliwia łączenie się ze źródłami danych sieci Szkieletowej bez konieczności tworzenia parametrów połączenia ani zarządzania poświadczeniami dostępu. W przypadku elementów z tkaniny, które nie są źródłem danych, można bezpiecznie połączyć się z tymi elementami za pomocą funkcji.

Z tego artykułu dowiesz się, jak wykonywać następujące działania:

  • Utwórz nowe połączenie dla elementu funkcji danych użytkownika.
  • Użyj nowego połączenia w kodzie funkcji.
  • Zmodyfikuj lub usuń połączenie danych.

Obsługiwane elementy w funkcjach danych użytkownika Fabric

Następujące elementy są obecnie obsługiwane w przypadku funkcji danych użytkownika Fabric:

Tworzenie nowego połączenia danych dla elementu funkcji danych użytkownika

Wszelkie wprowadzone połączenia danych są skojarzone z elementem danych użytkownika i mogą być przywoływane w kodzie dowolnej z twoich funkcji. Aby postępować zgodnie z tym przewodnikiem, potrzebujesz istniejącego elementu funkcji danych użytkownika sieci szkieletowej i istniejącego źródła danych sieci szkieletowej.

1. Uzyskiwanie dostępu do funkcji Zarządzanie połączeniami z poziomu portalu usługi Functions

W trybie programowania znajdź i wybierz pozycję Zarządzaj połączeniami na wstążce edytora portalu Funkcji.

Zrzut ekranu przedstawiający edytor portalu funkcji z wyróżnionym przyciskiem Zarządzanie połączeniami.

Otwarte okienko zawiera wszystkie utworzone połączenia danych. Wybierz Dodaj połączenie danych, aby utworzyć nowe połączenie.

Zrzut ekranu przedstawiający okienko boczne z wybraną zakładką Połączenia i bez połączeń na liście.

2. Wybierz połączenie danych z katalogu OneLake

Gdy wybierzesz Dodaj połączenie danych, otworzy się katalog OneLake z listą wszystkich źródeł danych, do których ma dostęp twoje konto użytkownika. Lista jest filtrowana w celu uwzględnienia tylko obsługiwanych źródeł danych, z których niektóre mogą znajdować się w innych obszarach roboczych.

Wybierz źródło danych, a następnie wybierz Połącz.

Zrzut ekranu przedstawiający wykaz danych usługi OneLake z listą źródeł danych.

Uwaga

Jeśli nie możesz znaleźć szukanych źródeł danych, upewnij się, że masz odpowiednie uprawnienia do nawiązania z nim połączenia. Możesz też upewnić się, że używasz obsługiwanego źródła danych, jak pokazano na początku tego artykułu.

Po utworzeniu nowe połączenie z wybranym źródłem danych jest wyświetlane w okienku bocznym na karcie Połączenia. Gdy zobaczysz połączenie, zanotuj pole "Alias", które zostało dla niego wygenerowane. Ten alias jest potrzebny do odwołowania się do połączenia z dowolnej funkcji w elemencie funkcji danych użytkownika.

Zrzut ekranu przedstawiający okienko boczne połączeń z utworzonym nowym połączeniem ze źródłem danych.

3. Użyj aliasu połączenia w kodzie funkcji

Po powrocie do edytora portalu należy dodać alias połączenia, które utworzyłeś na karcie Manage Connections, do swojego kodu. Ten alias jest tworzony automatycznie na podstawie nazwy elementu Fabric, z którym nawiązujesz połączenie.

W tym przypadku użyjemy przykładu kodu o nazwie "Odczyt danych z tabeli w usłudze SQL Database". Ten przykład można znaleźć, klikając kartę Edytuj, a następnie klikając przycisk "Wstaw przykład" i przechodząc do pozycji "SQL Database".

Zrzut ekranu przedstawiający wstaw przykładowy wykaz danych z listą źródeł danych.

Jest to przykładowy kod, który został wstawiony:

@udf.connection(argName="sqlDB",alias="<alias for sql database>")
@udf.function()
def read_from_sql_db(sqlDB: fn.FabricSqlConnection)-> list:
    # Replace with the query you want to run
    query = "SELECT * FROM (VALUES ('John Smith', 31), ('Kayla Jones', 33)) AS Employee(EmpName, DepID);"

    # Establish a connection to the SQL database
    connection = sqlDB.connect()
    cursor = connection.cursor()

    query.capitalize()

    # Execute the query
    cursor.execute(query)

    # Fetch all results
    results = []
    for row in cursor.fetchall():
        results.append(row)

    # Close the connection
    cursor.close()
    connection.close()
        
    return results

Uwaga

Ten przykład łączy się z bazą danych SQL, ale nie wymaga schematu ani danych w Twojej bazie danych do uruchomienia.

Aby użyć utworzonego połączenia danych, zmodyfikuj następujący wiersz w tym przykładzie: @udf.connection(argName="sqlDB",alias="<alias for sql database>") zastępując wartość elementu alias wartością uzyskaną z menu Manage Connections. Poniższy kod przedstawia ten przykład z wartością ContosoSalesDat:

@udf.connection(argName="sqlDB",alias="ContosoSalesDat")
@udf.function()
def read_from_sql_db(sqlDB: fn.FabricSqlConnection)-> list:
    [...]

Po zmodyfikowaniu kodu możesz przetestować zmiany przy użyciu funkcji Testuj w trybie programowania. Gdy wszystko będzie gotowe, możesz opublikować funkcję przy użyciu przycisku Publikuj na pasku narzędzi. Ta operacja może potrwać kilka minut.

Zrzut ekranu przedstawiający przycisk

Po zakończeniu publikowania możesz uruchomić funkcję, umieszczając kursor na jej nazwie w Eksploratorze funkcji i klikając przycisk "Uruchom" w panelu bocznym. W dolnym panelu "Dane wyjściowe" zostanie wyświetlony wynik uruchomienia funkcji.

Zrzut ekranu panelu bocznego służącego do uruchamiania funkcji.

To wszystko, czego potrzebujesz, aby nawiązać połączenie ze źródłem danych z funkcji użytkownika danych w Fabric.

Pobieranie zmiennych z bibliotek zmiennych Fabric

Biblioteka Zmiennych Fabric w usłudze Microsoft Fabric to scentralizowane repozytorium do zarządzania zmiennymi, które mogą być używane w różnych elementach obszaru roboczego. Umożliwia deweloperom wydajne dostosowywanie i udostępnianie konfiguracji elementów. Wykonaj następujące kroki, aby użyć bibliotek zmiennych w funkcjach:

  1. Dodaj połączenie do biblioteki zmiennych przy użyciu opcji Zarządzaj połączeniami i uzyskaj alias dla elementu biblioteki zmiennych.
  2. Dodaj dekorator połączeń dla elementu biblioteki zmiennych. Na przykład @udf.connection(argName="varLib", alias="<My Variable Library Alias>") i zamień alias, wskazując na nowo dodane połączenie dla elementu biblioteki zmiennych.
  3. W definicji funkcji dołącz argument o typie fn.FabricVariablesClient. Ten klient udostępnia metody potrzebne do pracy z elementem biblioteki zmiennych.
  4. Użyj getVariables() metody , aby pobrać wszystkie zmienne z biblioteki zmiennych.
  5. Aby odczytać wartości zmiennych, użyj polecenia ["variable-name"] lub .get("variable-name").

Przykład W tym przykładzie symulujemy scenariusz konfiguracji dla środowiska produkcyjnego i programistycznego. Ta funkcja ustawia ścieżkę magazynowania w zależności od wybranego środowiska przy użyciu wartości pobranej z biblioteki zmiennych. Biblioteka zmiennych zawiera zmienną o nazwie ENV , w której użytkownicy mogą ustawić wartość dev lub prod.

@udf.connection(argName="varLib", alias="<My Variable Library Alias>")
@udf.function()
def get_storage_path(dataset: str, varLib: fn.FabricVariablesClient) -> str:
    """
    Description: Determine storage path for a dataset based on environment configuration from Variable Library.
    
    Args:
        dataset_name (str): Name of the dataset to store.
        varLib (fn.FabricVariablesClient): Fabric Variable Library connection.
    
    Returns:
        str: Full storage path for the dataset.
    """
    # Retrieve variables from Variable Library
    variables = varLib.getVariables()
    
    # Get environment and base paths
    env = variables.get("ENV")    
    dev_path = variables.get("DEV_FILE_PATH")
    prod_path = variables.get("PROD_FILE_PATH")
    
    # Apply environment-specific logic
    if env.lower() == "dev":
        return f"{dev_path}{dataset}/"
    elif env.lower() == "prod":
        return f"{prod_path}{dataset}/"
    else:
        return f"incorrect settings define for ENV variable"