Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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/UTColmayan 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.timezoneAsRegionyapılandırmasını kullanın, bu yapılandırmaoracle.jdbc.timezoneAsRegionJDBC 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.
- Geçici çözüm:
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 CONNECTIONayrıcalığına sahip bir kullanıcı olmanız gerekir. - Yabancı katalog oluşturmak için meta veri deposunda
CREATE CATALOGiznine sahip olmanız ve bağlantının sahibi olmanız veya bağlantıdaCREATE FOREIGN CATALOGayrı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ı
- Azure Databricks çalışma alanında
Katalog'a gidin.
- Sol bölmede Dış Veri
menüsünü genişletin ve Bağlantılar öğesini seçin. - Bağlantıoluştur'a tıklayın.
- Bağlantı ayarlama sihirbazının Bağlantı temel bilgileri sayfasında, kullanıcı dostu bir Bağlantı adıgirin.
Bağlantı türü olarakOracle seçin.- (İsteğe bağlı) Açıklama ekleyin.
- Nextöğesine tıklayın.
-
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) veyaTransport Layer Security
-
Konak: Örneğin,
- Bağlantıoluştur'a tıklayın.
- 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.
- (İsteğe bağlı) Bağlantı test et'e tıklayarak çalıştığını onaylayın.
- Katalog oluştur'a tıklayın.
- 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.
- 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.
- Katalog üzerinde yetkileri tanıyın.
İzin Ver'e tıklayın:
- 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. - Her bir yetkiliye vermek istediğiniz Privilege ön ayarlarını seçin. Tüm hesap kullanıcılarına varsayılan olarak
BROWSEverilir.- Katalogdaki nesnelerde
ayrıcalıkları vermek için açılan menüden veri okuyucu seçin. - Katalogdaki nesnelerde ve
readayrıcalıkları vermek için açılan menüdenmodifyseçin. - Vermek istediğiniz ayrıcalıkları el ile seçin.
- Katalogdaki nesnelerde
- İzin Ver'e tıklayın.
- Katalogdaki nesnelere erişimi olacak
- Nextöğesine tıklayın.
- 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.
- (İsteğe bağlı) Açıklama ekleyin.
- 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ı
Azure Databricks çalışma alanında
Katalog gezginini açmak için katalog.
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 Kataloglardüğmesine tıklayın ve ardından Katalog oluştur düğmesine tıklayın. 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.