패브릭 사용자 데이터 함수는 패브릭 포털에서 연결 관리 기능을 사용하여 지원되는 패브릭 데이터 원본 및 항목에 대한 연결을 제공합니다. 이 기능을 사용하면 연결 문자열을 만들거나 액세스 자격 증명을 관리할 필요 없이 패브릭 데이터 원본에 연결할 수 있습니다. 데이터 원본이 아닌 패브릭 항목의 경우 함수 내에서 해당 항목에 안전하게 연결할 수 있습니다.
이 문서에서는 다음 방법을 알아봅니다.
- 사용자 데이터 함수 항목에 대한 새 연결을 만듭니다.
- 함수 코드에서 새 연결을 사용합니다.
- 데이터 연결을 수정하거나 삭제합니다.
패브릭 사용자 데이터 함수에서 지원되는 항목
현재 패브릭 사용자 데이터 함수에 대해 지원되는 항목은 다음과 같습니다.
- 읽기/쓰기 작업을 위한 패브릭 SQL 데이터베이스
- 읽기/쓰기 작업을 위한 패브릭 웨어하우스
- Lakehouse 파일에 대한 읽기/쓰기 작업 및 SQL 엔드포인트에 대한 읽기 전용 작업을 위한 패브릭 레이크하우스입니다.
- 읽기 전용 작업을 위한 패브릭 미러된 데이터베이스
- 구성 설정을 변수로 정의하는 패브릭 변수 라이브러리입니다. 자세히알아보세요.
사용자 데이터 함수 항목에 대한 새 데이터 연결 만들기
추가하는 모든 데이터 연결은 사용자 데이터 함수 항목과 연결되며 함수 코드에서 참조할 수 있습니다. 이 가이드를 따르려면 기존 패브릭 사용자 데이터 함수 항목과 기존 패브릭 데이터 원본이 필요합니다.
1. Functions 포털에서 연결 관리 기능에 액세스
개발 모드에서 Functions 포털 편집기의 리본에서 연결 관리를 찾아 선택합니다.
열리는 창에는 사용자가 만든 모든 데이터 연결이 포함됩니다. 데이터 연결 추가를 선택하여 새 연결을 만드세요.
2. OneLake 카탈로그에서 데이터 연결 선택
데이터 연결 추가를 선택하면 OneLake 카탈로그가 열리고 사용자 계정에서 액세스할 수 있는 모든 데이터 원본 목록이 열립니다. 이 목록은 지원되는 데이터 원본만 포함하도록 필터링되며, 그 중 일부는 다른 작업 영역에 있을 수 있습니다.
데이터 원본을 선택한 다음 연결을 선택합니다.
비고
찾고 있는 데이터 원본을 찾을 수 없는 경우 연결할 수 있는 올바른 권한이 있는지 확인합니다. 또는 이 문서의 시작 부분에 나열된 대로 지원되는 데이터 원본을 사용하고 있는지 확인합니다.
만든 후에는 선택한 데이터 원본에 대한 새 연결이 연결 탭의 측면 창에 표시됩니다. 연결이 표시되면 별칭 필드에 기록해 둡니다. 사용자 데이터 함수 항목의 모든 함수에서 연결을 참조하려면 이 별칭이 필요합니다.
3. 함수 코드에서 연결 별칭 사용
포털 편집기를 다시 시작하면 Manage Connections 탭에서 만든 연결의 별칭을 코드에 추가해야 합니다. 이 별칭은 연결하려는 패브릭 항목의 이름에 따라 자동으로 만들어집니다.
이 경우 "SQL Database의 테이블에서 데이터 읽기"라는 코드 샘플을 사용합니다. 편집 탭을 클릭한 다음 "샘플 삽입" 단추를 클릭하고 "SQL Database"로 이동하여 이 샘플을 찾을 수 있습니다.
삽입된 샘플 코드는 다음과 같습니다.
@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
비고
이 샘플은 SQL Database에 연결되지만 실행하려면 데이터베이스에 스키마나 데이터가 필요하지 않습니다.
만든 데이터 연결을 사용하려면, 이 샘플에서 특정 행을 수정하십시오: @udf.connection(argName="sqlDB",alias="<alias for sql database>")의 값을 alias 메뉴에서 가져온 값으로 바꾸십시오. 다음 코드는 값이 ContosoSalesDat인 예제를 보여줍니다.
@udf.connection(argName="sqlDB",alias="ContosoSalesDat")
@udf.function()
def read_from_sql_db(sqlDB: fn.FabricSqlConnection)-> list:
[...]
코드를 수정한 후 개발 모드에서 테스트 기능을 사용하여 변경 내용을 테스트할 수 있습니다. 준비가 되면 도구 모음의 게시 단추를 사용하여 함수를 게시할 수 있습니다. 이 작업은 몇 분 정도 걸릴 수 있습니다.
게시가 완료되면 함수 탐색기 목록에서 해당 이름을 마우스로 가리키고 측면 패널에서 "실행" 단추를 클릭하여 함수를 실행할 수 있습니다. 아래쪽 패널 "출력"은 함수 실행 결과를 보여줍니다.
패브릭 사용자 데이터 함수에서 데이터 원본에 연결하기만 하면 됩니다.
패브릭 변수 라이브러리에서 변수 가져오기
Microsoft Fabric의 패브릭 변수 라이브러리 는 작업 영역 내의 여러 항목에서 사용할 수 있는 변수를 관리하기 위한 중앙 집중식 리포지토리입니다. 이를 통해 개발자는 항목 구성을 효율적으로 사용자 지정하고 공유할 수 있습니다. 함수에서 변수 라이브러리를 사용하려면 다음 단계를 수행합니다.
- 연결 관리를 사용하여 변수 라이브러리에 연결을 추가하고 변수 라이브러리 항목의 별칭을 가져옵니다.
- 변수 라이브러리 항목에 대한 연결 데코레이터를 추가합니다. 예를 들어
@udf.connection(argName="varLib", alias="<My Variable Library Alias>")별칭을 변수 라이브러리 항목에 대해 새로 추가된 연결로 바꿉니다. - 함수 정의에 형식
fn.FabricVariablesClient이 있는 인수를 포함합니다. 이 클라이언트는 변수 라이브러리 항목을 사용하는 데 필요한 메서드를 제공합니다. - 메서드를 사용하여
getVariables()변수 라이브러리에서 모든 변수를 가져옵니다. - 변수의 값을 읽으려면 다음 중 하나
["variable-name"]또는.get("variable-name")를 사용합니다.
본보기 이 예제에서는 프로덕션 및 개발 환경에 대한 구성 시나리오를 시뮬레이션합니다. 이 함수는 변수 라이브러리에서 검색된 값을 사용하여 선택한 환경에 따라 스토리지 경로를 설정합니다. 변수 라이브러리에는 사용자가 값을 ENV으로 또는 dev로 설정할 수 있는 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"
관련 콘텐츠
- 패브릭 내에서 패브릭 사용자 데이터 함수 항목을 만들거나 Visual Studio Code 확장을 사용할 수 있습니다.
- 사용자 데이터 함수 프로그래밍 모델에 대해 알아보기