Unity Kataloğu'nda Lakebase veritabanını kaydetme

Lakebase veritabanını Unity Kataloğu'na kaydetmek, Postgres veritabanınızı temsil eden salt okunur bir katalog oluşturarak lakehouse ve işlem iş yükleriniz arasında birleşik veri idaresi ve kaynaklar arası analiz olanağı sağlar.

Unity Kataloğu'nda neden kaydolun?

Kaydın çeşitli avantajları vardır:

Birleşik idare: Unity Kataloğu'nun idare denetimlerini (izinler, köken izleme ve denetim günlükleri) lakehouse verilerinizle birlikte Lakebase verilerinize uygulayın.

Kaynaklar arası sorgular: Tek bir SQL arabiriminden hem Unity Kataloğu tablolarını hem de Lakebase veritabanlarını sorgulayarak işlemsel ve analitik verileri birleştiren analize olanak tanır.

Merkezi bulma: Çalışma alanınızdaki diğer veri kaynaklarının yanı sıra Katalog Gezgini aracılığıyla Lakebase veritabanlarını, şemalarını ve tablolarını bulun ve keşfedin.

Tümleşik iş akışları: Bağlam değiştirmeden veya ayrı bağlantıları yönetmeden Azure Databricks panolarda ve uygulamalarda Lakebase verilerini kullanın.

Nasıl çalışır?

Kayıt, Postgres veritabanı yapınızı yansıtan ve Unity Kataloğu'nun idare katmanı aracılığıyla veritabanı nesnelerinize (şemalar, tablolar, görünümler) meta veri erişimi sağlayan salt okunur bir Unity Kataloğu kataloğu oluşturur.

Kaydı, Unity Kataloğu'nun katalog oluşturma iş akışıyla doğal olarak tümleşen Lakebase arabirimi yerine Katalog Gezgini'nden başlatırsınız.

Kayıt sonrası:

  • Lakebase veritabanınız Unity Kataloğu'nda katalog olarak görünür
  • Unity Kataloğu izinleri veritabanını kimlerin görüntüleyebileceğini ve sorgulayabileceğinizi denetler
  • Katalog salt okunur kalır; gerçek veritabanını Lakebase aracılığıyla yönetirsiniz

Önkoşullar

  • En az bir veritabanı olan mevcut bir Lakebase projesi
  • CREATE CATALOG Unity Kataloğu meta veri deposundaki ayrıcalıklar
  • Kayıtlı kataloğu sorgulamak için Sunucusuz SQL Ambarı. Pro ve Klasik SQL Ambarları desteklenmez ve bir izin hatası döndürür.

Important

Unity Catalog’daki Lakebase katalogları, Sunucusuz SQL Ambarı gerektirir. Pro veya Klasik SQL Ambarı ile sorgulama bir PERMISSION_DENIED hata döndürür. SQL düzenleyicisinde, bir sorgu çalıştırmadan önce ambar açılır menüsünü açın ve Sunucusuz bir ambar seçin.

Veritabanını kaydetme

Kullanıcı Arayüzü (UI)

  1. Uygulama değiştiricisini kullanarak Analytics ve AI'ya gidin.
  2. Katalog Gezgini'nde artı düğmesine ve Katalog oluştur'a tıklayın.
  3. Bir katalog adı girin (örneğin, lakebase_catalog).
  4. Katalog türü olarak Lakebase Postgres'i ve ardından Otomatik Ölçeklendirme seçeneğini belirleyin.
  5. Projenizi, dalınızı ve Postgres veritabanınızı seçin.
  6. Oluştur'utıklayın.

Unity Kataloğu'nda LKB veritabanını kaydetme

Katalog, şemaları, tabloları ve görünümleri bulabileceğiniz ve SQL ambarlarını kullanarak sorgulayabileceğiniz Katalog Gezgini'nde görünür.

Python SDK'sı

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import Catalog, CatalogCatalogSpec

w = WorkspaceClient()

catalog = w.postgres.create_catalog(
    catalog=Catalog(spec=CatalogCatalogSpec(
        postgres_database="mydb",
        branch="projects/my-project/branches/production",
    )),
    catalog_id="my-catalog",
).wait()

print(f"Catalog registered: {catalog.name}")

Java SDK'sı

import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.*;

WorkspaceClient w = new WorkspaceClient();

Catalog catalog = w.postgres().createCatalog(
    new CreateCatalogRequest()
        .setCatalogId("my-catalog")
        .setCatalog(new Catalog()
            .setSpec(new CatalogCatalogSpec()
                .setPostgresDatabase("mydb")
                .setBranch("projects/my-project/branches/production"))))
    .waitForCompletion();

System.out.println("Catalog registered: " + catalog.getName());

Kıvrım

curl -X POST "https://your-workspace.cloud.databricks.com/api/2.0/postgres/catalogs?catalog_id=my-catalog" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "spec": {
      "postgres_database": "mydb",
      "branch": "projects/my-project/branches/production"
    }
  }'

Bu, uzun süren bir işlemi geri döndürür. Döndürülen name alanını done: true kadar yoklayın. Bkz. Uzun süre çalışan işlemler. Kimlik doğrulaması kurulumu için bkz. Kimlik doğrulaması.

Kayıtlı veritabanlarını keşfetme

Kayıt sonrasında şemaları, tabloları ve görünümleri bulmak için Katalog Gezgini'nde kataloğunuza gidin. Şema ayrıntılarını, örnek verileri ve köken bilgilerini görüntülemek için herhangi bir tabloya tıklayın.

Unity Kataloğu, meta verileri Lakebase veritabanınızdan otomatik olarak eşitler. Lakebase'de tablo eklediğinizde veya değiştirdiğinizde, güncelleştirmeleri görmek için katalog görünümünü yenileyin.

Kayıt durumunu denetleme

Bir kataloğun geçerli kayıt ayrıntılarını program aracılığıyla almak için:

Python SDK'sı

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

catalog = w.postgres.get_catalog("catalogs/my-catalog")
print(f"Database: {catalog.status.postgres_database}")
print(f"Branch: {catalog.status.branch}")

Java SDK'sı

import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.service.postgres.Catalog;

WorkspaceClient w = new WorkspaceClient();

Catalog catalog = w.postgres().getCatalog("catalogs/my-catalog");
System.out.println("Database: " + catalog.getStatus().getPostgresDatabase());
System.out.println("Branch: " + catalog.getStatus().getBranch());

Kıvrım

curl "https://your-workspace.cloud.databricks.com/api/2.0/postgres/catalogs/my-catalog" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}"

Kayıtlı veritabanlarını sorgulama

SQL ambarlarını veya Unity Kataloğu'na bağlanan herhangi bir aracı kullanarak kayıtlı Lakebase veritabanlarını sorgula:

-- Query a registered Lakebase database
SELECT * FROM chatbot_catalog.public.conversations
WHERE created_at >= current_date - INTERVAL 7 DAYS;

-- Join Lakebase and lakehouse data
SELECT
  c.conversation_id,
  c.user_id,
  c.agent_response,
  u.user_name,
  u.subscription_tier
FROM chatbot_catalog.public.conversations c
JOIN main.user_analytics.users u
  ON c.user_id = u.user_id;

Salt okunur katalog, Unity Kataloğu aracılığıyla sorguların Lakebase veritabanınızı değiştirmemesini sağlar. Verileri değiştirmek için Lakebase SQL Düzenleyicisi'ni kullanın veya doğrudan veritabanınıza bağlanın.

İzinler ve erişim denetimi

Unity Kataloğu izinleri kayıtlı Lakebase veritabanlarına erişimi denetler:

  • Katalog sahipliği: Veritabanını kaydeden kullanıcı katalog sahibi olur
  • Okuma erişimi: Başkalarının veritabanını sorgulamasına izin vermek için USE CATALOG ve SELECT ayrıcalıklarını verin.
  • Meta veri deposu yöneticisi: Meta veri deposu yöneticileri tüm kayıtlı katalogları yönetebilir

Kayıtlı bir veritabanına erişim vermek için:

-- Grant read access to a group
GRANT USE CATALOG ON CATALOG chatbot_catalog TO `ai-engineering`;
GRANT SELECT ON CATALOG chatbot_catalog TO `ai-engineering`;

Unity Kataloğu'nda ayarlanan izinler SQL ambarları aracılığıyla sorgu erişimini denetler. Lakebase veritabanınıza doğrudan bağlantılar Postgres rollerini ve izinlerini bağımsız olarak kullanır.

Veritabanının kaydını kaldırma

Kaydın kaldırılması, kataloğu Unity Kataloğu'ndan kaldırır, ancak Lakebase veritabanınızı etkilemez. Veritabanına Lakebase ve doğrudan Postgres bağlantıları üzerinden erişilebilir durumda kalır.

Kullanıcı Arayüzü (UI)

Katalog Gezgini'nde kataloğu seçin, Noktalar daire simgesine tıklayın ve Sil'i seçin.

Python SDK'sı

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

w.postgres.delete_catalog("catalogs/my-catalog").wait()

Java SDK'sı

import com.databricks.sdk.WorkspaceClient;

WorkspaceClient w = new WorkspaceClient();

w.postgres().deleteCatalog("catalogs/my-catalog").waitForCompletion();

Kıvrım

curl -X DELETE "https://your-workspace.cloud.databricks.com/api/2.0/postgres/catalogs/my-catalog" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}"

Uyarı

Kayıtlı veritabanından eşitlenmiş tablolar oluşturduysanız, önce bu tabloları silin. Her bir kaynak tablosu yalnızca 20 eşitlenmiş tablo oluşturmak için kullanılabilir ve silinmeyi bekleyen eşitlenmiş tablolar da bu sınıra dahildir.

Sınırlamalar

Salt okunur erişim: Kataloglar, Lakebase veritabanlarından kaydedildiklerinde salt okunur. Unity Kataloğu sorguları aracılığıyla verileri değiştiremezsiniz.

Sunucusuz SQL Ambarı gerekli: Sunucusuz SQL Ambarı kullanarak yalnızca kayıtlı bir Lakebase kataloğunu sorgulayabilirsiniz. Pro ve Klasik SQL Ambarları bu özelliği desteklemez.

Katalog başına tek veritabanı: Her Unity Kataloğu kataloğu bir Lakebase veritabanını temsil eder. Birden çok veritabanını kullanıma açmak için her birini ayrı olarak kaydedin.

Meta veri eşitleme: Unity Kataloğu, Postgres isteklerini azaltmak için meta verileri önbelleğe alır. Yeni nesneler hemen görünmeyebilir. Tam yenilemeyi tetiklemek için Şemayı Yenile Simgesi'ne tıklayın.

Dallandırılmış veritabanı kaydı desteklenmiyor: Dallandırılmış veritabanını ayrı bir Unity Kataloğu kataloğu olarak kaydedemezsiniz. Unity Kataloğu'nda zaten kayıtlı olan bir veritabanından dal oluşturduğunuzda, dal üst öğesinin kayıt meta verilerini devralır. Bu, yeni katalog kaydının başarısız olmasına neden olur.

Ek kaynaklar