notebookutils.lakehouseを使用して、Fabric ノートブックでプログラムによって Lakehouse 項目を管理します。 ノートブック コードから 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 |
名前を指定して Lakehouse を取得します。 |
Artifact 基本的なメタデータを持つオブジェクト。 |
getWithProperties |
拡張プロパティを備えた Lakehouse を取得します。 |
Artifact 拡張メタデータと接続の詳細を含むオブジェクト。 |
update |
既存の Lakehouse の名前または説明を更新します。 | オブジェクト Artifact 更新されました。 |
delete |
Lakehouse を削除します。 |
Boolean。 成功した場合は True、それ以外の場合は False。 |
list |
ワークスペース内の Lakehouse を一覧表示します。 |
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 パラメーターを受け取ります。 省略すると、操作は現在のワークスペースを対象とします。 ワークスペース間アクセスのワークスペース ID を指定します。 ターゲット ワークスペースには適切なアクセス許可が必要です。
レイクハウスを作成する
notebookutils.lakehouse.create()を使用して、現在のワークスペースまたは指定したワークスペースに新しい Lakehouse を作成します。 Lakehouse 名は、ワークスペース内で一意である必要があります。
パラメーター
| パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
name |
糸 | はい | レイクハウスの表示名です。 ワークスペース内で一意である必要があります。 |
description |
糸 | いいえ | Lakehouse の説明文。 |
definition |
オブジェクト | いいえ | Lakehouse の構造化定義オブジェクト。 スキーマのサポートを有効にするには、言語の {"enableSchemas": True} または同等のオブジェクト フォームを渡します。 |
workspaceId |
糸 | いいえ | ターゲット ワークスペース ID。 既定では、現在のワークスペースが使用されます。 |
基本的な 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をバッチ作成する
複数の 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 の目的を反映したわかりやすい名前を使用し、環境の分離 (開発、テスト、運用) の名前付け規則を検討します。
レイクハウスを取得する
notebookutils.lakehouse.get()を使用して、名前で Lakehouse を取得します。 名前を省略すると、NotebookUtils は現在の既定の Lakehouse を使用します。
パラメーター
| パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
name |
糸 | いいえ | 取得するレイクハウスの名前。 省略すると、既定で現在の Lakehouse が使用されます。 |
workspaceId |
糸 | いいえ | ターゲット ワークスペース 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}")
拡張プロパティを使用して 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 を更新する
notebookutils.lakehouse.update()を使用して、既存の Lakehouse の名前または説明を更新します。
Important
Lakehouse の名前を変更すると、元の名前を参照するノートブック、パイプライン、ショートカットなどのダウンストリームの依存関係が中断される可能性があります。 適用する前に、チームと名前変更の調整を行います。
パラメーター
| パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
name |
糸 | はい | レイクハウスの現在の名前。 |
newName |
糸 | はい | レイクハウスの新しい名前。 |
description |
糸 | いいえ | 更新された説明。 |
workspaceId |
糸 | いいえ | ターゲット ワークスペース 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()を使用して、ワークスペースから Lakehouse を完全に削除します。
注意事項
削除は永続的であり、元に戻すことはできません。 削除する前に Lakehouse 名を確認し、それを参照する依存ノートブック、パイプライン、またはワークフローを確認します。
パラメーター
| パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
name |
糸 | はい | 削除するレイクハウスの名前。 |
workspaceId |
糸 | いいえ | ターゲット ワークスペース 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()を使用して、ワークスペース内の Lakehouse を列挙します。
パラメーター
| パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
workspaceId |
糸 | いいえ | ターゲット ワークスペース ID。 既定では、現在のワークスペースが使用されます。 |
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 |
糸 | いいえ | レイクハウスの名前。 省略すると、既定で現在の Lakehouse が使用されます。 |
workspaceId |
糸 | いいえ | ターゲット ワークスペース ID。 既定では、現在のワークスペースが使用されます。 |
maxResults |
int(整数) | いいえ | 返されるアイテムの最大数。 デフォルト値は1000です。 |
artifacts_tables_list = notebookutils.lakehouse.listTables("lakehouse_name", "optional_workspace_id")
テーブルの読み込み
notebookutils.lakehouse.loadTable()を使用して、ファイルから Lakehouse テーブルにデータを読み込みます。
パラメーター
| パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
loadOption |
オブジェクト | はい | ファイル パス、モード、形式、およびその他の読み込み設定を指定する構造化読み込みオプション。 |
table |
糸 | はい | ターゲット テーブルの名前。 |
lakehouse |
糸 | いいえ | レイクハウスの名前。 省略すると、既定で現在の Lakehouse が使用されます。 |
workspaceId |
糸 | いいえ | ターゲット ワークスペース ID。 既定では、現在のワークスペースが使用されます。 |
loadOption オブジェクトは、次のキーをサポートしています。
| 鍵 | 説明 |
|---|---|
relativePath |
Lakehouse ルートを基準としたソース ファイルへのパス (たとえば、 Files/myFile.csv)。 |
pathType |
パスの種類。 1 つのファイルに 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")