Служебные программы NotebookUtils lakehouse

Используйте notebookutils.lakehouse для программного управления элементами Lakehouse в записных книжках Fabric. Вы можете создавать, получать, обновлять, удалять и перечислять Lakehouses непосредственно из кода записной книжки.

Служебные программы Lakehouse доступны в записных книжках Python, PySpark, Scala и R. Примеры на этой странице используют Python в качестве основного языка, с эквивалентами Scala и R, отображаемыми для ключевых методов.

Замечание

Служебные программы Lakehouse поддерживаются только в Microsoft Fabric. Они недоступны в Azure Synapse Analytics.

Чтобы отобразить доступные методы и их описания, вызовите notebookutils.lakehouse.help().

Обзор методов

В следующей таблице приведены доступные методы.

Метод Описание Возвраты
create Создает новый Lakehouse с необязательной поддержкой схемы. Artifact объект со свойствами: id, displayName, descriptionи workspaceId.
get Извлекает хранилище данных по имени. Artifact объект с базовыми метаданными.
getWithProperties Извлекает Lakehouse с расширенными свойствами. Artifact объект с расширенными метаданными и сведениями о подключении.
update Обновляет существующее название или описание Lakehouse. Обновленный Artifact объект.
delete Удаляет Lakehouse. Boolean. True в случае успеха; иначе False.
list Выводит список Lakehouses в рабочей области. Artifact Массив объектов.
listTables Перечисляет таблицы в Lakehouse. Table Массив объектов.
loadTable Запускает процесс загрузки для таблицы Lakehouse. 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 параметр. При опущении операция нацелена на текущую рабочую область. Укажите идентификатор рабочей области для доступа между рабочими областями. У вас должны быть соответствующие разрешения в целевой рабочей области.

Создайте Lakehouse

Чтобы создать новый Lakehouse в текущей или указанной рабочей области, используйте notebookutils.lakehouse.create(). Имена Lakehouse должны быть уникальными в рабочей области.

Параметры

Параметр Тип Обязательный Описание
name String Да Отображаемое имя для Lakehouse. Должен быть уникальным в рабочей области.
description String Нет Текстовое описание Lakehouse.
definition Объект Нет Структурированный объект определения для Lakehouse. Передайте {"enableSchemas": True} или эквивалентную форму объекта вашего языка, чтобы включить поддержку схемы.
workspaceId String Нет Идентификатор целевой рабочей области. По умолчанию используется текущая рабочая область.

Создание базового Lakehouse

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

Замечание

Передайте definition структурированный объект для языка записной книжки, например словаря Python, scala Mapили списка R.

Создайте Lakehouse с поддержкой схемы

При включении поддержки схемы Lakehouse поддерживает несколько схем для организации таблиц. Передайте {"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}")

Пакетное создание озерохранилищ

Вы можете создать несколько "Lakehouse" в рамках цикла для обеспечения сред для различных команд или проектов.

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")

Подсказка

Используйте описательные имена, которые отражают назначение Lakehouse, и рассмотрите правила именования для разделения сред (dev, test, prod).

Получите доступа к Lakehouse

Используйте notebookutils.lakehouse.get(), чтобы извлечь Lakehouse по имени. Если вы не укажете имя, NotebookUtils использует текущий Lakehouse по умолчанию.

Параметры

Параметр Тип Обязательный Описание
name String Нет Имя извлекаемого объекта Lakehouse. По умолчанию используется текущий Lakehouse, если не указано.
workspaceId String Нет Идентификатор целевой рабочей области. По умолчанию используется текущая рабочая область.
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}")

Получите Lakehouse с расширенными свойствами

Используйте notebookutils.lakehouse.getWithProperties(), если вам нужны расширенные свойства, выходящие за рамки базовых метаданных, например, строки подключения или сведения о конфигурации.

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

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

Получите Lakehouse из другой рабочей области

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

Для обновления имени или описания существующего Lakehouse используйте notebookutils.lakehouse.update().

Это важно

Переименование Lakehouse может разорвать подчиненные зависимости, такие как записные книжки, конвейеры или сочетания клавиш, ссылающиеся на исходное имя. Перед применением координируйте переименования с командой.

Параметры

Параметр Тип Обязательный Описание
name String Да Текущее название Lakehouse.
newName String Да Новое имя для Lakehouse.
description String Нет Обновлено описание.
workspaceId String Нет Идентификатор целевой рабочей области. По умолчанию используется текущая рабочая область.
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(), чтобы полностью удалить Lakehouse из рабочей области.

Предостережение

Удаление является постоянным и не может быть отменено. Проверьте имя Lakehouse перед удалением, а также проверьте наличие записных книжек, конвейеров или рабочих процессов, которые на него ссылаются.

Параметры

Параметр Тип Обязательный Описание
name String Да Имя Lakehouse для удаления.
workspaceId String Нет Идентификатор целевой рабочей области. По умолчанию используется текущая рабочая область.
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() для перечисления Lakehouses в рабочей области.

Параметры

Параметр Тип Обязательный Описание
workspaceId String Нет Идентификатор целевой рабочей области. По умолчанию используется текущая рабочая область.
maxResults Int Нет Максимальное количество возвращаемых элементов. Значение по умолчанию: 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 метод поддерживает list так же, как maxResults и другие языки для блокнотов. Например, укажите list(workspaceId, maxResults).

Список таблиц

Используйте notebookutils.lakehouse.listTables(), чтобы перечислить все таблицы в Lakehouse.

Параметры

Параметр Тип Обязательный Описание
lakehouse String Нет Название домика на озере. По умолчанию используется текущий Lakehouse, если не указано.
workspaceId String Нет Идентификатор целевой рабочей области. По умолчанию используется текущая рабочая область.
maxResults Int Нет Максимальное количество возвращаемых элементов. Значение по умолчанию: 1000.
artifacts_tables_list = notebookutils.lakehouse.listTables("lakehouse_name", "optional_workspace_id")

Загрузка таблицы

Используется notebookutils.lakehouse.loadTable() для загрузки данных из файлов в таблицу Lakehouse.

Параметры

Параметр Тип Обязательный Описание
loadOption Объект Да Структурированные параметры загрузки, указывающие путь к файлу, режим, формат и другие параметры загрузки.
table String Да Имя целевой таблицы.
lakehouse String Нет Название домика на озере. По умолчанию используется текущий Lakehouse, если не указано.
workspaceId String Нет Идентификатор целевой рабочей области. По умолчанию используется текущая рабочая область.

Объект loadOption поддерживает следующие ключи:

Ключ Описание
relativePath Путь к исходному файлу относительно корневого каталога Lakehouse (например, 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")