NotebookUtils lakehouse yardımcı programları

Fabric defterlerinde göl evi öğelerini programlı olarak yönetmek için kullanılırnotebookutils.lakehouse. Göl evlerini doğrudan defter kodundan oluşturabilir, alabilir, güncelleyebilir, silebilir ve listeleyebilirsiniz.

Lakehouse yardımcı programları Python, PySpark, Scala ve R notebooklarda mevcuttur. Bu sayfadaki örneklerde birincil dil olarak Python kullanılır ve temel yöntemler için Scala ve R eşdeğerleri gösterilir.

Uyarı

Lakehouse altyapıları yalnızca Fabric'te desteklenmektedir. Bunlar Azure Synapse Analytics'te kullanılamaz.

Kullanılabilir yöntemleri ve açıklamalarını görüntülemek için öğesini çağırın notebookutils.lakehouse.help().

Yöntemlere genel bakış

Aşağıdaki tabloda kullanılabilir yöntemler özetlemektedir:

Yöntem Açıklama İadeler
create Yeni bir göl evi yaratıyor, isteğe bağlı şema desteğiyle. Artifact özelliklerine sahip nesne: id, displayName, descriptionve workspaceId.
get Bir göl evini adıyla alır. Artifact temel meta verileri olan nesne.
getWithProperties Genişletilmiş mülklere sahip bir göl evi geri alır. Artifact nesnesinde genişletilmiş meta veriler ve bağlantı ayrıntıları bulunur.
update Mevcut bir göl evi adını veya açıklamasını günceller. Nesne güncelleştirildi Artifact .
delete Bir göl evini siler. Boolean. Başarılıysa True, değilse False.
list Bir çalışma alanında göl evlerini listeler. Artifact nesne dizisi.
listTables Bir göl evindeki masaları listeliyor. Table nesne dizisi.
loadTable Bir göl evi masası için yük operasyonunu başlatır. Boolean. Başarılıysa True, değilse 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

Tüm yöntemler isteğe bağlı workspaceId bir parametre kabul eder. Bir şey atlandığında, işlem mevcut çalışma alanını hedefler. Çalışma alanları arası erişim için bir çalışma alanı kimliği belirtin. Hedef çalışma alanında uygun izinlere sahip olmanız gerekir.

Göl evi oluşturma

Mevcut çalışma alanında veya belirli bir çalışma alanında yeni bir göl evi oluşturmak için kullanılır notebookutils.lakehouse.create() . Lakehouse adları bir çalışma alanında benzersiz olmalıdır.

Parametreler

Parametre Türü Zorunlu Açıklama
name Dize Evet Göl evinin gösterim adı. Çalışma alanı içinde benzersiz olmalıdır.
description Dize Hayır Göl evi için bir metin açıklaması.
definition Nesne Hayır Göl evi için yapılandırılmış tanımlı nesne. Şema desteğini etkinleştirmek için dilinizin veya eşdeğer nesne formunu geçirin {"enableSchemas": True} .
workspaceId Dize Hayır Hedef çalışma alanı kimliği. Varsayılan olarak geçerli çalışma alanı seçilir.

Temel bir Lakehouse oluşturma

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

Uyarı

Not defteri diliniz için, Python sözlüğü, Scala definition veya R listesi gibi yapılandırılmış bir nesne olarak Map kullanabilirsiniz.

Şema desteğiyle bir göl evi oluşturun

Şema desteğini etkinleştirdiğinizde, lakehouse tabloları düzenlemek için birden fazla şemayı destekler. {"enableSchemas": True} öğesini definition parametresi olarak geçirin.

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

Farklı bir çalışma alanında Lakehouse oluşturma

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

Toplu göl evleri oluşturun

Farklı ekipler veya projeler için ortamlar sağlamak amacıyla döngüde birden fazla göl evi oluşturabilirsiniz:

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

Tavsiye

Göl evinin amacını yansıtan tanımlayıcı isimler kullanın. Ortam ayrımı için dev, test ve prod gibi adlandırma kurallarını düşünün.

Bir göl evi al

Bir göl evini isimle almak için kullanılır notebookutils.lakehouse.get() . İsmi çıkarırsanız, NotebookUtils mevcut varsayılan göl evini kullanır.

Parametreler

Parametre Türü Zorunlu Açıklama
name Dize Hayır Geri alınacak göl evinin adı. Göz kamaştırıldığında varsayılan olarak mevcut göl evine geçer.
workspaceId Dize Hayır Hedef çalışma alanı kimliği. Varsayılan olarak geçerli çalışma alanı seçilir.
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}")

Genişletilmiş mülklere sahip bir göl evi satın alın

Bağlantı dizeleri veya yapılandırma ayrıntıları gibi temel meta verilerin ötesinde genişletilmiş özelliklere ihtiyacınız olduğunda kullanın notebookutils.lakehouse.getWithProperties() :

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

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

Başka bir çalışma alanından bir göl evi alın

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

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

Göl evi güncelleştirme

Mevcut bir göl evinin adını veya tanımını güncellemek için kullanın notebookutils.lakehouse.update() .

Önemli

Bir göl evinin adını değiştirmek, defterler, boru hatları veya orijinal isme referans veren kısayollar gibi aşağı akış bağımlılıklarını kırabilir. Yeniden adlandırmaları uygulamaya başlamadan önce ekibinizle koordine edin.

Parametreler

Parametre Türü Zorunlu Açıklama
name Dize Evet Göl evinin mevcut adı.
newName Dize Evet Göl evi için yeni isim.
description Dize Hayır Açıklama güncelleştirildi.
workspaceId Dize Hayır Hedef çalışma alanı kimliği. Varsayılan olarak geçerli çalışma alanı seçilir.
updated_artifact = notebookutils.lakehouse.update(
    "old_name",
    "new_name",
    "Updated description",
    "optional_workspace_id"
)

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

Bir veri göl evini sil

Bir göl evini çalışma alanından kalıcı olarak çıkarmak için kullanılır notebookutils.lakehouse.delete() .

Dikkat

Silme işlemi kalıcıdır ve geri alınamaz. Silmeden önce lakehouse adını doğrulayın ve ona referans veren bağlı defterler, boru hatları veya iş akışları olup olmadığını kontrol edin.

Parametreler

Parametre Türü Zorunlu Açıklama
name Dize Evet Sililmesi gereken göl evinin adı.
workspaceId Dize Hayır Hedef çalışma alanı kimliği. Varsayılan olarak geçerli çalışma alanı seçilir.
is_deleted = notebookutils.lakehouse.delete("lakehouse_name", "optional_workspace_id")

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

Liste göl evleri

Bir çalışma alanında göl evlerini saymak için kullanılır notebookutils.lakehouse.list() .

Parametreler

Parametre Türü Zorunlu Açıklama
workspaceId Dize Hayır Hedef çalışma alanı kimliği. Varsayılan olarak geçerli çalışma alanı seçilir.
maxResults Int Hayır Döndürülecek en fazla öğe sayısı. Varsayılan değer 1000'dir.
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})")

Uyarı

Scala'da list yöntemi, diğer not defteri dilleriyle maxResults ile aynı şekilde desteklenir. Örneğin, kullanın list(workspaceId, maxResults).

Liste tabloları

Bir göl evindeki tüm masaları listelemek için kullanılır notebookutils.lakehouse.listTables() .

Parametreler

Parametre Türü Zorunlu Açıklama
lakehouse Dize Hayır Göl evinin adı. Göz kamaştırıldığında varsayılan olarak mevcut göl evine geçer.
workspaceId Dize Hayır Hedef çalışma alanı kimliği. Varsayılan olarak geçerli çalışma alanı seçilir.
maxResults Int Hayır Döndürülecek en fazla öğe sayısı. Varsayılan değer 1000'dir.
artifacts_tables_list = notebookutils.lakehouse.listTables("lakehouse_name", "optional_workspace_id")

Tabloyu yükleme

Dosyalardan veriyi bir göl evi tablosuna yüklemek için kullanılır notebookutils.lakehouse.loadTable() .

Parametreler

Parametre Türü Zorunlu Açıklama
loadOption Nesne Evet Dosya yolunu, modu, biçimi ve diğer yükleme ayarlarını belirten yapılandırılmış yükleme seçenekleri.
table Dize Evet Hedef tablonun adı.
lakehouse Dize Hayır Göl evinin adı. Göz kamaştırıldığında varsayılan olarak mevcut göl evine geçer.
workspaceId Dize Hayır Hedef çalışma alanı kimliği. Varsayılan olarak geçerli çalışma alanı seçilir.

loadOption nesnesi aşağıdaki anahtarları destekler:

Anahtar Açıklama
relativePath Göl evi köküne göre kaynak dosyaya giden yol (örneğin, Files/myFile.csv).
pathType Yol türü. Tek bir dosya için kullanın File .
mode Overwrite veya Append gibi yükleme modu.
recursive Alt klasörlere dosya eklemek için True olarak ayarlayın.
formatOptions Biçime özgü ayarlar olarak format, header ve delimiter gibi öğeleri içeren bir sözlük.

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