Aracılığıyla paylaş


Snowflake üzerinde federasyon sorguları çalıştırma

Bu makalede, Azure Databricks tarafından yönetilmeyen Snowflake 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 Snowflake veritabanınıza bağlanmak için Azure Databricks Unity Kataloğu meta veri deponuzda aşağıdakileri oluşturmanız gerekir:

  • 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.

Başlamadan önce

Çalışma alanı gereksinimleri:

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

İşlem gereksinimleri:

  • Databricks Runtime kümenizden veya SQL ambarından hedef veritabanı sistemlerine ağ bağlantısı. Bkz . Lakehouse Federasyonu için ağ önerileri.
  • Azure Databricks kümeleri Databricks Runtime 13.3 LTS veya üzerini ve paylaşılan veya tek kullanıcılı erişim modunu kullanmalıdır.
  • SQL ambarları Pro veya Sunucusuz olmalıdır 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 ayrıcalığı olan CREATE CONNECTION bir kullanıcı olmanız gerekir.
  • Yabancı katalog oluşturmak için meta veri deposu üzerinde izninizin olması ve bağlantının sahibi olmanız veya bağlantıda ayrıcalığınız olması CREATE FOREIGN CATALOG gerekirCREATE CATALOG.

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

  • OAuth kullanarak kimlik doğrulaması yapmayı planlıyorsanız Snowflake konsolunda bir güvenlik tümleştirmesi oluşturun. Ayrıntılar için aşağıdaki bölüme bakın.

(İsteğe bağlı) Snowflake konsolunda güvenlik tümleştirmesi oluşturma

OAuth kullanarak kimlik doğrulaması yapmak istiyorsanız, Snowflake bağlantısı oluşturmadan önce bu adımı izleyin. Bunun yerine kullanıcı adı ve parola kullanarak kimlik doğrulaması yapmak için bu bölümü atlayın.

Not

Yalnızca Snowflake'in yerel OAuth tümleştirmesi desteklenir. Okta veya Microsoft Entra ID gibi dış OAuth tümleştirmeleri desteklenmez.

Snowflake konsolunda komutunu çalıştırın CREATE SECURITY INTEGRATION. Aşağıdaki değerleri değiştirin:

  • <integration-name>: OAuth tümleştirmeniz için benzersiz bir ad.

  • <workspace-url>: Azure Databricks çalışma alanı URL'si. Olarak ayarlamanız OAUTH_REDIRECT_URI https://<workspace-url>/login/oauth/snowflake.htmlgerekir; 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.

    Önemli

    OAUTH_REFRESH_TOKEN_VALIDITY varsayı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.

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 CREATE CONNECTION Databricks SQL sorgu düzenleyicisinde Katalog Gezgini'ni veya 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ı.

Gerekli izinler: Meta veri deposu yöneticisi veya ayrıcalığına CREATE CONNECTION sahip kullanıcı.

Katalog Gezgini

  1. Azure Databricks çalışma alanınızda Katalog'a tıklayın Katalog simgesi .

  2. Katalog bölmesinin üst kısmında Ekle simgesine Ekle veya artı simgesi tıklayın ve menüden Bağlantı ekle'yi seçin.

    Alternatif olarak, Hızlı erişim sayfasında Dış veri >düğmesine tıklayın, Bağlantılar sekmesine gidin ve Bağlantı oluştur'a tıklayın.

  3. Kullanıcı dostu bir Bağlantı adı girin.

  4. Snowflake bağlantı türünü seçin.

  5. Snowflake ambarınız için aşağıdaki bağlantı özelliklerini girin.

    • Kimlik doğrulama türü: OAuth veya Username and password
    • Konak: Örneğin, snowflake-demo.east-us-2.azure.snowflakecomputing.com
    • Bağlantı noktası: Örneğin, 443
    • Kar tanesi ambarı: Örneğin, my-snowflake-warehouse
    • Kullanıcı: Örneğin, snowflake-user
    • (OAuth) İstemci Kimliği: Snowflake konsolunda komutunu çalıştırarak SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('<security_integration_name>') güvenlik tümleştirmenizin istemci kimliğini alın.
    • (OAuth): İstemci gizli dizisi: Snowflake konsolunda komutunu çalıştırarak SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('<security_integration_name>') güvenlik tümleştirmeniz için istemci gizli dizisini alın.
    • (OAuth) İstemci kapsamı: refresh_token session:role:<role-name>. içinde <role-name>kullanılacak Snowflake rolünü belirtin.
    • (Kullanıcı adı ve parola) Parola: Örneğin, password123

    (OAuth) OAuth kimlik bilgilerinizi kullanarak Snowflake'de oturum açmanız istenir.

  6. (İsteğe bağlı) Çalıştığını onaylamak için Bağlantıyı test et'e tıklayın.

  7. (İsteğe bağlı) Açıklama ekleyin.

  8. Oluştur’a tıklayın.

SQL

Aşağıdaki komutu bir not defterinde veya Databricks SQL sorgu düzenleyicisinde çalıştırın.

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

Kimlik bilgileri gibi hassas değerler için düz metin dizeleri yerine Azure Databricks gizli dizilerini kullanmanızı öneririz. Örneğin:

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

Gizli dizileri ayarlama hakkında bilgi için bkz . Gizli dizi yönetimi.

Yabancı katalog oluşturma

Yabancı katalog, Azure Databricks ve Unity Kataloğu'nu kullanarak bu veritabanındaki verileri sorgulayıp yönetebilmeniz için bir dış veri sistemindeki veritabanını yansıtır. 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 CREATE FOREIGN CATALOG SQL sorgu düzenleyicisinde Katalog Gezgini'ni veya SQL komutunu kullanabilirsiniz.

Not

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: CREATE CATALOG meta veri deposu üzerindeki izin ve bağlantının sahipliği veya CREATE FOREIGN CATALOG bağlantı üzerindeki ayrıcalık.

Katalog Gezgini

  1. Azure Databricks çalışma alanınızda Katalog'a tıklayarak Katalog Gezgini'ne tıklayınKatalog simgesi.

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

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

  3. Katalog oluşturma başlığındaki 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:

CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');

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şler. Snowflake veritabanı tanımlayıcısı büyük/küçük harfe duyarlı değilse, yabancı katalogda <database-name> kullandığınız büyük/küçük harf 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:

  • database olarak dönüştürülür DATABASE

  • "database" olarak dönüştürülür database

  • "database""" olarak dönüştürülür database"

    Çift tırnak işaretinden kaçmak için başka bir çift tırnak kullanın.

  • "database"" çift tırnak doğru şekilde kaçış olmadığından hatayla sonuçlanır.

Daha fazla bilgi için Snowflake belgelerindeki Tanımlayıcı gereksinimleri bölümüne bakın.

Desteklenen gönderimler

Aşağıdaki gönderimler desteklenir:

  • Filtreler
  • Projeksiyonlar
  • Sınır
  • Birleştirmeler
  • 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)
  • Sıralama

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 Ondalık Türü
bigint, byteint, int, integer, smallint, tinyint IntegerType
float, float4, float8 FloatType
double, double precision, real DoubleType
char, character, string, text, time, varchar StringType
ikili BinaryType
boolean BooleanType
tarih DateType
datetime, timestamp, timestamp_ltz, timestamp_ntz, timestamp_tz Zaman Damgası Türü

OAuth sınırlamaları

OAuth destek sınırlamaları şunlardır:

  • Snowflake OAuth uç noktasına Databricks denetim düzlemi IP'lerinden erişilebilir olmalıdır. Bkz . Azure Databricks denetim düzleminden giden. Snowflake, 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.
  • Ara Sunucu, Ara Sunucu konağı, 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