Memulai dengan kueri lintas database (partisi vertikal) (pratinjau)

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.

Setelah selesai, Anda akan: mempelajari cara mengonfigurasi dan menggunakan Azure SQL Database untuk menampilkan kueri yang mencakup beberapa database terkait.

Untuk informasi selengkapnya tentang fitur kueri database elastis, lihat Gambaran umum kueri database elastis Azure SQL Database.

Prasyarat

Anda harus memiliki izin UBAH SUMBER DATA EKSTERNAL APA PUN. 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, Pelanggan dan Pesanan, baik di server yang sama atau berbeda.

Jalankan kueri berikut pada database Pesanan untuk membuat tabel Informasi Pesanan dan input 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 Pelanggan untuk membuat tabel Informasi Pelanggan dan input 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

  1. Buka SQL Server Management Studio atau SQL Server Data Tools di Visual Studio.

  2. 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. "Nama pengguna" dan "kata sandi" 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 ini pada database Pesanan:

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 Pesanan yang sesuai dengan definisi tabel Informasi Pelanggan:

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

Jalankan kueri T-SQL database elastis sampel

Setelah Anda menentukan sumber data dan tabel eksternal, Anda dapat menggunakan T-SQL untuk membuat kueri tabel eksternal Anda. Jalankan kueri pada database Pesanan:

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.

Langkah berikutnya

  • Untuk gambaran umum kueri elastis, lihat Gambaran umum kueri elastis.
  • Untuk sintaks dan kueri sampel untuk data yang dipartisi secara vertikal, lihat Mengkueri data yang dipartisi secara vertikal.
  • Untuk tutorial pemartisian horizontal (sharding), lihat Memulai kueri elastis untuk pemartisian horizontal (sharding).
  • Untuk sintaksis dan kueri sampel untuk data yang dipartisi secara horizontal, lihat Mengkueri data yang dipartisi secara horizontal.
  • Lihat sp_execute_remote untuk prosedur tersimpan yang menjalankan pernyataan Transact-SQL pada satu Azure SQL Database jarak jauh atau sekumpulan database yang berfungsi sebagai pecahan dalam skema pemartisian horizontal.