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ıdaCREATE 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
Azure Databricks çalışma alanınızda
simgesine tıklayın. 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ış veridüğmesine tıklayın, sekmesine gidin ve Bağlantı oluştur öğesine tıklayın. sihirbazınınbağlantı Bağlantı temel bilgileri sayfasında,kullanıcı dostu birBağlantı adı girin. SQLDW Bağlantı türü . (İsteğe bağlı) Açıklama ekleyin.
Sonraseçeneğine tıklayın.
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.
-
Konak: Örneğin,
Bağlantıoluştur'a tıklayın.
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.
(İsteğe bağlı) Çalıştığını onaylamak için Bağlantıyı test et'e tıklayın.
Oluştur catalog'yı tıklayın.
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.
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. Grant catalogüzerinde Ayrıcalıklar. Grantöğesine tıklayın:
- catalognesnelere erişecek Yetkilileri belirtin. Metin kutusuna bir sorumluyu yazmaya başlayın ve çıkan sonuçlarda sorumlunun üzerine tıklayın.
- 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 grant
read
ayrıcalıklarına geçin. -
Select
Veri Düzenleyicisi açılır menüden catalognesnelerde grant
read
vemodify
ayrıcalıklarına. - grantayrıcalıklarını el ile select.
-
Select
Veri Okuyucusu açılan menüden catalognesnelerdeki grant
- Grantöğesine tıklayın.
Sonrakiöğesine tıklayın.
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.
(İsteğe bağlı) Açıklama ekleyin.
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
Azure Databricks çalışma alanınızda
Gezgini' açmak için simgesine tıklayın. 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.
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 TimestampNTZType
ile preferTimestampNTZ = true
eşlenir.