Aracılığıyla paylaş


Oracle'da federasyon sorguları çalıştırma

Önemli

Bu özellik Genel Önizlemesürümündedir.

Bu makalede, Azure Databricks tarafından yönetilmeyen Oracle verileri üzerinde federasyon sorguları çalıştırmak için Lakehouse Federasyonu'nun nasıl ayarlanacağı açıklanır. Lakehouse Federasyonu hakkında daha fazla bilgi edinmek için bkz. Lakehouse Federasyonu nedir?.

Lakehouse Federation kullanarak Oracle veritabanınıza bağlanmak için Azure Databricks Unity Kataloğu meta veri deponuzda aşağıdakileri oluşturmanız gerekir:

  • Oracle veritabanınıza bir bağlantısı.
  • Unity Kataloğu'nda Oracle veritabanınızı yansıtacak bir yabancı katalog oluşturarak, Unity Kataloğu sorgu söz dizimi ve veri yönetim araçlarını kullanarak Azure Databricks kullanıcılarının veritabanı erişimini yönetebilirsiniz.

Başlamadan önce

Başlamadan önce bu bölümdeki gereksinimleri karşıladığınızdan emin olun.

Databricks gereksinimleri

Çalışma alanı gereksinimleri:

  • Unity Kataloğu için etkinleştirilen çalışma alanı.

İşlem gereksinimleri:

  • İşlem kaynağınızdan hedef veritabanı sistemlerine ağ bağlantısı. Bkz. Lakehouse Federationiçin Ağ önerileri.
  • Azure Databricks işlem gücü, Databricks Runtime 16.1 veya daha yükseğini ve Paylaşılan veya Tek kullanıcı erişim modunu kullanmalıdır.
  • SQL ambarları profesyonel veya sunucusuz olmalı ve 2024.50 veya üzerini kullanmalıdır.

Gerekli izinler:

  • Bağlantı oluşturmak için meta veri deposu yöneticisi veya çalışma alanına bağlı Unity Kataloğu meta veri deposunda CREATE CONNECTION ayrıcalığına sahip bir kullanıcı olmanız gerekir.
  • Yabancı katalog oluşturmak için meta veri deposunda CREATE CATALOG iznine sahip olmanız ve bağlantının sahibi olmanız veya bağlantıda CREATE FOREIGN CATALOG ayrıcalığına sahip olmanız gerekir.

Aşağıdaki her görev tabanlı bölümde ek izin gereksinimleri belirtilir.

Oracle gereksinimleri

Azure Databricks bağlantısı oluşturma

Bağlantı, bir dış veritabanı sistemine erişmek için bir yol ve kimlik bilgileri belirtir. Bağlantı oluşturmak için, Bir Azure Databricks not defterinde veya Databricks SQL sorgu düzenleyicisinde Katalog Gezgini'ni veya CREATE CONNECTION SQL komutunu kullanabilirsiniz.

Not

Bağlantı oluşturmak için Databricks REST API'sini veya Databricks CLI'yi de kullanabilirsiniz. bkz. POST /api/2.1/unity-catalog/connections ve Unity Catalog komutları.

.

Katalog Gezgini

  1. Azure Databricks çalışma alanında Katalog simgesineKatalogtıklayın.
  2. Sol bölmede Dış Veri menüsünü genişletin ve Bağlantılaröğesini seçin.
  3. Bağlantıoluştur'a tıklayın.
  4. Bağlantı ayarlama sihirbazının Bağlantı temel bilgileri sayfasında, kullanıcı dostu bir Bağlantı adıgirin.
  5. Oracle Bağlantı türü seçin.
  6. (İsteğe bağlı) Açıklama ekleyin.
  7. İleriöğesine tıklayın.
  8. Kimlik Doğrulaması sayfasında Oracle örneği için aşağıdakileri girin:
    • Konak: Örneğin, oracle-demo.123456.rds.amazonaws.com
    • Bağlantı Noktası: Örneğin, 1521
    • Kullanıcı: Örneğin, oracle_user
    • parola: Örneğin,
  9. Bağlantıoluştur'a tıklayın.
  10. Katalog temel bilgileri sayfasında, yabancı katalog için bir ad girin. Harici katalog, bir dış veri sistemindeki veritabanını yansıtarak Azure Databricks ve Unity Kataloğu'nu kullanarak bu veritabanındaki verilere erişimi sorgulamak ve yönetmek için kullanılabilir.
  11. (İsteğe bağlı) Bağlantı test et'e tıklayarak çalıştığını onaylayın.
  12. Katalog oluştur'a tıklayın.
  13. Access sayfasında, kullanıcıların oluşturduğunuz kataloğa erişebileceği çalışma alanlarını seçin. Tüm çalışma alanlarınınerişimi seçebilir veyaçalışma alanlarına ata'ya tıklayabilir, çalışma alanlarını seçip ata'ya tıklayabilirsiniz.
  14. Katalogdaki tüm nesnelere erişimi yönetebilecek Sahibi değiştirin. Metin kutusuna bir sorumlu yazmaya başlayın ve döndürülen sonuçlarda sorumluya tıklayın.
  15. Katalogda Ayrıcalıkları verin. tıklayınver:
    1. Katalogdaki nesnelere erişimi olacak Sorumlularını belirtin. Metin kutusuna bir sorumlu yazmaya başlayın ve döndürülen sonuçlarda sorumluya tıklayın.
    2. Her bir yetkiliye vermek istediğiniz Privilege ön ayarlarını seçin. Tüm hesap kullanıcılarına varsayılan olarak BROWSE verilir.
      • Katalogdaki nesnelerde ayrıcalıkları vermek için açılan menüden veri okuyucu seçin.
      • Katalogdaki nesnelerde ve read ayrıcalıkları vermek için açılan menüden modify seçin.
      • Vermek istediğiniz ayrıcalıkları el ile seçin.
    3. İzniver'e tıklayın.
  16. İleriöğesine tıklayın.
  17. Meta Veri sayfasında etiket anahtar-değer çiftlerini belirtin. Daha fazla bilgi için bkz. Unity Kataloşundaki güvenli hale getirilebilen nesnelere etiket uygulama.
  18. (İsteğe bağlı) Açıklama ekleyin.
  19. Kaydet'tıklayın.

SQL

Not defterinde veya Databricks SQL sorgu düzenleyicisinde aşağıdaki komutu çalıştırın:

CREATE CONNECTION <connection-name> TYPE oracle
OPTIONS (
  host '<hostname>',
  port '<port>',
  user '<user>',
  password '<password>'
);

Databricks, kimlik bilgileri gibi hassas değerler için düz metin dizeleri yerine Azure Databricks gizli dizileri kullanmanızı önerir. Mesela:

CREATE CONNECTION <connection-name> TYPE oracle
OPTIONS (
  host '<hostname>',
  port '<port>',
  user secret ('<secret-scope>','<secret-key-user>'),
  password secret ('<secret-scope>','<secret-key-password>')
)

Not defteri SQL komutlarında düz metin dizeleri kullanmanız gerekiyorsa, $ile \ gibi özel karakterlerden kaçarak dizeyi kesmekten kaçının. Örneğin: \$.

Gizli anahtarların ayarlanması hakkında bilgi için bkz. Gizli anahtar yönetimi.

Yabancı katalog oluşturma

Not

Kullanıcı arabirimini veri kaynağına bağlantı oluşturmak için kullanırsanız, yabancı katalog oluşturma dahil edilir ve bu adımı atlayabilirsiniz.

Harici katalog, bir dış veri sistemindeki veritabanını yansıtarak Azure Databricks ve Unity Kataloğu'nu kullanarak bu veritabanındaki verilere erişimi sorgulamak ve yönetmek için kullanılabilir. Yabancı katalog oluşturmak için, önceden tanımlanmış olan veri kaynağına bir bağlantı kullanırsınız.

Yabancı katalog oluşturmak için, Bir Azure Databricks not defterinde veya SQL sorgu düzenleyicisinde Katalog Gezgini'ni veya CREATE FOREIGN CATALOG SQL komutunu kullanabilirsiniz. Katalog oluşturmak için Databricks REST API'sini veya Databricks CLI'yi de kullanabilirsiniz. bkz. POST /api/2.1/unity-catalog/catalogs ve Unity Catalog komutları.

Gerekli izinler: Meta veri deposu üzerindeCREATE CATALOG izni ve bağlantının sahipliği veya bağlantı üzerindeki CREATE FOREIGN CATALOG ayrıcalığı.

Katalog Gezgini

  1. Azure Databricks çalışma alanında Katalog Gezgini'ni açmak için Katalog simgesineKatalog tıklayın.

  2. Kataloğu bölmesinin üst kısmında Ekle veya artı simgesine tıklayın ekle simgesine tıklayın ve menüden Katalog ekle seçin.

    Alternatif olarak, Hızlı erişim sayfasında Kataloglar düğmesine tıklayın ve ardından Katalog oluştur düğmesine tıklayın.

  3. katalog oluşturma bölümünde yabancı katalog oluşturma yönergelerini izleyin.

SQL

Aşağıdaki SQL komutunu bir not defterinde veya SQL sorgu düzenleyicisinde çalıştırın. Köşeli ayraç içindeki öğeler isteğe bağlıdır. Yer tutucu değerlerini değiştirin:

  • <catalog-name>: Azure Databricks'teki kataloğun adı.
  • <connection-name>: Veri kaynağını, yolu ve erişim kimlik bilgilerini belirten bağlantı nesnesi.
  • <service-name>: Azure Databricks'te katalog olarak yansıtmak istediğiniz hizmet adı.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (service_name '<service-name>');

Desteklenen indirgeme

Desteklenen işlemler şunlardır:

  • Filtreler
  • Projeksiyon
  • Sınır
  • Agregalar
  • Kaydırma
  • Oyuncu kadrosu
  • İçerir, Başlar, Biter

Veri türü eşlemeleri

Oracle'dan Spark'a okuma yaptığınızda veri türleri aşağıdaki gibi eşlenir:

Oracle türü Spark türü
TIMESTAMP WITH TIMEZONE, TIMESTAMP WITH LOCAL TIMEZONE Zaman Damgası Türü
TARİh, ZAMAN DAMGASI TimestampType/TimestampNTZType*
SAYI, ONDALıK Ondalık Veri Türü
İKILI KAYAN FloatType
İKILI ÇIFT DoubleType
CHAR, NCHAR, VARCHAR2, NVARCHAR2 DizeTürü
  • DATE ve TIMESTAMP, spark.sql.timestampType = TIMESTAMP_LTZ (varsayılan) ise Spark TimestampType ile eşlenir. "Eğer spark.sql.timestampType = TIMESTAMP_NTZise Zaman Damgası NTZ Türü'ne eşlenirler."