Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:Azure SQL Database
Kueri database elastis (pratinjau) untuk Azure SQL Database memungkinkan Anda menjalankan kueri T-SQL yang mencakup beberapa database menggunakan satu titik koneksi. Artikel ini berlaku untuk database yang dipartisi secara vertikal. Dalam artikel ini, pelajari cara mengonfigurasi dan menggunakan Azure SQL Database untuk melakukan kueri yang mencakup beberapa database terkait.
Untuk informasi selengkapnya tentang fitur kueri database elastis, lihat gambaran umum kueri elastis Azure SQL Database (pratinjau).
Prasyarat
Izin MENGUBAH SUMBER DATA EKSTERNAL APA PUN diperlukan. Izin ini disertakan dengan izin MENGUBAH DATABASE. MENGUBAH izin SUMBER DATA EKSTERNAL diperlukan untuk merujuk ke sumber data yang mendasarinya.
Buat database sampel
Untuk memulainya, buat dua database, Customers
dan Orders
, baik di server logis yang sama atau berbeda.
Jalankan kueri berikut pada database Orders
untuk membuat tabel OrderInformation
dan memasukkan data sampel.
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)
Sekarang, jalankan kueri berikut pada database Customers
untuk membuat tabel CustomerInformation
dan memasukkan data sampel.
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')
Membuat objek database
Kredensial dan kunci master cakupan database
Buka SQL Server Management Studio atau SQL Server Data Tools di Visual Studio.
Sambungkan ke database Pesanan dan jalankan perintah T-SQL berikut:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master_key_password>'; CREATE DATABASE SCOPED CREDENTIAL ElasticDBQueryCred WITH IDENTITY = '<username>', SECRET = '<password>';
-
master_key_password
adalah kata sandi yang kuat dari pilihan Anda yang digunakan untuk mengenkripsi kredensial koneksi. -
username
danpassword
harus berupa nama pengguna dan kata sandi yang digunakan untuk masuk ke database Pelanggan (buat pengguna baru di database Pelanggan jika belum ada). - Autentikasi menggunakan ID Microsoft Entra (sebelumnya Azure Active Directory) dengan kueri elastis saat ini tidak didukung.
-
Sumber data eksternal
Untuk membuat sumber data eksternal, jalankan perintah berikut pada database Orders
untuk menyambungkan ke database Customers
. Berikan server logis Azure SQL dari database Customers
di LOCATION
.
CREATE EXTERNAL DATA SOURCE MyElasticDBQueryDataSrc WITH
(TYPE = RDBMS,
LOCATION = '<server_name>.database.windows.net',
DATABASE_NAME = 'Customers',
CREDENTIAL = ElasticDBQueryCred
);
Tabel eksternal
Buat tabel eksternal pada database Orders
, yang cocok dengan definisi tabel CustomerInformation
:
CREATE EXTERNAL TABLE [dbo].[CustomerInformation]
( [CustomerID] [int] NOT NULL,
[CustomerName] [varchar](50) NOT NULL,
[Company] [varchar](50) NOT NULL)
WITH
( DATA_SOURCE = MyElasticDBQueryDataSrc)
Kueri jarak jauh
Gunakan prosedur tersimpan sp_execute_remote untuk menjalankan pernyataan Transact-SQL pada satu Azure SQL Database jarak jauh atau sekumpulan database yang berfungsi sebagai pecahan dalam skema pemartisian horizontal. Kueri T-SQL jarak jauh berikut mengembalikan data dari tabel OrderInformation
eksternal.
EXEC sp_execute_remote
N'MyElasticDBQueryDataSrc',
N'SELECT COUNT(CustomerID) AS customer_count FROM CustomerInformation';
Jalankan kueri T-SQL database elastis sampel
Setelah menentukan sumber data eksternal dan tabel eksternal, Anda sekarang dapat menggunakan T-SQL untuk mengkueri tabel eksternal Anda. Jalankan kueri ini pada database Orders
:
SELECT OrderInformation.CustomerID, OrderInformation.OrderId, CustomerInformation.CustomerName, CustomerInformation.Company
FROM OrderInformation
INNER JOIN CustomerInformation
ON CustomerInformation.CustomerID = OrderInformation.CustomerID;
Biaya
Saat ini, fitur kueri database elastis disertakan ke dalam biaya Azure SQL Database Anda.
Untuk informasi harga, lihat Detail harga SQL Database.