Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:Azure SQL Veritabanı
Önemli
Parça eşleme yöneticisi modunda elastik sorgu (yatay bölümleme), EXTERNAL DATA SOURCE tipini SHARD_MAP_MANAGER kullanarak, 31 Mart 2027'de desteğin sona ereceği tarihe ulaşacaktır. Bu tarihten sonra mevcut iş yükleri çalışmaya devam edecek ancak artık destek almayacak ve türünde SHARD_MAP_MANAGER yeni dış veri kaynaklarının oluşturulması artık mümkün olmayacaktır. Geçiş seçenekleri için bkz . Elastik sorgu parça eşleme yöneticisi modundan geçiş kılavuzu.
Parçalı veritabanları, satırları ölçeği genişletilmiş bir veri katmanına dağıtır. Şema, yatay bölümleme olarak da bilinen tüm katılan veritabanlarında aynıdır. Elastik sorgu kullanarak, parçalanmış veritabanındaki tüm veritabanlarını kapsayan raporlar oluşturabilirsiniz.
Hızlı başlangıç için bkz. Ölçek genişletme bulut veritabanları arasında raporlama (önizleme).
Parçalanmamış veritabanları için bkz. Farklı şemalarla bulut veritabanları arasında sorgulama (önizleme).
Önkoşullar
- Elastik veritabanı istemci kitaplığını kullanarak bir parça eşlemesi oluşturun. Bkz. Parça eşleme yöneticisiyle veritabanlarının ölçeğini genişletme. Alternatif olarak , Elastik Veritabanı Araçları'nı kullanmaya başlama bölümündeki örnek uygulamayı da kullanabilirsiniz.
- Alternatif olarak, Mevcut veritabanlarını ölçeklendirmek için geçirin bölümünü inceleyin.
- Kullanıcının TÜM HARİÇ VERİ KAYNAĞıNı DEĞIŞTIRME iznine sahip olması gerekir. Bu izin ALTER DATABASE iznine dahil edilir.
- Alt veri kaynağını belirtmek için ALTER ANY EXTERNAL DATA SOURCE izinleri gereklidir.
Genel bakış
Bu deyimler, elastik sorgu veritabanında parçalanmış veri katmanınızın meta veri gösterimini oluşturur.
- ANA ANAHTAR OLUŞTURMA
- VERITABANı KAPSAMLı KIMLIK BILGISI OLUŞTURMA
- HARİCİ VERİ KAYNAĞI OLUŞTUR
- DıŞ TABLO OLUŞTURMA
1.1 Veritabanı kapsamlı ana anahtar ve kimlik bilgileri oluşturma
Kimlik bilgileri, elastik sorgu tarafından uzak veritabanlarınıza bağlanmak için kullanılır.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password';
CREATE DATABASE SCOPED CREDENTIAL [<credential_name>] WITH IDENTITY = '<username>',
SECRET = '<password>';
Not
"Kullanıcı adının<" herhangi bir ">@servername" soneki içermediğinden emin olun.
1.2 Dış veri kaynakları oluşturma
Söz dizimi:
<External_Data_Source> ::=
CREATE EXTERNAL DATA SOURCE <data_source_name> WITH
(TYPE = SHARD_MAP_MANAGER,
LOCATION = '<fully_qualified_server_name>',
DATABASE_NAME = '<shardmap_database_name>',
CREDENTIAL = <credential_name>,
SHARD_MAP_NAME = '<shardmapname>'
) [;]
Örnek
CREATE EXTERNAL DATA SOURCE MyExtSrc
WITH
(
TYPE=SHARD_MAP_MANAGER,
LOCATION='myserver.database.windows.net',
DATABASE_NAME='ShardMapDatabase',
CREDENTIAL= SMMUser,
SHARD_MAP_NAME='ShardMap'
);
Geçerli dış veri kaynaklarının listesini alın:
select * from sys.external_data_sources;
Dış veri kaynağı parça haritanıza başvurur. Elastik sorgu daha sonra dış veri kaynağını ve temel alınan parça eşlemesini kullanarak veri katmanına katılan veritabanlarını numaralandırır.
Aynı kimlik bilgileri, parça eşlemesini okumak ve elastik sorgu işlenirken parçalardaki verilere erişmek için kullanılır.
1.3 Dış tablolar oluşturma
Söz dizimi:
CREATE EXTERNAL TABLE [ database_name . [ schema_name ] . | schema_name. ] table_name
( { <column_definition> } [ ,...n ])
{ WITH ( <sharded_external_table_options> ) }
) [;]
<sharded_external_table_options> ::=
DATA_SOURCE = <External_Data_Source>,
[ SCHEMA_NAME = N'nonescaped_schema_name',]
[ OBJECT_NAME = N'nonescaped_object_name',]
DISTRIBUTION = SHARDED(<sharding_column_name>) | REPLICATED |ROUND_ROBIN
Örnek
CREATE EXTERNAL TABLE [dbo].[order_line](
[ol_o_id] int NOT NULL,
[ol_d_id] tinyint NOT NULL,
[ol_w_id] int NOT NULL,
[ol_number] tinyint NOT NULL,
[ol_i_id] int NOT NULL,
[ol_delivery_d] datetime NOT NULL,
[ol_amount] smallmoney NOT NULL,
[ol_supply_w_id] int NOT NULL,
[ol_quantity] smallint NOT NULL,
[ol_dist_info] char(24) NOT NULL
)
WITH
(
DATA_SOURCE = MyExtSrc,
SCHEMA_NAME = 'orders',
OBJECT_NAME = 'order_details',
DISTRIBUTION=SHARDED(ol_w_id)
);
Geçerli veritabanından dış tabloların listesini alın:
SELECT * from sys.external_tables;
Dış tabloları silmek için:
DROP EXTERNAL TABLE [ database_name . [ schema_name ] . | schema_name. ] table_name[;]
Açıklamalar
DATA_SOURCE yan tümcesi, dış tablo için kullanılan dış veri kaynağını (parça eşlemesi) tanımlar.
SCHEMA_NAME ve OBJECT_NAME yan tümceleri dış tablo tanımını farklı bir şemadaki bir tabloyla eşler. Atlanırsa, uzak nesnenin şemasının olduğu varsayılır dbo ve adının tanımlanan dış tablo adıyla aynı olduğu varsayılır. Bu, uzaktaki tablonuzun adı, dış tabloyu oluşturmak istediğiniz veritabanında zaten kullanılıyorsa yararlıdır. Örneğin, ölçeklendirilen veri katmanınızdaki katalog görünümlerinin veya DMV'lerin toplam görünümünü almak için bir dış tablo tanımlamak istiyorsunuz. Katalog görünümleri ve DMV'ler zaten yerel olarak mevcut olduğundan, dış tablo tanımı için adlarını kullanamazsınız. Bunun yerine, farklı bir ad ve SCHEMA_NAME ve/veya OBJECT_NAME yan tümcelerinde katalog görünümünün veya DMV'nin adını kullanın. (Örne daha sonra bakın.)
DISTRIBUTION yan tümcesi, bu tablo için kullanılan veri dağıtımını belirtir. Sorgu işlemcisi, en verimli sorgu planlarını oluşturmak için yan tümcesinde DISTRIBUTION sağlanan bilgileri kullanır.
-
SHARDED, verilerin veritabanları arasında yatay olarak bölümlendiği anlamına gelir. Veri dağıtımı için bölümleme anahtarı<sharding_column_name>parametresidir. -
REPLICATED, tablonun özdeş kopyalarının her veritabanında mevcut olduğu anlamına gelir. Çoğaltmaların veritabanlarında aynı olduğundan emin olmak sizin sorumluluğunuzdadır. -
ROUND_ROBIN, tablonun uygulamaya bağımlı bir dağıtım yöntemi kullanılarak yatay olarak bölümlendiği anlamına gelir.
Veri katmanı başvurusu: Dış tablo "DDL" bir dış veri kaynağına başvurur. Dış veri kaynağı, harici tabloya veri katmanındaki tüm veritabanlarını bulmak için gerekli olan bilgileri sağlayan bir shard haritası belirtir.
Güvenlik konuları
Dış tabloya erişimi olan kullanıcılar, dış veri kaynağı tanımında verilen kimlik bilgileri altında temel alınan uzak tablolara otomatik olarak erişim kazanır. Dış veri kaynağının kimlik bilgileri aracılığıyla ayrıcalıkların istenmeyen şekilde yükseltilmesini önleyebilirsiniz. Bir dış tablo için grant veya REVOKE'i normal bir tablo gibi kullanın.
Dış veri kaynağınızı ve dış tablolarınızı tanımladıktan sonra, artık dış tablolarınız üzerinde tam T-SQL kullanabilirsiniz.
Örnek: Yatay bölümlenmiş veritabanlarını sorgulama
Aşağıdaki sorgu ambarlar, siparişler ve sipariş satırları arasında üç yönlü birleştirme gerçekleştirir ve birkaç toplama ve seçmeli filtre kullanır. (1) yatay bölümleme (kümeleme) ve (2) ambarların, siparişlerin ve sipariş satırlarının ambar kimliği sütununa göre kümelendiğini ve elastik sorgunun küme üzerindeki birleştirmeleri beraber konumlandırarak sorgunun maliyetli kısmını küme üzerinde paralel olarak işleyebileceğini varsayar.
select
w_id as warehouse,
o_c_id as customer,
count(*) as cnt_orderline,
max(ol_quantity) as max_quantity,
avg(ol_amount) as avg_amount,
min(ol_delivery_d) as min_deliv_date
from warehouse
join orders
on w_id = o_w_id
join order_line
on o_id = ol_o_id and o_w_id = ol_w_id
where w_id > 100 and w_id < 200
group by w_id, o_c_id
Uzak T-SQL yürütmesi için saklı prosedür: sp_execute_remote
Elastik sorgu ayrıca shard'lara doğrudan erişim sağlayan bir saklı yordam da sunar. Saklı yordam sp_execute_remote olarak adlandırılır ve uzak veritabanlarında uzak saklı yordamları veya T-SQL kodunu yürütmek için kullanılabilir. Aşağıdaki parametreleri alır:
- Veri kaynağı adı (nvarchar): RDBMS türündeki dış veri kaynağının adı.
- Sorgu (nvarchar): Her parçada yürütülecek T-SQL sorgusu.
- Parametre bildirimi (nvarchar) - isteğe bağlı: Sorgu parametresinde kullanılan parametreler için veri türü tanımlarına sahip dize (örneğin
sp_executesql) - Parametre değer listesi - isteğe bağlı: Parametre değerlerinin virgülle ayrılmış listesi (gibi
sp_executesql)
, sp_execute_remote uzak veritabanlarında verilen T-SQL deyimini yürütmek için çağırma parametrelerinde sağlanan dış veri kaynağını kullanır. Shardmap yöneticisi veritabanına ve uzak veritabanlarına bağlanmak için dış veri kaynağının kimlik bilgilerini kullanır.
Örnek:
EXEC sp_execute_remote
N'MyExtSrc',
N'select count(w_id) as foo from warehouse'
Araçlar için bağlantı
Uygulamanızı, IŞ ZEKAnızı ve veri tümleştirme araçlarınızı dış tablo tanımlarınızla veritabanına bağlamak için normal SQL Server bağlantı dizesi kullanın. SQL Server'ın aracınız için bir veri kaynağı olarak desteklendiğinden emin olun. Ardından, araçla bağlantılı diğer SQL Server veritabanları gibi elastik sorgu veritabanına başvurun ve aracınızdan veya uygulamanızdan dış tabloları yerel tablolar gibi kullanın.
En iyi yöntemler
- Elastik sorgu uç noktası veritabanına SQL Veritabanı güvenlik duvarları aracılığıyla parça haritası veritabanına ve tüm parçalara erişim verildiğinden emin olun.
- Dış tablo tarafından tanımlanan veri dağıtımını doğrulayın veya uygulayın. Gerçek veri dağıtımınız tablo tanımınızda belirtilen dağıtımdan farklıysa sorgularınız beklenmeyen sonuçlar verebilir.
- Elastik sorgu, şu anda şard anahtarı üzerindeki koşulların belirli parçaların işlemden güvenli bir şekilde hariç tutulmasına izin verdiğinde, parça eleme işlemi gerçekleştirmez.
- Elastik sorgu, hesaplamanın çoğunun parçalar üzerinde yapılabilmesine neden olan sorgular için en iyi sonucu sağlar. Genellikle, tüm parçalarda bölüme hizalı bir şekilde gerçekleştirilebilecek bölümleme anahtarları üzerinden parçalar veya birleşimler üzerinde değerlendirilebilen seçmeli filtre koşullarıyla en iyi sorgu performansını elde edersiniz. Diğer sorgu desenlerinin parçalardan baş düğüme büyük miktarda veri yüklemesi gerekebilir ve düşük performans gösterebilir.
İlgili içerik
- Azure SQL Veritabanı elastik sorguya genel bakış (önizleme)
- Veritabanları arası sorguları kullanmaya başlama (dikey bölümleme) (önizleme)
- Farklı şemalara (önizleme) sahip bulut veritabanları arasında sorgu
- Ölçeği genişletilmiş bulut veritabanları (önizleme) genelinde Rapor