Utilitas Lakehouse NotebookUtils

Digunakan notebookutils.lakehouse untuk mengelola item lakehouse secara programatik di Fabric notebooks. Anda dapat membuat, mendapatkan, memperbarui, menghapus, dan mencantumkan lakehouse langsung dari kode notebook.

Utilitas lakehouse tersedia dalam notebook Python, PySpark, Scala, dan R. Contoh di halaman ini menggunakan Python sebagai bahasa utama, dengan setara Scala dan R yang ditunjukkan untuk metode kunci.

Nota

Utilitas Lakehouse hanya didukung di Fabric. Mereka tidak tersedia di Azure Synapse Analytics.

Untuk menampilkan metode yang tersedia dan deskripsinya, panggil notebookutils.lakehouse.help().

Gambaran umum metode

Tabel berikut ini meringkas metode yang tersedia:

Metode Deskripsi Pengembalian Barang
create Membuat rumah danau baru, dengan dukungan skema opsional. Artifact objek dengan properti: id, displayName, description, dan workspaceId.
get Mengambil sebuah rumah danau berdasarkan nama. Artifact objek dengan metadata dasar.
getWithProperties Mengambil rumah danau dengan properti yang diperluas. Artifact objek dengan metadata dan detail koneksi yang diperluas.
update Memperbarui nama atau deskripsi rumah danau yang sudah ada. Diperbarui objek Artifact .
delete Menghapus sebuah rumah danau. Boolean. True jika berhasil; jika tidak, False.
list Menampilkan rumah danau di ruang kerja. Array dari objek Artifact.
listTables Menampilkan meja di rumah danau. Array dari objek Table.
loadTable Memulai operasi beban untuk meja lakehouse. Boolean. True jika berhasil; jika tidak, 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

Semua metode menerima parameter opsional workspaceId . Saat dihilangkan, operasi menargetkan ruang kerja saat ini. Tentukan ID ruang kerja untuk akses lintas ruang kerja. Anda harus memiliki izin yang sesuai di ruang kerja target.

Membuat rumah tepi danau

Gunakan notebookutils.lakehouse.create() untuk membuat lakehouse baru di workspace saat ini atau workspace yang ditentukan. Nama Lakehouse harus unik dalam ruang kerja.

Parameter-parameternya

Parameter Tipe Required Deskripsi
name string Yes Nama tampilan rumah danau. Harus unik di dalam ruang kerja.
description string No Deskripsi teks untuk rumah danau.
definition Objek No Objek definisi terstruktur untuk rumah danau. Teruskan {"enableSchemas": True} atau bentuk objek yang setara untuk bahasa Anda untuk mengaktifkan dukungan skema.
workspaceId string No ID ruang kerja target. Secara default, mengatur ke ruang kerja yang sedang digunakan.

Membuat Lakehouse dasar

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

Nota

Teruskan definition sebagai objek berstruktur untuk bahasa pemrograman pada notebook Anda, contohnya seperti kamus pada Python, Map pada Scala, atau daftar pada R.

Buat lakehouse dengan dukungan skema

Ketika Anda mengaktifkan dukungan skema, lakehouse mendukung beberapa skema untuk mengatur tabel. Teruskan {"enableSchemas": True} sebagai definition parameter:

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

Membuat Lakehouse di ruang kerja yang berbeda

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

Membuat rumah danau secara batch

Anda dapat membuat beberapa lakehouse dalam satu loop untuk menyediakan lingkungan bagi tim atau proyek yang berbeda:

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

Tip

Gunakan nama deskriptif yang mencerminkan tujuan rumah danau. Pertimbangkan konvensi penamaan untuk pemisahan lingkungan, seperti dev, test, dan prod.

Dapatkan rumah danau

Gunakan notebookutils.lakehouse.get() untuk mengambil rumah danau berdasarkan nama. Jika Anda menghilangkan nama, NotebookUtils menggunakan lakehouse default saat ini.

Parameter-parameternya

Parameter Tipe Required Deskripsi
name string No Nama rumah danau yang harus diambil. Default ke lakehouse saat ini jika dihilangkan.
workspaceId string No ID ruang kerja target. Secara default, mengatur ke ruang kerja yang sedang digunakan.
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}")

Dapatkan rumah danau dengan properti yang diperluas

Gunakan notebookutils.lakehouse.getWithProperties() saat Anda memerlukan properti yang diperluas di luar metadata dasar, seperti string koneksi atau detail konfigurasi:

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

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

Dapatkan rumah danau dari ruang kerja lain

workspace_id = "bbbbbbbb-2222-3333-4444-cccccccccccc"
artifact = notebookutils.lakehouse.get("SharedData", workspaceId=workspace_id)

print(f"Retrieved: {artifact.displayName} from workspace {workspace_id}")

Memperbarui lakehouse

Gunakan notebookutils.lakehouse.update() untuk memperbarui nama atau deskripsi rumah danau yang sudah ada.

Penting

Mengganti nama lakehouse dapat memecah ketergantungan hilir seperti notebook, pipeline, atau shortcut yang merujuk pada nama asli. Koordinasikan ganti nama dengan tim Anda sebelum menerapkannya.

Parameter-parameternya

Parameter Tipe Required Deskripsi
name string Yes Nama rumah danau saat ini.
newName string Yes Nama baru untuk rumah danau.
description string No Deskripsi yang diperbarui.
workspaceId string No ID ruang kerja target. Secara default, mengatur ke ruang kerja yang sedang digunakan.
updated_artifact = notebookutils.lakehouse.update(
    "old_name",
    "new_name",
    "Updated description",
    "optional_workspace_id"
)

print(f"Updated lakehouse: {updated_artifact.displayName}")

Menghapus lakehouse

Gunakan notebookutils.lakehouse.delete() untuk menghapus rumah danau secara permanen dari ruang kerja.

Perhatian

Penghapusan bersifat permanen dan tidak dapat dibatalkan. Verifikasi nama lakehouse sebelum menghapus dan periksa notebook, pipeline, atau workflow yang bergantung.

Parameter-parameternya

Parameter Tipe Required Deskripsi
name string Yes Nama rumah danau yang akan dihapus.
workspaceId string No ID ruang kerja target. Secara default, mengatur ke ruang kerja yang sedang digunakan.
is_deleted = notebookutils.lakehouse.delete("lakehouse_name", "optional_workspace_id")

if is_deleted:
    print("Lakehouse deleted successfully")
else:
    print("Failed to delete lakehouse")

Daftar rumah danau

Gunakan notebookutils.lakehouse.list() untuk menghitung rumah danau di ruang kerja.

Parameter-parameternya

Parameter Tipe Required Deskripsi
workspaceId string No ID ruang kerja target. Secara default, mengatur ke ruang kerja yang sedang digunakan.
maxResults Integer No Jumlah maksimum item yang akan dikembalikan. Diatur secara default menjadi 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})")

Nota

Dalam Scala, metode list mendukung maxResults dengan cara yang sama seperti bahasa notebook lainnya. Misalnya, gunakan list(workspaceId, maxResults).

Daftar tabel

Gunakan notebookutils.lakehouse.listTables() untuk mencantumkan semua meja di sebuah rumah danau.

Parameter-parameternya

Parameter Tipe Required Deskripsi
lakehouse string No Nama rumah danau. Default ke lakehouse saat ini jika dihilangkan.
workspaceId string No ID ruang kerja target. Secara default, mengatur ke ruang kerja yang sedang digunakan.
maxResults Integer No Jumlah maksimum item yang akan dikembalikan. Diatur secara default menjadi 1000.
artifacts_tables_list = notebookutils.lakehouse.listTables("lakehouse_name", "optional_workspace_id")

Muat tabel

Gunakan notebookutils.lakehouse.loadTable() untuk memuat data dari file ke dalam tabel lakehouse.

Parameter-parameternya

Parameter Tipe Required Deskripsi
loadOption Objek Yes Opsi beban terstruktur yang menentukan jalur file, mode, format, dan pengaturan beban lainnya.
table string Yes Nama tabel target.
lakehouse string No Nama rumah danau. Default ke lakehouse saat ini jika dihilangkan.
workspaceId string No ID ruang kerja target. Secara default, mengatur ke ruang kerja yang sedang digunakan.

Objek loadOption mendukung kunci berikut:

Kunci Deskripsi
relativePath Jalur ke file sumber relatif terhadap root lakehouse (misalnya, Files/myFile.csv).
pathType Jenis jalur. Gunakan File untuk satu file.
mode Mode pemuatan, seperti Overwrite atau Append.
recursive Atur ke True untuk menyertakan file dalam subfolder.
formatOptions Kamus dengan pengaturan khusus format seperti format, , headerdan 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")