Veritabanları arası sorguları kullanmaya başlama (dikey bölümleme) (önizleme)

Şunlar için geçerlidir: Azure SQL Veritabanı

Azure SQL Veritabanı için elastik veritabanı sorgusu (önizleme), tek bir bağlantı noktası kullanarak birden çok veritabanına yayılan T-SQL sorguları çalıştırmanızı sağlar. Bu makale, dikey olarak bölümlenmiş veritabanları için geçerlidir.

Tamamlandığında: birden çok ilişkili veritabanına yayılan sorgular gerçekleştirmek için bir Azure SQL Veritabanı yapılandırmayı ve kullanmayı öğreneceksiniz.

Elastik veritabanı sorgusu özelliği hakkında daha fazla bilgi için bkz. elastik veritabanı sorgusuna genel bakış Azure SQL Veritabanı.

Önkoşullar

ALTER ANY EXTERNAL DATA SOURCE permission is required. Bu izin ALTER DATABASE iznine dahil edilir. ALTER ANY EXTERNAL DATA SOURCE permissions to refer to the underlying data source.

Örnek veritabanları oluşturma

Başlangıç olarak, aynı veya farklı sunucularda Müşteriler ve Siparişler adlı iki veritabanı oluşturun.

Aşağıdaki sorguları Orders veritabanında yürüterek OrderInformation tablosunu oluşturun ve örnek verileri girin.

CREATE TABLE [dbo].[OrderInformation](
    [OrderID] [int] NOT NULL,
    [CustomerID] [int] NOT NULL
    )
INSERT INTO [dbo].[OrderInformation] ([OrderID], [CustomerID]) VALUES (123, 1)
INSERT INTO [dbo].[OrderInformation] ([OrderID], [CustomerID]) VALUES (149, 2)
INSERT INTO [dbo].[OrderInformation] ([OrderID], [CustomerID]) VALUES (857, 2)
INSERT INTO [dbo].[OrderInformation] ([OrderID], [CustomerID]) VALUES (321, 1)
INSERT INTO [dbo].[OrderInformation] ([OrderID], [CustomerID]) VALUES (564, 8)

Şimdi CustomerInformation tablosunu oluşturmak ve örnek verileri giriş yapmak için Customers veritabanında aşağıdaki sorguyu yürütür.

CREATE TABLE [dbo].[CustomerInformation](
    [CustomerID] [int] NOT NULL,
    [CustomerName] [varchar](50) NULL,
    [Company] [varchar](50) NULL
    CONSTRAINT [CustID] PRIMARY KEY CLUSTERED ([CustomerID] ASC)
)
INSERT INTO [dbo].[CustomerInformation] ([CustomerID], [CustomerName], [Company]) VALUES (1, 'Jack', 'ABC')
INSERT INTO [dbo].[CustomerInformation] ([CustomerID], [CustomerName], [Company]) VALUES (2, 'Steve', 'XYZ')
INSERT INTO [dbo].[CustomerInformation] ([CustomerID], [CustomerName], [Company]) VALUES (3, 'Lylla', 'MNO')

Veritabanı nesneleri oluşturma

Veritabanı kapsamlı ana anahtar ve kimlik bilgileri

  1. Visual Studio'da SQL Server Management Studio'yu veya SQL Server Veri Araçları açın.

  2. Orders veritabanına bağlanın ve aşağıdaki T-SQL komutlarını yürütür:

    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master_key_password>';
    CREATE DATABASE SCOPED CREDENTIAL ElasticDBQueryCred
    WITH IDENTITY = '<username>',
    SECRET = '<password>';  
    

    "master_key_password", seçtiğiniz bağlantı kimlik bilgilerini şifrelemek için kullandığınız güçlü bir paroladır. "kullanıcı adı" ve "parola", Müşteriler veritabanında oturum açmak için kullanılan kullanıcı adı ve parola olmalıdır (Henüz yoksa Müşteriler veritabanında yeni bir kullanıcı oluşturun). Elastik sorgularla Microsoft Entra Id (eski adıYla Azure Active Directory) kullanılarak kimlik doğrulaması şu anda desteklenmemektedir.

Dış veri kaynakları

Dış veri kaynağı oluşturmak için Orders veritabanında aşağıdaki komutu yürütür:

CREATE EXTERNAL DATA SOURCE MyElasticDBQueryDataSrc WITH
    (TYPE = RDBMS,
    LOCATION = '<server_name>.database.windows.net',
    DATABASE_NAME = 'Customers',
    CREDENTIAL = ElasticDBQueryCred
) ;

Dış tablolar

Orders veritabanında CustomerInformation tablosunun tanımıyla eşleşen bir dış tablo oluşturun:

CREATE EXTERNAL TABLE [dbo].[CustomerInformation]
( [CustomerID] [int] NOT NULL,
    [CustomerName] [varchar](50) NOT NULL,
    [Company] [varchar](50) NOT NULL)
WITH
( DATA_SOURCE = MyElasticDBQueryDataSrc)

Örnek elastik veritabanı T-SQL sorgusu yürütme

Dış veri kaynağınızı ve dış tablolarınızı tanımladıktan sonra, artık dış tablolarınızı sorgulamak için T-SQL kullanabilirsiniz. Bu sorguyu Orders veritabanında yürüt:

SELECT OrderInformation.CustomerID, OrderInformation.OrderId, CustomerInformation.CustomerName, CustomerInformation.Company
FROM OrderInformation
INNER JOIN CustomerInformation
ON CustomerInformation.CustomerID = OrderInformation.CustomerID

Maliyet

Şu anda elastik veritabanı sorgu özelliği, Azure SQL Veritabanı maliyetine dahil edilir.

Fiyatlandırma bilgileri için bkz. fiyatlandırma SQL Veritabanı.

Sonraki adımlar