Aracılığıyla paylaş


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

Bu sayfada, Azure Databricks tarafından yönetilmeyen Oracle verilerinde federasyon sorguları çalıştırmak için Lakehouse Federasyon'un 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.

Limitations

  • Lakehouse Federation yalnızca Oracle Cloud'a Aktarım Katmanı Güvenliği (TLS) bağlantılarını destekler. Diğer Oracle veritabanlarına bağlantılar Yerel Ağ Şifrelemesi (NNE) kullanır.

  • Saat dilimi değeri Etc/UTC olmayan 11.2.0.3.0 ve üzeri örneklere bağlanırken bilinen bir sorun vardır (Hata: ORA-01882: timezone region not found).

    • Geçici çözüm: spark.databricks.connector.oracle.timezoneAsRegion yapılandırmasını kullanın, bu yapılandırma oracle.jdbc.timezoneAsRegion JDBC sürücü özelliğine doğrudan eşlenir.
    • Uyarı: Geçici çözüm yanlış Yaz Saati (DST) davranışına neden olabilir. Yardım için Oracle desteğine başvurun.

License

Oracle sürücüsü ve diğer gerekli Oracle jar'ları tıklanmamış FDHUT lisansına tabidir.

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, Databricks Runtime 16.1 veya üzerini ve Standart veya Ayrılmış 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

Yerel Ağ Şifrelemesi kullanan bağlantılar için, sunucu tarafı NNE'yi (ACCEPTED en düşük düzeyde) etkinleştirmeniz gerekir. Oracle belgelerindeki Ağ Veri Şifrelemesi Yapılandırma bölümüne bakın. Bu, bunun yerine TLS kullanan Oracle Cloud bağlantıları için geçerli değildir.

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.

Note

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 Tarayıcısı

  1. Azure Databricks çalışma alanında Veri simgesine tıklayın.Katalog'a gidin.
  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. Bağlantı türü olarak Oracle seçin.
  6. (İsteğe bağlı) Açıklama ekleyin.
  7. Nextöğ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,
    • Şifreleme protokolü: Native Network Encryption (varsayılan) veya Transport Layer Security
  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ın erişimi var seçeneğini seçebilir veya Çalışma alanlarına ataya tıklayıp, çalışma alanlarını seçtikten sonra Ata'ya tıklayabilirsiniz.
  14. Katalogdaki tüm nesnelere erişimi yönetebilecek Sahibi değiştirin. Metin kutusuna bir "principal" yazmaya başlayın ve gösterilen sonuçlarda principal'e tıklayın.
  15. Katalog üzerinde yetkileri tanıyın. İzin Ver'e tıklayın:
    1. Katalogdaki nesnelere erişimi olacak Sorumlularını belirtin. Metin kutusuna bir "principal" yazmaya başlayın ve gösterilen sonuçlarda principal'e 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. İzin Ver'e tıklayın.
  16. Nextöğ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'e 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>',
  encryption_protocol '<protocol>' -- optional
);

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

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>'),
  encryption_protocol '<protocol>' -- optional
)

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

Note

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 Tarayıcısı

  1. Azure Databricks çalışma alanında Veri simgesine tıklayın.Katalog gezginini açmak için katalog.

  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 baskılar

Desteklenen işlemler şunlardır:

  • Filters
  • Projections
  • Limit
  • Aggregates
  • Offset
  • Cast
  • İç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ü
Zamanetiketi TIMEZONE ile, Yerel TIMEZONE ile Zamanetiketi TimestampType
TARİh, ZAMAN DAMGASI TimestampType/TimestampNTZType*
SAYI, ONDALIK DecimalType**
İKILI KAYAN FloatType
İKILI ÇIFT DoubleType
CHAR, NCHAR, VARCHAR2, NVARCHAR2 StringType

* DATE ve TIMESTAMP, Spark spark.sql.timestampType = TIMESTAMP_LTZ TimestampType if (varsayılan) ile eşlenir. "Eğer spark.sql.timestampType = TIMESTAMP_NTZise Zaman Damgası NTZ Türü'ne eşlenirler."

** Duyarlık belirtilmeden verilen NUMBER, Spark'ta saf kayan noktalı Ondalık desteği olmadığından, DecimalType(38, 10) ile eşlenir.