Fabric 노트북에서 레이크하우스 아이템을 프로그래밍적으로 관리하는 데 사용 notebookutils.lakehouse 하세요. 노트북 코드에서 직접 호숫가를 생성, 획득, 업데이트, 삭제, 나열할 수 있습니다.
Lakehouse 유틸리티는 Python, PySpark, Scala, R 노트북에서 제공됩니다. 이 페이지의 예제에서는 Python을 기본 언어로 사용하고 주요 메서드에 대해 Scala 및 R에 해당하는 항목이 표시됩니다.
메모
Lakehouse 유틸리티는 Fabric에서만 지원됩니다. Azure Synapse Analytics에서는 사용할 수 없습니다.
사용 가능한 메서드 및 해당 설명을 표시하려면 .를 호출 notebookutils.lakehouse.help()합니다.
방법 개요
다음 표에서는 사용 가능한 메서드를 요약합니다.
| 메서드 | 설명 | Returns |
|---|---|---|
create |
새로운 레이크하우스를 생성하고, 선택적으로 스키마 지원도 가능합니다. |
Artifact 속성이 있는 개체: id, displayName, description및 workspaceId. |
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, header및 delimiter.)이 있는 사전 |
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")