Azure SQL Veritabanı elastik sorguya genel bakış (önizleme)
Şunlar için geçerlidir: Azure SQL Veritabanı
Elastik sorgu özelliği (önizlemede) Azure SQL Veritabanı’nda birden çok veritabanına yayılan Transact-SQL sorguları çalıştırabilmenizi sağlar. Uzak tablolara erişmek ve birden çok veritabanı olan veri katmanlarını sorgulamak üzere Microsoft ve üçüncü taraf araçlarına (Excel, Power BI, Tableau gibi) bağlanmak için veritabanları arası sorgular gerçekleştirmenize olanak tanır. Bu özelliği kullanarak sorguların ölçeğini büyük veri katmanları için genişletebilir ve sonuçta iş zekası (BI) raporları alabilirsiniz.
Elastik sorguları neden kullanmalısınız?
Azure SQL Veritabanı
T-SQL'de tamamen Azure SQL Veritabanı veritabanları arasında sorgu yapın. Bu, uzak veritabanlarının salt okunur olarak sorgulanmasına olanak tanır ve geçerli SQL Server müşterilerinin üç ve dört bölümlü adları veya bağlı sunucuyu kullanarak uygulamaları SQL Veritabanı geçirmesine olanak tanır.
Tüm hizmet katmanlarında kullanılabilir
Elastik sorgu, Azure SQL Veritabanı tüm hizmet katmanlarında desteklenir. Daha düşük hizmet katmanları için performans sınırlamalarıyla ilgili aşağıdaki Önizleme Sınırlamaları bölümüne bakın.
Uzak veritabanlarına parametre gönderme
Elastik sorgular artık SQL parametrelerini yürütme için uzak veritabanlarına gönderebiliyor.
Saklı yordam yürütme
sp_execute _remote kullanarak uzak saklı yordam çağrılarını veya uzak işlevleri yürütür.
Esneklik
Elastik sorgu içeren dış tablolar, farklı bir şema veya tablo adına sahip uzak tablolara başvurabilir.
Elastik sorgu senaryoları
Amaç, birden çok veritabanının tek bir genel sonuda satırlara katkıda bulunduğu sorgu senaryolarını kolaylaştırmaktır. Sorgu doğrudan kullanıcı veya uygulama tarafından veya veritabanına bağlı araçlar aracılığıyla dolaylı olarak oluşturulabilir. Bu özellikle rapor oluştururken, ticari IŞ zekası veya veri tümleştirme araçlarını kullanırken ya da değiştirilemeyen herhangi bir uygulama kullanırken kullanışlıdır. Elastik sorguyla Excel, Power BI, Tableau veya Cognos gibi araçlardaki tanıdık SQL Server bağlantı deneyimini kullanarak çeşitli veritabanlarında sorgu yapabilirsiniz. Elastik sorgu, SQL Server Management Studio veya Visual Studio tarafından verilen sorgular aracılığıyla bir veritabanı koleksiyonunun tamamına kolay erişim sağlar ve Entity Framework veya diğer ORM ortamlarından veritabanları arası sorgulamayı kolaylaştırır. Şekil 1'de mevcut bir bulut uygulamasının (elastik veritabanı istemci kitaplığını kullanan) ölçeklendirilmiş bir veri katmanı üzerinde derlendiği ve veritabanları arası raporlama için elastik sorgunun kullanıldığı bir senaryo gösterilmektedir.
Şekil 1 Ölçeği genişletilmiş veri katmanında kullanılan elastik sorgu
Elastik sorgu için müşteri senaryoları aşağıdaki topolojilerle karakterize edilir:
- Dikey bölümleme - Veritabanları arası sorgular (Topoloji 1): Veriler, bir veri katmanındaki bir dizi veritabanı arasında dikey olarak bölümlenmiştir. Genellikle, farklı tablo kümeleri farklı veritabanlarında bulunur. Bu, şemanın farklı veritabanlarında farklı olduğu anlamına gelir. Örneğin, envantere yönelik tüm tablolar bir veritabanında, muhasebeyle ilgili tüm tablolar ise ikinci bir veritabanında yer alır. Bu topolojiye sahip yaygın kullanım örnekleri, çeşitli veritabanlarındaki tablolar arasında rapor sorgulamak veya derlemek için bir tane gerektirir.
- Yatay Bölümleme - Parçalama (Topoloji 2): Veriler, satırları ölçeği genişletilmiş bir veri katmanına dağıtmak için yatay olarak bölümlenir. Bu yaklaşımla, şema tüm katılan veritabanlarında aynıdır. Bu yaklaşıma "parçalama" da denir. Parçalama, (1) elastik veritabanı araçları kitaplıkları veya (2) kendi kendine parçalama kullanılarak gerçekleştirilebilir ve yönetilebilir. Elastik sorgu, birçok parçadaki raporları sorgulamak veya derlemek için kullanılır. Parçalar genellikle elastik havuz içindeki veritabanlarıdır. Elastik sorguyu, veritabanları ortak şemayı paylaştığı sürece elastik havuzun tüm veritabanlarını aynı anda sorgulamak için verimli bir yol olarak düşünebilirsiniz.
Not
Elastik sorgu, işlemenin (filtreleme, toplama) çoğunun dış kaynak tarafında gerçekleştirilebildiği raporlama senaryoları için en iyi şekilde çalışır. Uzak veritabanlarından büyük miktarda verinin aktarıldığı ETL işlemleri için uygun değildir. Daha karmaşık sorgulara sahip yoğun raporlama iş yükleri veya veri ambarı senaryoları için Azure Synapse Analytics'i de kullanmayı göz önünde bulundurun.
Dikey bölümleme - veritabanları arası sorgular
Kodlamaya başlamak için bkz . Veritabanları arası sorguyu (dikey bölümleme) kullanmaya başlama.
Elastik sorgu, SQL Veritabanı veritabanında bulunan verileri SQL Veritabanı'daki diğer veritabanlarının kullanımına açmak için kullanılabilir. Bu, bir veritabanındaki sorguların SQL Veritabanı'daki diğer uzak veritabanlarındaki tablolara başvurmasını sağlar. İlk adım, her uzak veritabanı için bir dış veri kaynağı tanımlamaktır. Dış veri kaynağı, uzak veritabanında bulunan tablolara erişmek istediğiniz yerel veritabanında tanımlanır. Uzak veritabanında değişiklik yapılması gerekmez. Farklı veritabanlarının farklı şemalara sahip olduğu tipik dikey bölümleme senaryolarında, başvuru verilerine erişim ve veritabanları arası sorgulama gibi yaygın kullanım örneklerini uygulamak için elastik sorgular kullanılabilir.
Önemli
HERHANGİ Bİr HARİÇ VERİ KAYNAĞıNDA ALTER iznine sahip olmanız gerekir. Bu izin ALTER DATABASE iznine dahil edilir. ALTER ANY EXTERNAL DATA SOURCE permissions to refer to the underlying data source.
Başvuru verileri: Topoloji, başvuru veri yönetimi için kullanılır. Aşağıdaki şekilde, başvuru verilerine sahip iki tablo (T1 ve T2) ayrılmış bir veritabanında tutulur. Elastik sorgu kullanarak, şekilde gösterildiği gibi T1 ve T2 tablolarına diğer veritabanlarından uzaktan erişebilirsiniz. Başvuru tabloları küçükse veya başvuru tablosundaki uzak sorgular seçmeli koşula sahipse topoloji 1'i kullanın.
Şekil 2 Dikey bölümleme - Başvuru verilerini sorgulamak için elastik sorgu kullanma
Veritabanları arası sorgulama: Elastik sorgular, SQL Veritabanı'deki çeşitli veritabanlarında sorgulama gerektiren kullanım örneklerini etkinleştirir. Şekil 3'de dört farklı veritabanı gösterilmektedir: CRM, Stok, İk ve Ürünler. Veritabanlarından birinde gerçekleştirilen sorguların da bir veya tüm diğer veritabanlarına erişmesi gerekir. Elastik sorgu kullanarak, dört veritabanının her birinde birkaç basit DDL deyimi çalıştırarak veritabanınızı bu durum için yapılandırabilirsiniz. Bu tek seferlik yapılandırmadan sonra, uzak tabloya erişim, T-SQL sorgularınızdan veya BI araçlarınızdan yerel bir tabloya başvurmak kadar basittir. Uzak sorgular büyük sonuçlar döndürmezse bu yaklaşım önerilir.
Şekil 3 Dikey bölümleme - Çeşitli veritabanlarında sorgulamak için elastik sorgu kullanma
Aşağıdaki adımlar, aynı şemaya sahip SQL Veritabanı uzak veritabanlarında bulunan bir tabloya erişim gerektiren dikey bölümleme senaryoları için elastik veritabanı sorgularını yapılandırır:
- CREATE MASTER KEY mymasterkey
- CREATE DATABASE SCOPED CREDENTIAL mycredential
- CREATE/DROP EXTERNAL DATA SOURCE mydatasource of type RDBMS
- CREATE/DROP EXTERNAL TABLE mytable
DDL deyimlerini çalıştırdıktan sonra, "mytable" uzak tablosuna yerel bir tablo gibi erişebilirsiniz. Azure SQL Veritabanı otomatik olarak uzak veritabanına bir bağlantı açar, isteğinizi uzak veritabanında işler ve sonuçları döndürür.
Yatay bölümleme - parçalama
Raporlama görevlerini parçalı, yani yatay olarak bölümlenmiş bir veri katmanı üzerinde gerçekleştirmek için elastik sorgunun kullanılması, veri katmanı veritabanlarını temsil etmek için elastik bir veritabanı parça eşlemesi gerektirir. Genellikle, bu senaryoda yalnızca tek bir parça eşlemesi kullanılır ve elastik sorgu özelliklerine (baş düğüm) sahip ayrılmış bir veritabanı, sorguları raporlamak için giriş noktası görevi görür. Yalnızca bu ayrılmış veritabanının parça eşlemesine erişmesi gerekir. Şekil 4'de bu topoloji ve elastik sorgu veritabanı ve parça eşlemesi ile yapılandırması gösterilmektedir. Elastik veritabanı istemci kitaplığı ve parça eşlemeleri oluşturma hakkında daha fazla bilgi için bkz . Parça eşleme yönetimi.
Şekil 4 Yatay bölümleme - Parçalanmış veri katmanları üzerinden raporlama için elastik sorgu kullanma
Not
Elastik Sorgu Veritabanı (baş düğüm) ayrı bir veritabanı olabileceği gibi parça eşlemesini barındıran veritabanı da olabilir. Hangi yapılandırmayı seçerseniz seçin, bu veritabanının hizmet katmanının ve işlem boyutunun beklenen oturum açma/sorgu isteği miktarını işleyecek kadar yüksek olduğundan emin olun.
Aşağıdaki adımlar, SQL Veritabanı'daki birkaç uzak veritabanında (genellikle) bulunan bir tablo kümesine erişim gerektiren yatay bölümleme senaryoları için elastik veritabanı sorgularını yapılandırabilirsiniz:
- CREATE MASTER KEY mymasterkey
- CREATE DATABASE SCOPED CREDENTIAL mycredential
- Elastik veritabanı istemci kitaplığını kullanarak veri katmanınızı temsil eden bir parça eşlemesi oluşturun.
- CREATE/DROP EXTERNAL DATA SOURCE mydatasource of type SHARD_MAP_MANAGER
- CREATE/DROP EXTERNAL TABLE mytable
Bu adımları gerçekleştirdikten sonra, yatay olarak bölümlenmiş "mytable" tablosuna yerel bir tablo gibi erişebilirsiniz. Azure SQL Veritabanı, tabloların fiziksel olarak depolandığı uzak veritabanlarına otomatik olarak birden çok paralel bağlantı açar, uzak veritabanlarındaki istekleri işler ve sonuçları döndürür. Yatay bölümleme senaryosu için gereken adımlar hakkında daha fazla bilgi, yatay bölümleme için elastik sorguda bulunabilir.
Kodlamaya başlamak için bkz . Yatay bölümleme (parçalama) için elastik sorguyu kullanmaya başlama.
Önemli
Elastik sorgunun büyük bir veritabanı kümesi üzerinde başarıyla yürütülmesi, sorgu yürütme sırasında veritabanlarının her birinin kullanılabilirliğine bağlıdır. Veritabanlarından biri kullanılamıyorsa sorgunun tamamı başarısız olur. Aynı anda yüzlerce veya binlerce veritabanını sorgulamayı planlıyorsanız, istemci uygulamanızın yeniden deneme mantığı ekli olduğundan emin olun veya elastik işlerden yararlanıp veritabanlarının daha küçük alt kümelerini sorgulayarak her sorgunun sonuçlarını tek bir hedefte birleştirmeyi göz önünde bulundurun.
T-SQL sorgulama
Dış veri kaynaklarınızı ve dış tablolarınızı tanımladıktan sonra, dış tablolarınızı tanımladığınız veritabanlarına bağlanmak için normal SQL Server bağlantı dizesi kullanabilirsiniz. Ardından, aşağıda açıklanan sınırlamalarla bu bağlantıdaki dış tablolarınız üzerinde T-SQL deyimlerini çalıştırabilirsiniz. Yatay bölümleme ve dikey bölümleme ile ilgili belge konularında daha fazla bilgi ve T-SQL sorgusu örnekleri bulabilirsiniz.
Araçlar için bağlantı
Uygulamalarınızı ve BI veya veri tümleştirme araçlarını dış tabloları olan veritabanlarına bağlamak için normal SQL Server bağlantı dizesi kullanabilirsiniz. SQL Server'ın aracınız için bir veri kaynağı olarak desteklendiğinden emin olun. Bağlandıktan sonra, aracınızla bağlandığınız diğer TÜM SQL Server veritabanlarında yaptığınız gibi elastik sorgu veritabanına ve bu veritabanındaki dış tablolara bakın.
Önemli
Elastik sorgular yalnızca SQL Server Kimlik Doğrulaması ile bağlanırken desteklenir.
Maliyet
Elastik sorgu, Azure SQL Veritabanı maliyetine dahildir. Uzak veritabanlarınızın elastik sorgu uç noktasından farklı bir veri merkezinde yer aldığı topolojilerin desteklendiğini, ancak uzak veritabanlarından veri çıkışının düzenli olarak Azure ücretleri alındığını unutmayın.
Önizleme sınırlamaları
- İlk elastik sorgunuzu çalıştırmak, daha küçük kaynaklarda ve Standart ve Genel Amaçlı hizmet katmanında birkaç dakika kadar sürebilir. Elastik sorgu işlevselliğini yüklemek için bu süre gereklidir; yükleme performansı, daha yüksek hizmet katmanları ve işlem boyutlarıyla artar.
- SSMS veya SSDT'den dış veri kaynaklarının veya dış tabloların betiği henüz desteklenmemektedir.
- SQL Veritabanı için içeri/dışarı aktarma işlemi henüz dış veri kaynaklarını ve dış tabloları desteklemez. İçeri/Dışarı Aktarma'yı kullanmanız gerekiyorsa, dışarı aktarmadan önce bu nesneleri bırakın ve içeri aktardıktan sonra yeniden oluşturun.
- Elastik sorgu şu anda yalnızca dış tablolara salt okunur erişimi destekler. Ancak, dış tablonun tanımlandığı veritabanında tam Transact-SQL işlevini kullanabilirsiniz. Bu, örneğin SELECT <column_list INTO <local_table>> kullanarak geçici sonuçları kalıcı hale getirmek veya dış tablolara başvuran elastik sorgu veritabanında saklı yordamlar tanımlamak için yararlı olabilir.
- Nvarchar(max) dışında, dış tablo tanımlarında LOB türleri (uzamsal türler dahil) desteklenmez. Geçici bir çözüm olarak, uzak veritabanında LOB türünü nvarchar(max) türüne dönüştüren bir görünüm oluşturabilir, dış tablonuzu temel tablo yerine görünüm üzerinde tanımlayabilir ve sorgularınızda özgün LOB türüne geri döndürebilirsiniz.
- Sonuç kümesindeki nvarchar(max) veri türü sütunları Elastik Sorgu uygulamasında kullanılan gelişmiş toplu işlem tekniklerini devre dışı bırakır ve sorgunun bir büyüklük sırası için performansını, hatta sorgu sonucunda büyük miktarda toplanmamış verilerin aktarıldığı kurallı olmayan kullanım örneklerinde iki büyüklük sırasını etkileyebilir.
- Dış tablolar üzerindeki sütun istatistikleri şu anda desteklenmemektedir. Tablo istatistikleri desteklenir, ancak el ile oluşturulması gerekir.
- Azure SQL Veritabanı dış tablolar için imleçler desteklenmez.
- Elastik sorgu yalnızca Azure SQL Veritabanı ile çalışır. Sql Server örneğini sorgulamak için kullanamazsınız.
- Özel bağlantılar, şu anda dış veri kaynaklarınca hedeflenen veritabanları için elastik sorgu ile desteklenmemektedir.
Geri Bildiriminizi Paylaşın
Elastik sorgularla ilgili deneyiminiz hakkındaki geri bildirimleri aşağıda, MSDN forumlarında veya Stack Overflow'da bizimle paylaşın. Hizmet hakkında her türlü geri bildirimle ilgileniyoruz (kusurlar, pürüzlü kenarlar, özellik boşlukları).
Sonraki adımlar
- Dikey bölümleme öğreticisi için bkz . Veritabanları arası sorguyu (dikey bölümleme) kullanmaya başlama.
- Dikey olarak bölümlenmiş veriler için söz dizimi ve örnek sorgular için bkz . Dikey olarak bölümlenmiş verileri sorgulama)
- Yatay bölümleme (parçalama) öğreticisi için bkz . Yatay bölümleme (parçalama) için elastik sorguyu kullanmaya başlama.
- Yatay olarak bölümlenmiş veriler için söz dizimi ve örnek sorgular için bkz . Yatay olarak bölümlenmiş verileri sorgulama)
- Yatay bölümleme düzeninde parça olarak hizmet veren tek bir uzak Azure SQL Veritabanı veya veritabanı kümesinde Transact-SQL deyimini yürüten bir saklı yordam için sp_execute _remote bakın.