Aracılığıyla paylaş


Microsoft SQL Server'da şirket dışındaki sorguları çalıştırma

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

  • SQL Server veritabanınıza bağlantı.
  • Unity Kataloğu'ndaki SQL Server veritabanınızı yansıtan bir yabancı katalog; böylece 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önetebilirsiniz.

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, Azure Databricks için Microsoft Entra Id'ye bir uygulama kaydedin. Ayrıntılar için aşağıdaki bölüme bakın.

(İsteğe bağlı) Azure Databricks için Microsoft Entra Id'ye uygulama kaydetme

OAuth kullanarak kimlik doğrulaması yapmak istiyorsanız, SQL Server 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.

  1. Azure Portal’ında oturum açın.
  2. Sol gezinti bölmesinde Microsoft Entra Id'ye tıklayın.
  3. Uygulama kayıtları'e tıklayın.
  4. Yeni kayıt'a tıklayın. Yeni uygulama için bir ad girin ve yeniden yönlendirme URI'sini olarak https://<workspace-url>/login/oauth/azure.htmlayarlayın.
  5. Kaydet’e tıklayın.
  6. Temel Bileşenler kutusunda Uygulama (istemci) kimliğini kopyalayın ve depolayın. Uygulamayı yapılandırmak için bu değeri kullanacaksınız.
  7. Sertifikalar ve gizli diziler'e tıklayın.
  8. İstemci gizli dizileri sekmesinde Yeni istemci gizli dizisi'ne tıklayın.
  9. Gizli dizi ve süre sonu için bir açıklama girin (varsayılan ayar 180 gündür).
  10. Ekle'yi tıklatın.
  11. İstemci gizli dizisi için oluşturulan değeri kopyalayın.
  12. API izinleri'ne tıklayın.
  13. İzin ekle'ye tıklayın.
  14. Azure SQL Veritabanı'ı seçin ve Temsilci izinleri'nin altındaki user_impersonation tıklayın.
  15. İzin ekle'ye tıklayın.

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.

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. SQL Server'ın bağlantı türünü seçin.

  5. OAuth veya Kullanıcı adı ve parola için bir Kimlik Doğrulama türü seçin.

  6. Kimlik doğrulama yönteminize bağlı olarak SQL Server örneğinin aşağıdaki bağlantı özelliklerini girin:

    • Konak: SQL sunucunuz.
    • (Temel kimlik doğrulaması) Liman
    • (Temel kimlik doğrulaması) trustServerCertificate: varsayılan olarak kullanılır false. olarak trueayarlandığında, aktarım katmanı kanalı şifrelemek için SSL kullanır ve güveni doğrulamak için sertifika zincirini atlar. Güven doğrulamasını atlamanız gerekmediği sürece bu ayarı varsayılan olarak bırakın.
    • (Temel kimlik doğrulaması) Kullanıcı
    • (Temel kimlik doğrulaması) Parola
    • (OAuth) Yetkilendirme Uç Noktası: Azure Entra yetkilendirme uç noktanız biçimindedir https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize.
    • (OAuth) Oluşturduğunuz uygulamadan istemci kimliği .
    • (OAuth) Oluşturduğunuz istemci gizli dizisinden gelen istemci gizli dizisi.
    • (OAuth) İstemci kapsamı: Hiçbir değişiklik yapmadan aşağıdaki değeri girin: https://database.windows.net/.default offline_access.
    • (OAuth) Azure Entra Kimliği ile oturum açmanız istenir. Azure kullanıcı adınızı ve parolanızı girin. Bağlantı oluşturma sayfasına yeniden yönlendirildikten sonra yetkilendirme kodu kullanıcı arabiriminde doldurulur.
  7. (İsteğe bağlı) Çalıştığını onaylamak için Bağlantıyı test et'e tıklayın.

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

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

Not

(OAuth) Azure Entra Id OAuth uç noktasına Azure Databricks denetim düzlemi IP'lerinden erişilebilir olmalıdır. Bkz. Azure Databricks bölgeleri.

SQL

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

CREATE CONNECTION <connection-name> TYPE sqlserver
OPTIONS (
  host '<hostname>',
  port '<port>',
  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 sqlserver
OPTIONS (
  host '<hostname>',
  port '<port>',
  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.

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>');

Desteklenen gönderimler

Aşağıdaki gönderimler tüm işlemlerde desteklenir:

  • Filtreler
  • Projeksiyonlar
  • Sınır
  • İşlevler: kısmi, yalnızca filtre ifadeleri için. (Dize işlevleri, Matematiksel işlevler, Veri, Zaman ve Zaman Damgası işlevleri ve Alias, Cast, SortOrder gibi diğer çeşitli işlevler)

Aşağıdaki gönderimler Databricks Runtime 13.3 LTS ve üzeri ile SQL ambarı işlemlerinde desteklenir:

  • Toplamlar
  • Aşağıdaki Boole işleçleri: =, <, <=, >, >=, <=>
  • Aşağıdaki matematiksel işlevler (ANSI devre dışı bırakıldıysa desteklenmez): +, -, *, %, /
  • Aşağıdaki çeşitli işleçler: ^, |, ~
  • Sıralama, sınır ile kullanıldığında

Aşağıdaki gönderimler desteklenmez:

  • Birleştirmeler
  • Windows işlevleri

Veri türü eşlemeleri

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

SQL Server türü Spark türü
bigint (işaretsiz), ondalık, para, sayısal, smallmoney Ondalık Türü
smallint ShortType
int, tinyint IntegerType
bigint (imzalıysa) LongType
real FloatType
kayan noktalı sayı DoubleType
char, nchar, uniqueidentifier CharType
nvarchar, varchar VarcharType
metin, xml StringType
ikili, coğrafya, geometri, görüntü, zaman damgası, udt, varbinary BinaryType
bit BooleanType
tarih DateType
datetime, datetime, smalldatetime, time TimestampType/TimestampNTZType

*SQL Server'dan okurken, SQL Server datetimes (varsayılan) ise preferTimestampNTZ = false Spark'a TimestampType eşlenir. SQL Serverdatetimes, ise preferTimestampNTZ = trueile TimestampNTZType eşlenir.