Aracılığıyla paylaş


Microsoft Azure Synapse'te federasyon sorguları çalıştırma

Bu makalede, Azure Databricks tarafından yönetilmeyen Azure Synapse (SQL Veri Ambarı) verilerinde federasyon sorguları çalıştırmak için Lakehouse Federasyonu'nun nasıl set açıklanmaktadır. Lakehouse Federasyonu hakkında daha fazla bilgi edinmek için bkz . Lakehouse Federasyonu nedir?.

Lakehouse Federation kullanarak bir Azure Synapse (SQL Veri Ambarı) veritabanına bağlanmak için Azure Databricks Unity Catalog meta veri deponuzda aşağıdakileri oluşturmanız gerekir:

  • Azure Synapse (SQL Veri Ambarı) veritabanınıza bağlantı.
  • Unity Catalog'daki Azure Synapse (SQL Veri Ambarı) veritabanınızı yansıtan yabancı catalog; böylece Unity Catalog 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 Catalogiçin etkinleştirilen çalışma alanı.

İşlem gereksinimleri:

  • İşlem kaynağınızdan hedef veritabanı sistemlerine ağ bağlantısı. Bkz . Lakehouse Federasyonu için ağ önerileri.
  • Azura Databricks işlemcisi, Databricks Runtime 13.3 LTS veya üzerini kullanmalı ve Paylaşılan veya Tek kullanıcı erişim modunu içermelidir.
  • 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 Catalog meta veri deposunda CREATE CONNECTION ayrıcalığına sahip bir kullanıcı olmanız gerekir.
  • Yabancı catalogoluş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ı, dış veritabanı sistemine erişmek için bir yol ve credentials belirtir. Bağlantı oluşturmak için Azure Databricks not defterinde veya Databricks SQL sorgu düzenleyicisinde Catalog Gezgini'ni veya CREATE CONNECTION 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ı.

Catalog Gezgini

  1. Azure Databricks çalışma alanınızda simgesine tıklayın.

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

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

  3. bağlantı sihirbazının Bağlantı temel bilgileri sayfasında,kullanıcı dostu bir Bağlantı adı girin.

  4. SQLDW Bağlantı türü .

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

  6. Sonraseçeneğine tıklayın.

  7. Kimlik Doğrulaması sayfasında Azure Synapse örneğinin aşağıdaki bağlantı özelliklerini girin:

    • Konak: Örneğin, sqldws-demo.database.windows.net.
    • Bağlantı noktası: Örneğin, 1433
    • Kullanıcı
    • Parola
    • 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. Özel bir şekilde güven doğrulamasını aşma gereğiniz yoksa bu set'ı varsayılan olarak bırakın.
  8. Bağlantıoluştur'a tıklayın.

  9. Catalog temel bilgiler sayfasında, yabancı catalogiçin bir ad girin. Yabancı catalog, Azure Databricks ve Unity Catalogkullanarak bu veritabanındaki verilere sorgulama yapabilmenizi ve erişimi yönetebilmenizi sağlamak için bir dış veri sistemindeki veritabanını yansıtır.

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

  11. Oluştur catalog'yı tıklayın.

  12. Access sayfasında, kullanıcıların oluşturduğunuz catalog erişebileceği çalışma alanlarını select. Çalışma alanlarının tümü selecterişime sahiptirveya Çalışma alanlarına ata, çalışma alanlarını select seçin ve sonra Ata'ya tıklayın.

  13. içindeki tüm nesnelere erişimi yönetebilecek Sahibini değiştirin. Metin kutusuna bir prensip yazmaya başlayın ve ardından döndürülen sonuçlardan prensibe tıklayın.

  14. Grant catalogüzerinde Ayrıcalıklar. Grantöğesine tıklayın:

    1. catalognesnelere erişecek Yetkilileri belirtin. Metin kutusuna bir sorumluyu yazmaya başlayın ve çıkan sonuçlarda sorumlunun üzerine tıklayın.
    2. Her bir yetkiliye Select'dan grant'e kadar Privilege ön ayarları. Tüm hesap kullanıcılarına varsayılan olarak BROWSE verilir.
      • Select Veri Okuyucusu açılan menüden catalognesnelerdeki grantread ayrıcalıklarına geçin.
      • Select Veri Düzenleyicisi açılır menüden catalognesnelerde grantread ve modify ayrıcalıklarına.
      • grantayrıcalıklarını el ile select.
    3. Grantöğesine tıklayın.
  15. Sonrakiöğesine tıklayın.

  16. Meta Veri sayfasında, etiket anahtar-değer çiftlerini belirtin. Daha fazla bilgi için bkz. Unity'ye etiket uygulama Catalog güvenli hale getirilebilir nesneler.

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

  18. Kaydettı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 sqldw
OPTIONS (
  host '<hostname>',
  port '<port>',
  user '<user>',
  password '<password>'
);

credentialsgibi hassas values için düz metin dizeleri yerine Azure Databricks gizli dizileri kullanmanızı öneririz. Örneğin:

CREATE CONNECTION <connection-name> TYPE sqldw
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ı catalog oluştur

Not

Kullanıcı arabirimini veri kaynağına bağlantı oluşturmak için kullanırsanız, yabancı catalog yaratımı da sürece dahildir ve bu adımı atlayabilirsiniz.

Dış catalog, bir harici veri sistemindeki veritabanının bir kopyasını oluşturur; böylece Azure Databricks ve Unity Catalogkullanarak o veritabanındaki verileri sorgulayabilir ve erişimini yönetebilirsiniz. Yabancı bir catalogoluşturmak için, önceden tanımlanmış olan veri kaynağına bir bağlantı kullanırsınız.

Yabancı bir catalogoluşturmak için, Azure Databricks not defterinde veya SQL sorgu düzenleyicisinde Catalog Gezgini'ni veya CREATE FOREIGN CATALOG SQL komutunu kullanabilirsiniz.

catalogoluş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.

Catalog Gezgini

  1. Azure Databricks çalışma alanınızda Gezgini' açmak için simgesine tıklayın.

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

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

  3. Oluşturma catalogs'nde yabancı catalogs 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 values'i değiştirin.

  • <catalog-name>: Azure Databricks'teki catalog adı.
  • <connection-name>: credentialsveri kaynağını, yolu ve erişimi belirten bağlantı nesnesi.
  • <database-name>: Azure Databricks'te catalog 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 gönderimler

Aşağıdaki gönderimler desteklenir:

  • Filtreler
  • Projeksiyonlar
  • Limit
  • Toplamlar (Average, Count, Max, Min, StddevPop, StddevSamp, Sum, VarianceSamp)
  • İşlevler (Aritmetik ve Alias, Cast, SortOrder gibi diğer çeşitli işlevler)
  • Sıralama

Aşağıdaki gönderimler desteklenmez:

  • Birleştirmeler
  • Windows işlevleri

Veri türü eşlemeleri

Synapse / SQL Veri Ambarı'ndan Spark'a okuma yaptığınızda veri türleri aşağıdaki gibi eşlenir:

Synapse türü Spark türü
ondalık, para, sayısal, küçük para Ondalık Türü
smallint ShortType
tinyint ByteType
int IntegerType
bigint LongType
real FloatType
kayan noktalı sayı DoubleType
char, nchar, ntext, nvarchar, text, uniqueidentifier, varchar, xml StringType
ikili, coğrafya, geometri, görüntü, zaman damgası, udt, varbinary BinaryType
bit BooleanType
tarih DateType
datetime, datetime, smalldatetime, time TimestampType/TimestampNTZType*

*Synapse / SQL Veri Ambarı'ndan (SQLDW) okuduğunuzda, SQLDW datetimes (varsayılan) ise TimestampType Spark'a preferTimestampNTZ = false eşlenir. SQLDWdatetimes, ise TimestampNTZTypeile preferTimestampNTZ = true eşlenir.