Začínáme s dotazy napříč databázemi (vertikální dělení) (Preview)
Platí pro: Azure SQL Database
Dotaz elastické databáze (Preview) pro Azure SQL Database umožňuje spouštět dotazy T-SQL, které zahrnují více databází pomocí jednoho spojovacího bodu. Tento článek se týká vertikálně dělených databází.
Po dokončení se naučíte, jak nakonfigurovat a používat Azure SQL Database k provádění dotazů, které zahrnují více souvisejících databází.
Další informace o funkci dotazu elastické databáze najdete v přehledu dotazů elastické databáze Azure SQL Database.
Požadavky
Je vyžadováno oprávnění ALTER ANY EXTERNAL DATA SOURCE. Toto oprávnění je součástí oprávnění ALTER DATABASE. K odkazování na podkladový zdroj dat jsou potřeba oprávnění ALTER ANY EXTERNAL DATA SOURCE.
Vytvoření ukázkových databází
Začněte vytvořením dvou databází, zákazníků a objednávek, a to buď na stejných nebo různých serverech.
Spuštěním následujících dotazů v databázi Orders vytvořte tabulku OrderInformation a zadejte ukázková data.
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)
Nyní spusťte následující dotaz na databázi Customers a vytvořte tabulku CustomerInformation a zadejte ukázková data.
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')
Vytváření databázových objektů
Hlavní klíč a přihlašovací údaje v oboru databáze
Otevřete SQL Server Management Studio nebo SQL Server Data Tools v sadě Visual Studio.
Připojte se k databázi Orders a spusťte následující příkazy T-SQL:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master_key_password>'; CREATE DATABASE SCOPED CREDENTIAL ElasticDBQueryCred WITH IDENTITY = '<username>', SECRET = '<password>';
"master_key_password" je silné heslo, které se používá k šifrování přihlašovacích údajů připojení. Uživatelské jméno a heslo by měly být uživatelské jméno a heslo použité k přihlášení k databázi Customers (pokud ještě neexistuje, vytvořte nového uživatele v databázi Customers). Ověřování pomocí Microsoft Entra ID (dříve Azure Active Directory) s elastickými dotazy se v současné době nepodporuje.
Externí zdroje dat
Pokud chcete vytvořit externí zdroj dat, spusťte v databázi Orders následující příkaz:
CREATE EXTERNAL DATA SOURCE MyElasticDBQueryDataSrc WITH
(TYPE = RDBMS,
LOCATION = '<server_name>.database.windows.net',
DATABASE_NAME = 'Customers',
CREDENTIAL = ElasticDBQueryCred
) ;
Externí tabulky
Vytvořte externí tabulku v databázi Orders, která odpovídá definici tabulky CustomerInformation:
CREATE EXTERNAL TABLE [dbo].[CustomerInformation]
( [CustomerID] [int] NOT NULL,
[CustomerName] [varchar](50) NOT NULL,
[Company] [varchar](50) NOT NULL)
WITH
( DATA_SOURCE = MyElasticDBQueryDataSrc)
Provedení ukázkového dotazu T-SQL elastické databáze
Po definování externího zdroje dat a externích tabulek teď můžete k dotazování externích tabulek použít T-SQL. Spusťte tento dotaz v databázi Orders:
SELECT OrderInformation.CustomerID, OrderInformation.OrderId, CustomerInformation.CustomerName, CustomerInformation.Company
FROM OrderInformation
INNER JOIN CustomerInformation
ON CustomerInformation.CustomerID = OrderInformation.CustomerID
Náklady
V současné době je funkce dotazu elastické databáze zahrnutá do nákladů na službu Azure SQL Database.
Informace o cenách najdete v tématu Sql Database – ceny.
Další kroky
- Přehled elastického dotazu najdete v přehledu elastických dotazů.
- Syntaxe a ukázkové dotazy pro vertikálně dělená data najdete v tématu Dotazování svisle dělených dat.
- Kurz horizontálního dělení (horizontálního dělení) najdete v tématu Začínáme s elastickým dotazem pro horizontální dělení (horizontální dělení).
- Syntaxe a ukázkové dotazy pro horizontálně dělená data najdete v tématu Dotazování horizontálně dělených dat.
- Viz sp_execute_remote uložené procedury, která spouští příkaz Transact-SQL na jedné vzdálené službě Azure SQL Database nebo sadě databází, které slouží jako horizontální oddíly ve schématu horizontálního dělení.