次の方法で共有


NotebookUtils レイクハウスユーティリティ

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 プロパティを持つオブジェクト: iddisplayNamedescription、および 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 OverwriteAppendなどの読み込みモード。
recursive サブフォルダーにファイルを含めるには、 True に設定します。
formatOptions formatheaderdelimiterなどの形式固有の設定を持つディクショナリ。

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