Aracılığıyla paylaş


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

Bu sayfada, Azure Databricks tarafından yönetilmeyen SQL Server verileri üzerinde federasyon sorguları çalıştırmak için Lakehouse Federasyonu'nu ayarlama işlemi açıklanmaktadı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.

Lakehouse Federation SQL Server, Azure SQL Veritabanı ve Azure SQL Yönetilen Örneği destekler.

Başlamadan önce

Ç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ı. Lakehouse Federasyonu için Ağ Önerileri kısmına bakın.
  • Azure Databricks işlem, Databricks Runtime 13.3 LTS veya üzerini ve Standart veya Ayrılmış 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 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.

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

Katalog Tarayıcısı

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

  2. Kataloğu bölmesinin üst kısmında Ekle veya artı simgesine tıklayın ekle simgesine tıklayın ve menüden Bağlantı ekle 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. Bağlantı ayarlama sihirbazının Bağlantı temel bilgileri sayfasında, kullanıcı dostu bir Bağlantı adı girin.

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

  5. OAuth, OAuth Machine to Machine veya Kullanıcı adı ve parola (temel kimlik doğrulaması) kimlik doğrulaması türü seçin.

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

  7. Nextöğesine tıklayın.

  8. Kimlik Doğrulaması sayfasında, SQL Server örneğinin aşağıdaki bağlantı özelliklerini girin. Seçtiğiniz kimlik doğrulama yöntemine özgü özelliklerden önce parantez içindeki Auth type eklenir.

    • 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) SQL Server federasyonu için Microsoft Entra Kimliğini Yapılandırma bölümünde topladığınız bağlantı ayrıntılarını girin.
  9. Bağlantı oluştur'a tıklayın.

  10. (Temel kimlik doğrulaması) Bağlantı ayrıntıları sayfasında aşağıdakileri belirtin:

    • Güven sunucusu sertifikası: Bu, varsayılan olarak seçili değildir. Aktarım katmanı seçildiğinde, 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.
    • Uygulama amacı: Sunucuya bağlanırken uygulama iş yükü türü.
  11. Nextöğesine tıklayın.

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

  13. Katalog oluştur'a tıklayın.

  14. Erişim 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ına erişim seçeneğini seçebilir veya Çalışma alanlarına ata üzerine tıklayabilir, çalışma alanlarını seçip Ata butonuna tıklayabilirsiniz.

  15. Katalogdaki tüm nesnelere erişimi yönetebilecek Sahip'i değiştirin. Metin kutusuna bir sorumlu yazmaya başlayın ve döndürülen sonuçlarda sorumluya tıklayın.

  16. Katalogda Ayrıcalıklar Verme. Grant'e tıklayın

    1. Katalogdaki nesnelere erişimi olacak Sorumlularını belirtin. Metin kutusuna bir sorumlu yazmaya başlayın ve döndürülen sonuçlarda sorumluya tıklayın.
    2. Her sorumluya vermek için Ayrıcalık ö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 nesneler üzerinde ve read ayrıcalıklar tanımak için açılan modify seçin.
      • Vermek istediğiniz ayrıcalıkları el ile seçin.
    3. İzin Ver'e tıklayın.
  17. Nextöğesine tıklayın.

  18. Meta Veriler sayfasında etiket anahtar-değer çiftlerini belirtin. Daha fazla bilgi için bkz. Unity Kataloğu güvenli hale getirilebilir nesnelere etiket uygulama.

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

  20. Kaydet'e tıklayın.

Note

(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 bilgileri ayarlama hakkında bilgi için bkz. Gizli bilgi 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.

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

Katalog Tarayıcısı

  1. Azure Databricks çalışma alanınızda 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 .
  • <database-name>: Azure Databricks'te katalog olarak yansıtmak istediğiniz veritabanının adı.
CREATE FOREIGN CATALOG [IF NOT EXISTS] <catalog-name> USING CONNECTION <connection-name>
OPTIONS (database '<database-name>');

Desteklenen baskılar

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

  • Filters
  • Projections
  • Limit
  • İş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:

  • Aggregates
  • 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:

  • Joins
  • 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 DecimalType
smallint, tinyint ShortType
int IntegerType
bigint (imzalıysa) LongType
real FloatType
float 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
date DateType
datetime, datetime, küçük tarih saat, time TimestampType/TimestampNTZType

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