Udostępnij za pośrednictwem


Wprowadzenie do zapytań między bazami danych (partycjonowanie pionowe) (wersja zapoznawcza)

Dotyczy: Azure SQL Database

Elastyczne zapytanie bazy danych (wersja zapoznawcza) dla usługi Azure SQL Database umożliwia uruchamianie zapytań T-SQL obejmujących wiele baz danych przy użyciu jednego punktu połączenia. Ten artykuł dotyczy baz danych partycjonowanych w pionie.

Po zakończeniu dowiesz się, jak skonfigurować usługę Azure SQL Database i używać jej do wykonywania zapytań obejmujących wiele powiązanych baz danych.

Aby uzyskać więcej informacji na temat funkcji zapytań elastycznej bazy danych, zobacz Omówienie zapytań elastycznej bazy danych usługi Azure SQL Database.

Wymagania wstępne

Wymagane jest uprawnienie ALTER ANY EXTERNAL DATA SOURCE.ALTER ANY EXTERNAL DATA SOURCE (ZMIANA DOWOLNEGO ZEWNĘTRZNEGO ŹRÓDŁA DANYCH) jest wymagane. To uprawnienie jest dołączone do uprawnienia ALTER DATABASE. ABY odwołać się do bazowego źródła danych, potrzebne są uprawnienia ALTER ANY EXTERNAL DATA SOURCE.

Tworzenie przykładowych baz danych

Aby rozpocząć od, utwórz dwie bazy danych, Klienci i Zamówienia, na tych samych lub różnych serwerach.

Wykonaj następujące zapytania w bazie danych Orders , aby utworzyć tabelę OrderInformation i wprowadzić przykładowe dane.

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)

Teraz wykonaj następujące zapytanie w bazie danych Customers , aby utworzyć tabelę CustomerInformation i wprowadzić przykładowe dane.

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')

Tworzenie obiektów bazy danych

Klucz główny i poświadczenia w zakresie bazy danych

  1. Otwórz program SQL Server Management Studio lub sql Server Data Tools w programie Visual Studio.

  2. Połącz się z bazą danych Orders i wykonaj następujące polecenia języka T-SQL:

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

    "master_key_password" to silne hasło wybrane do szyfrowania poświadczeń połączenia. Nazwa użytkownika i hasło powinny być nazwą użytkownika i hasłem używanym do logowania się do bazy danych Customers (utwórz nowego użytkownika w bazie danych Klienci, jeśli jeszcze nie istnieje). Uwierzytelnianie przy użyciu identyfikatora Entra firmy Microsoft (dawniej Azure Active Directory) z elastycznymi zapytaniami nie jest obecnie obsługiwane.

Zewnętrzne źródła danych

Aby utworzyć zewnętrzne źródło danych, wykonaj następujące polecenie w bazie danych Orders:

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

Tabele zewnętrzne

Utwórz tabelę zewnętrzną w bazie danych Orders, która jest zgodna z definicją tabeli CustomerInformation:

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

Wykonywanie przykładowego zapytania T-SQL elastycznej bazy danych

Po zdefiniowaniu zewnętrznego źródła danych i tabel zewnętrznych można teraz użyć języka T-SQL do wykonywania zapytań względem tabel zewnętrznych. Wykonaj to zapytanie w bazie danych Orders:

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

Koszt

Obecnie funkcja zapytań elastycznych baz danych jest uwzględniana w kosztach usługi Azure SQL Database.

Aby uzyskać informacje o cenach, zobacz Cennik usługi SQL Database.

Następne kroki