NotebookUtils 레이크하우스 유틸리티 모음

Fabric 노트북에서 레이크하우스 아이템을 프로그래밍적으로 관리하는 데 사용 notebookutils.lakehouse 하세요. 노트북 코드에서 직접 호숫가를 생성, 획득, 업데이트, 삭제, 나열할 수 있습니다.

Lakehouse 유틸리티는 Python, PySpark, Scala, R 노트북에서 제공됩니다. 이 페이지의 예제에서는 Python을 기본 언어로 사용하고 주요 메서드에 대해 Scala 및 R에 해당하는 항목이 표시됩니다.

메모

Lakehouse 유틸리티는 Fabric에서만 지원됩니다. Azure Synapse Analytics에서는 사용할 수 없습니다.

사용 가능한 메서드 및 해당 설명을 표시하려면 .를 호출 notebookutils.lakehouse.help()합니다.

방법 개요

다음 표에서는 사용 가능한 메서드를 요약합니다.

메서드 설명 Returns
create 새로운 레이크하우스를 생성하고, 선택적으로 스키마 지원도 가능합니다. Artifact 속성이 있는 개체: id, displayName, descriptionworkspaceId.
get 이름으로 호숫가 집을 검색합니다. Artifact 기본 메타데이터가 있는 개체입니다.
getWithProperties 확장된 부동산이 있는 호숫가 별장을 되찾는다. Artifact 확장된 메타데이터 및 연결 세부 정보가 있는 개체입니다.
update 기존 호숫가 하우스 이름이나 설명을 업데이트합니다. 업데이트된 Artifact 개체입니다.
delete 호숫가 집을 삭제합니다. Boolean; 성공하면 True이고, 그렇지 않으면 False입니다.
list 작업 공간에 호숫가 집을 나열합니다. 개체의 Artifact 배열입니다.
listTables 호숫가 집에 테이블을 나열해 놓았어요. 개체의 Table 배열입니다.
loadTable 호숫가 테이블의 부하 작업을 시작합니다. Boolean; 성공하면 True이고, 그렇지 않으면 False입니다.
# Method signatures
notebookutils.lakehouse.create(name: String, description: String = "", definition: Object = {}, workspaceId: String = ""): Artifact
notebookutils.lakehouse.get(name: String = "", workspaceId: String = ""): Artifact
notebookutils.lakehouse.getWithProperties(name: String, workspaceId: String = ""): Artifact
notebookutils.lakehouse.update(name: String, newName: String, description: String = "", workspaceId: String = ""): Artifact
notebookutils.lakehouse.delete(name: String, workspaceId: String = ""): Boolean
notebookutils.lakehouse.list(workspaceId: String = "", maxResults: Int = 1000): Array[Artifact]
notebookutils.lakehouse.listTables(lakehouse: String = "", workspaceId: String = "", maxResults: Int = 1000): Array[Table]
notebookutils.lakehouse.loadTable(loadOption: Object, table: String, lakehouse: String = "", workspaceId: String = ""): Boolean

모든 메서드는 선택적 workspaceId 매개 변수를 허용합니다. 생략하면 작업이 현재 작업 영역을 대상으로 합니다. 작업 영역 간 액세스에 대한 작업 영역 ID를 지정합니다. 대상 작업 영역에 적절한 권한이 있어야 합니다.

레이크하우스 만들기

현재 작업 공간 또는 지정된 작업 공간에 새로운 레이크하우스를 생성하는 데 사용 notebookutils.lakehouse.create() 하세요. Lakehouse 이름은 작업 영역 내에서 고유해야 합니다.

매개 변수

매개 변수 유형 필수 설명
name 스트링 호숫가 별장의 표시 이름. 작업 영역 내에서 고유해야 합니다.
description 스트링 No 호숫가 별장에 대한 텍스트 설명입니다.
definition 객체 No 호숫가 집을 위한 구조화된 정의 객체입니다. 스키마 지원을 활성화하려면 {"enableSchemas": True} 또는 해당 언어의 객체 형식을 전달하세요.
workspaceId 스트링 No 대상 작업 영역 ID입니다. 기본값은 현재 작업 영역입니다.

기본 레이크하우스 만들기

artifact = notebookutils.lakehouse.create("lakehouse_name", "Description of the Lakehouse")

메모

노트북 코드에서 Python 딕셔너리, Scala definition, R 리스트와 같은 구조화된 객체를 Map에 입력합니다.

스키마 지원이 포함된 호숫가 집 생성

스키마 지원을 활성화하면 레이크하우스가 테이블 정리를 위한 여러 스키마를 지원합니다. {"enableSchemas": True}definition 매개 변수로 전달합니다.

artifact = notebookutils.lakehouse.create(
    "SalesAnalyticsWithSchema",
    "Lakehouse with schema support for multi-tenant data",
    {"enableSchemas": True}
)

print(f"Created lakehouse with schema support: {artifact.displayName}")
print(f"Lakehouse ID: {artifact.id}")

다른 작업 영역에서 Lakehouse 만들기

workspace_id = "aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb"

artifact = notebookutils.lakehouse.create(
    name="SharedAnalytics",
    description="Shared analytics lakehouse",
    workspaceId=workspace_id
)

print(f"Created lakehouse in workspace: {workspace_id}")

배치 제작 호숫가 집

여러 개의 레이크하우스를 루프 내에 만들어 서로 다른 팀이나 프로젝트를 위한 환경을 프로비저닝할 수 있습니다:

departments = ["Sales", "Marketing", "Finance", "Operations"]

created_lakehouses = []
for dept in departments:
    lakehouse = notebookutils.lakehouse.create(
        name=f"{dept}Analytics",
        description=f"Analytics lakehouse for {dept} department"
    )
    created_lakehouses.append(lakehouse)
    print(f"Created: {lakehouse.displayName}")

print(f"Created {len(created_lakehouses)} lakehouses")

팁 (조언)

호숫가의 목적을 반영하는 설명적인 이름을 사용하세요. 환경별 분리를 위한 명명 규칙(dev, test, prod)을 고려해 보세요.

호숫가 집을 구하세요

notebookutils.lakehouse.get() 호숫가 집 이름을 불러올 수 있습니다. 이름을 빼면 NotebookUtils는 현재 기본 레이크하우스를 사용합니다.

매개 변수

매개 변수 유형 필수 설명
name 스트링 No 회수할 호숫가 별장 이름. 생략하면 현재 호숫가 집으로 기본 설정됩니다.
workspaceId 스트링 No 대상 작업 영역 ID입니다. 기본값은 현재 작업 영역입니다.
artifact = notebookutils.lakehouse.get("lakehouse_name", "optional_workspace_id")

print(f"Lakehouse Name: {artifact.displayName}")
print(f"Lakehouse ID: {artifact.id}")
print(f"Workspace ID: {artifact.workspaceId}")

확장 부동산이 있는 호숫가 집을 구하세요

연결 문자열 또는 구성 세부 정보와 같은 기본 메타데이터 이외의 확장 속성이 필요한 경우 사용합니다 notebookutils.lakehouse.getWithProperties() .

artifact = notebookutils.lakehouse.getWithProperties("lakehouse_name", "optional_workspace_id")

print(f"Lakehouse: {artifact.displayName}")
print(f"Properties: {artifact.properties}")

다른 작업 공간에서 호숫가 집을 구하세요

workspace_id = "bbbbbbbb-2222-3333-4444-cccccccccccc"
artifact = notebookutils.lakehouse.get("SharedData", workspaceId=workspace_id)

print(f"Retrieved: {artifact.displayName} from workspace {workspace_id}")

Lakehouse 업데이트하기

기존 호숫가 집의 이름이나 설명을 업데이트하는 데 사용 notebookutils.lakehouse.update() 하세요.

중요합니다

호숫가의 이름을 바꾸면 노트북, 파이프라인, 또는 원래 이름을 참조하는 단축 경로와 같은 하위 의존성을 깨뜨릴 수 있습니다. 적용하기 전에 팀과 함께 이름을 바꿉니다.

매개 변수

매개 변수 유형 필수 설명
name 스트링 호숫가 별장의 현재 이름입니다.
newName 스트링 호숫가 집의 새 이름.
description 스트링 No 설명이 업데이트되었습니다.
workspaceId 스트링 No 대상 작업 영역 ID입니다. 기본값은 현재 작업 영역입니다.
updated_artifact = notebookutils.lakehouse.update(
    "old_name",
    "new_name",
    "Updated description",
    "optional_workspace_id"
)

print(f"Updated lakehouse: {updated_artifact.displayName}")

Lakehouse 삭제하기

작업 공간에서 호숫가 집을 영구적으로 제거하는 데 사용 notebookutils.lakehouse.delete() 하세요.

주의

삭제는 영구적이며 실행 취소할 수 없습니다. 삭제 전에 레이크하우스 이름을 확인하고, 이를 참조하는 종속 노트북, 파이프라인, 워크플로우가 있는지 확인하세요.

매개 변수

매개 변수 유형 필수 설명
name 스트링 삭제할 호숫가 집 이름.
workspaceId 스트링 No 대상 작업 영역 ID입니다. 기본값은 현재 작업 영역입니다.
is_deleted = notebookutils.lakehouse.delete("lakehouse_name", "optional_workspace_id")

if is_deleted:
    print("Lakehouse deleted successfully")
else:
    print("Failed to delete lakehouse")

호숫가 하우스 목록

작업 공간에서 호숫가 집을 열거하는 데 사용 notebookutils.lakehouse.list() 하세요.

매개 변수

매개 변수 유형 필수 설명
workspaceId 스트링 No 대상 작업 영역 ID입니다. 기본값은 현재 작업 영역입니다.
maxResults 정수 (Int) No 반환할 최대 항목 수입니다. 기본값은 1000입니다.
artifacts_list = notebookutils.lakehouse.list("optional_workspace_id")

print(f"Found {len(artifacts_list)} lakehouses:")
for lh in artifacts_list:
    print(f"  - {lh.displayName} (ID: {lh.id})")

메모

Scala에서 메서드는 listmaxResults 다른 Notebook 언어와 동일한 방법을 지원합니다. 예를 들면 list(workspaceId, maxResults)를 사용합니다.

테이블 목록

호숫가 집 내 모든 테이블을 나열하는 데 사용 notebookutils.lakehouse.listTables() 하세요.

매개 변수

매개 변수 유형 필수 설명
lakehouse 스트링 No 호숫가 별장 이름. 생략하면 현재 호숫가 집으로 기본 설정됩니다.
workspaceId 스트링 No 대상 작업 영역 ID입니다. 기본값은 현재 작업 영역입니다.
maxResults 정수 (Int) No 반환할 최대 항목 수입니다. 기본값은 1000입니다.
artifacts_tables_list = notebookutils.lakehouse.listTables("lakehouse_name", "optional_workspace_id")

테이블 불러오기

파일을 레이크하우스 테이블로 불러오는 용도로 사용 notebookutils.lakehouse.loadTable() 하세요.

매개 변수

매개 변수 유형 필수 설명
loadOption 객체 파일 경로, 모드, 형식 및 기타 로드 설정을 지정하는 구조적 로드 옵션입니다.
table 스트링 대상 테이블의 이름입니다.
lakehouse 스트링 No 호숫가 별장 이름. 생략하면 현재 호숫가 집으로 기본 설정됩니다.
workspaceId 스트링 No 대상 작업 영역 ID입니다. 기본값은 현재 작업 영역입니다.

개체는 loadOption 다음 키를 지원합니다.

암호키 설명
relativePath 레이크하우스 루트에 대한 소스 파일의 경로(예: Files/myFile.csv).
pathType 경로 유형입니다. File을(를) 단일 파일에 사용합니다.
mode 로드 모드(예: Overwrite 또는 Append.
recursive 하위 폴더에 파일을 포함하도록 True 설정합니다.
formatOptions 형식별 설정(예: format, headerdelimiter.)이 있는 사전

Example:

result = notebookutils.lakehouse.loadTable(
    {
        "relativePath": "Files/myFile.csv",
        "pathType": "File",
        "mode": "Overwrite",
        "recursive": False,
        "formatOptions": {
            "format": "Csv",
            "header": True,
            "delimiter": ","
        }
    }, "table_name", "lakehouse_name", "optional_workspace_id")

if result:
    print("Table loaded successfully")
else:
    print("Table load failed")