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 Snowflake 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 Snowflake veritabanınıza bağlanmak için Azure Databricks Unity Kataloğu meta veri deponuzda aşağıdakileri oluşturmanız gerekir (9 Kasım 2023'den sonra oluşturulan çalışma alanlarında zaten otomatik olarak sağlanan bir Unity Kataloğu meta deposu vardır):
- Snowflake veritabanınızla bağlantı.
- Unity Kataloğu sorgu söz dizimini ve veri idare araçlarını kullanarak Azure Databricks kullanıcısının veritabanına erişimini yönetebilmeniz için Unity Kataloğu'ndaki Snowflake veritabanınızı yansıtan bir yabancı katalog.
Bu sayfa, Snowflake'in yerleşik OAuth tümleştirmesini kullanarak Snowflake verileri üzerinde federasyon sorguları çalıştırmayı kapsar. Diğer kimlik doğrulama yöntemleri için aşağıdaki sayfalara bakın:
- Microsoft Entra Kimliği ile OAuth
- Okta ile OAuth
- OAuth erişim belirteci
- PEM özel anahtarı
- Temel kimlik doğrulaması (kullanıcı adı/parola)
Sorgu federasyonu veya katalog federasyonu kullanarak Snowflake üzerinde federasyon sorguları çalıştırabilirsiniz.
Sorgu federasyonunda JDBC, Unity Kataloğu sorgusunu dış veritabanına iletir. Bu, ETL işlem hatlarınızda isteğe bağlı raporlama veya kavram kanıtı çalışmaları için idealdir.
Katalog federasyonunda Unity Kataloğu sorgusu doğrudan dosya depolamaya karşı çalışır. Bu yaklaşım, Unity Kataloğu'nda kayıtlı verilerinin yanı sıra Snowflake'te bazı verileri tutması gereken kuruluşlar için kod uyarlaması olmadan veya daha uzun vadeli bir karma model olarak artımlı geçiş için yararlıdır. Bkz. Snowflake katalog federasyonunu etkinleştirme.
Sorgu Birleşimi
başlamadan önce
Çalışma alanı gereksinimleri:
- Unity Kataloğu için etkinleştirilen çalışma alanı. Otomatik meta veri deposu sağlama dahil olmak üzere, 9 Kasım 2023'den sonra oluşturulan çalışma alanları Unity Kataloğu için otomatik olarak etkinleştirilir. Çalışma alanınız otomatik etkinleştirmeden önce gelmediği ve Unity Kataloğu için etkinleştirilmediği sürece el ile meta veri deposu oluşturmanız gerekmez. Bkz. Unity Kataloğunun otomatik olarak etkinleştirilmesi.
İşlem gereksinimleri:
- İşlem kaynağınızdan hedef veritabanı sistemlerine ağ bağlantısı. Bkz: Lakehouse Federasyonu için Ağ Önerileri.
- Azure Databricks hesaplama, Databricks Runtime 13.3 LTS veya üzerini kullanmalıdır ve Standart veya Özel erişim modunu kullanmalıdır.
- SQL ambarları profesyonel veya sunucusuz olmalı ve 2023.40 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. Unity Kataloğu için otomatik olarak etkinleştirilen çalışma alanlarında, çalışma alanı yöneticileri varsayılan olarak ayrıcalıklaraCREATE CONNECTIONsahiptir. - 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. Unity Kataloğu için otomatik olarak etkinleştirilen çalışma alanlarında, çalışma alanı yöneticileri varsayılan olarak ayrıcalıklaraCREATE CATALOGsahiptir.
Aşağıdaki her görev tabanlı bölümde ek izin gereksinimleri belirtilir.
Güvenlik tümleştirmesi oluşturma
Snowflake konsolunda komutunu çalıştırın CREATE SECURITY INTEGRATION. Aşağıdaki değerleri değiştirin:
<integration-name>: OAuth entegrasyonunuz için benzersiz bir ad.<workspace-url>: Azure Databricks çalışma alanı URL'si.OAUTH_REDIRECT_URI'yıhttps://<workspace-url>/login/oauth/snowflake.htmlolarak ayarlamanız gerekir, burada<workspace-url>Snowflake bağlantısını oluşturacağınız Azure Databricks çalışma alanının benzersiz URL'sidir.<duration-in-seconds>: Yenileme belirteçleri için bir zaman uzunluğu.Important
OAUTH_REFRESH_TOKEN_VALIDITYvarsayılan olarak 90 gün olarak ayarlanmış özel bir alandır. Yenileme belirtecinin süresi dolduktan sonra bağlantının kimliğini yeniden doğrulamanız gerekir. Alanı makul bir süre uzunluğuna ayarlayın.
Örneğin:
CREATE SECURITY INTEGRATION <integration-name>
TYPE = oauth
ENABLED = true
OAUTH_CLIENT = custom
OAUTH_CLIENT_TYPE = 'CONFIDENTIAL'
OAUTH_REDIRECT_URI = 'https://<workspace-url>/login/oauth/snowflake.html'
OAUTH_ISSUE_REFRESH_TOKENS = TRUE
OAUTH_REFRESH_TOKEN_VALIDITY = <duration-in-seconds>
OAUTH_ENFORCE_PKCE = TRUE;
Bağlantı 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ı.
Gerekli izinler: Meta veri deposu yöneticisi veya ayrıcalığına CREATE CONNECTION sahip kullanıcı.
Azure Databricks çalışma alanınızda
Katalog'a gidin.
Katalog bölmesinin üst kısmında
tıklayın ve menüden Bağlantı oluştur'u seçin.Bağlantı temel bilgileri sayfasında, Bağlantı ayarlama sihirbazını açın ve kullanıcı dostu bir Bağlantı adıgirin.
Snowflake bağlantı türünü seçin.
Kimlik doğrulaması türü'nü, açılan menüden
OAutholarak seçin.(İsteğe bağlı) Açıklama ekleyin.
Nextöğesine tıklayın.
Snowflake ambarınız için aşağıdaki kimlik doğrulamasını ve bağlantı ayrıntılarını girin.
Konak: Örneğin,
snowflake-demo.east-us-2.azure.snowflakecomputing.comBağlantı noktası: Örneğin,
443Kullanıcı: Örneğin,
snowflake-userİstemci Kimliği: Snowflake konsolunda komutunu çalıştırarak
SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('<security-integration-name>')güvenlik tümleştirmesi için istemci kimliğini alın.İstemci gizli anahtar:
SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('<security-integration-name>')komutunu çalıştırarak Snowflake konsolunda güvenlik tümleştirmesi için istemci gizli anahtarını alın.OAuth kapsamı:
refresh_token session:role:<role-name>.<role-name>içinde kullanılacak Snowflake rolünü belirtin.Snowflake ile oturum açın: OAuth kimlik bilgilerinizi kullanarak Snowflake'e tıklayın ve oturum açın.
Oturum başarıyla açıldıktan sonra, Bağlantı ayarlama sihirbazına geri yönlendirilirsiniz.
Bağlantıoluştur'a tıklayın.
Katalog Temel Bilgileri sayfasında, yabancı katalog için bir ad girin. Yabancı bir katalog, dış bir veri sistemindeki veritabanını yansıtarak bu veritabanındaki verilere Azure Databricks ve Unity Kataloğu kullanarak sorgulama yapmanıza ve erişimi yönetmenize olanak tanır.
(İsteğe bağlı) Çalıştığını onaylamak için Bağlantıyı test et'e tıklayın.
tıklayın, katalog oluştur.
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ı erişilebilirseçebilir veya Çalışma alanına ata'ya tıklayın, çalışma alanlarını seçin ve ardından Atatıklayın.
Tüm katalog nesnelerine erişimi yönetebilecek Sahibi'i değiştirin. Metin kutusuna bir ana unsur yazmaya başlayın ve çıkan sonuçlardan ana unsura tıklayın.
Katalogda Ayrıcalıkları tanımlayın. Grant'e tıklayın
- Katalogdaki nesnelere erişimi olacak
Sorumlularını belirtin. Metin kutusuna bir ana unsur yazmaya başlayın ve çıkan sonuçlardan ana unsura tıklayın. -
İmtiyaz ön ayarlarını her bir sorumluya vermek için 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, etiketlerin anahtar-değer çiftlerini belirtin. Daha fazla bilgi için bkz. Unity Kataloğu'ndaki güvenli nesnelere etiket uygulama.
(İsteğe bağlı) Açıklama ekleyin.
Kaydet'e tıklayın.
Büyük/küçük harfe duyarlı veritabanı tanımlayıcıları
Yabancı database kataloğun alanı Snowflake veritabanı tanımlayıcısına eşlenir. Snowflake veritabanı tanımlayıcısı büyük/küçük harfe duyarlı değilse, yabancı katalog <database-name> içindeki kullandığınız harf biçimi olduğu gibi korunur. Ancak Snowflake veritabanı tanımlayıcısı büyük/küçük harfe duyarlıysa, olayı korumak için yabancı kataloğu <database-name> çift tırnak içine almalısınız.
Örneğin:
databaseolarak dönüştürülürDATABASE"database"olarak dönüştürülürdatabase"database"""olarak dönüştürülürdatabase"Çift tırnak işaretinden kaçınmak için bir çift tırnak daha kullanın.
"database""çift tırnağın doğru şekilde kaçış karakteri kullanılmadığından hatayla sonuçlanır.
Daha fazla bilgi için Snowflake belgelerindeki Tanımlayıcı gereksinimleri bölümüne bakın.
Desteklenen baskılar
Aşağıdaki baskılamalar desteklenir:
- Filters
- Projections
- Limit
- Joins
- Toplamalar (Average, Corr, CovPopulation, CovSample, Count, Max, Min, StddevPop, StddevSamp, Sum, VariancePop, VarianceSamp)
- İşlevler (Dize işlevleri, Matematiksel işlevler, Veri, Zaman ve Zaman Damgası işlevleri ve Alias, Cast, SortOrder gibi diğer çeşitli işlevler)
- Windows işlevleri (DenseRank, Rank, RowNumber)
- Sorting
Veri türü eşlemeleri
Snowflake'ten Spark'a okuma yaptığınızda veri türleri aşağıdaki gibi eşlenir:
| Kar tanesi türü | Spark türü |
|---|---|
| ondalık, sayı, sayısal | DecimalType |
| bigint, byteint, int, integer, küçükint, minikint | IntegerType |
| float, float4, float8 (programlama veri türleri) | FloatType |
| çift, çift hassasiyet, gerçek sayı | DoubleType |
| char, karakter, string, metin, zaman, varchar | StringType |
| binary | BinaryType |
| boolean | BooleanType |
| date | DateType |
| datetime, timestamp, timestamp_ltz, timestamp_ntz, timestamp_tz | TimestampType |
Sorgu federasyon sınırlamaları
- Snowflake OAuth uç noktasına Azure Databricks denetim düzlemi IP'lerinden erişilebilir olmalıdır. Bkz. Azure Databricks denetim düzleminden giden IP'ler. Snowflake, azure Databricks denetim düzleminden yetkilendirme için OAuth uç noktasına doğrudan bağlantı sağlayan ayrı bir ağ ilkesi sağlayan güvenlik tümleştirme düzeyinde ağ ilkelerini yapılandırmayı destekler.
- Proxy Kullan, Proxy sunucu, Proxy bağlantı noktası ve Snowflake rol yapılandırma seçenekleri desteklenmez. OAuth kapsamının bir parçası olarak Snowflake rolünü belirtin.
Ek kaynaklar
Snowflake belgelerinde aşağıdaki makalelere bakın: