Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте 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")