Aan de slag met query's tussen databases (verticale partitionering) (preview)
Van toepassing op: Azure SQL Database
Met een elastische databasequery (preview) voor Azure SQL Database kunt u T-SQL-query's uitvoeren die meerdere databases omvatten met behulp van één verbindingspunt. Dit artikel is van toepassing op verticaal gepartitioneerde databases.
Wanneer u klaar bent, leert u hoe u een Azure SQL Database configureert en gebruikt om query's uit te voeren die meerdere gerelateerde databases omvatten.
Zie het overzicht van query's voor elastische databases in Azure SQL Database voor meer informatie over de functie voor query's voor elastische databases.
Vereisten
ALTER ANY EXTERNAL DATA SOURCE permission is required. Deze machtiging is opgenomen in de machtiging ALTER DATABASE. Machtigingen voor ALTER ANY EXTERNAL DATA SOURCE zijn nodig om te verwijzen naar de onderliggende gegevensbron.
De voorbeelddatabases maken
Als u wilt beginnen, maakt u twee databases, klanten en orders, op dezelfde of verschillende servers.
Voer de volgende query's uit op de database Orders om de tabel OrderInformation te maken en voer de voorbeeldgegevens in.
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)
Voer nu de volgende query uit op de database Klanten om de tabel CustomerInformation te maken en de voorbeeldgegevens in te voeren.
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')
Databaseobjecten maken
Hoofdsleutel en referenties met databasebereik
Open SQL Server Management Studio of SQL Server Data Tools in Visual Studio.
Verbinding maken naar de database Orders en voer de volgende T-SQL-opdrachten uit:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master_key_password>'; CREATE DATABASE SCOPED CREDENTIAL ElasticDBQueryCred WITH IDENTITY = '<username>', SECRET = '<password>';
De 'master_key_password' is een sterk wachtwoord van uw keuze voor het versleutelen van de verbindingsreferenties. De gebruikersnaam en het wachtwoord moeten de gebruikersnaam en het wachtwoord zijn die worden gebruikt om u aan te melden bij de klantendatabase (maak een nieuwe gebruiker in de klantendatabase als deze nog niet bestaat). Verificatie met behulp van Microsoft Entra ID (voorheen Azure Active Directory) met elastische query's wordt momenteel niet ondersteund.
Externe gegevensbronnen
Als u een externe gegevensbron wilt maken, voert u de volgende opdracht uit in de database Orders:
CREATE EXTERNAL DATA SOURCE MyElasticDBQueryDataSrc WITH
(TYPE = RDBMS,
LOCATION = '<server_name>.database.windows.net',
DATABASE_NAME = 'Customers',
CREDENTIAL = ElasticDBQueryCred
) ;
Externe tabellen
Maak een externe tabel in de database Orders, die overeenkomt met de definitie van de 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)
Een T-SQL-voorbeeldquery voor een elastische database uitvoeren
Nadat u uw externe gegevensbron en uw externe tabellen hebt gedefinieerd, kunt u nu T-SQL gebruiken om query's uit te voeren op uw externe tabellen. Voer deze query uit op de database Orders:
SELECT OrderInformation.CustomerID, OrderInformation.OrderId, CustomerInformation.CustomerName, CustomerInformation.Company
FROM OrderInformation
INNER JOIN CustomerInformation
ON CustomerInformation.CustomerID = OrderInformation.CustomerID
Kosten
Op dit moment is de queryfunctie voor elastische databases opgenomen in de kosten van uw Azure SQL Database.
Zie prijzen voor SQL Database voor informatie over prijzen.
Volgende stappen
- Zie Overzicht van elastische query's voor een overzicht van elastische query's.
- Zie Query's uitvoeren op verticaal gepartitioneerde gegevens voor syntaxis en voorbeeldquery's voor verticaal gepartitioneerde gegevens.
- Zie Aan de slag met elastische query's voor horizontale partitionering (sharding) voor een zelfstudie over horizontale partitionering (sharding).
- Zie Query's uitvoeren op horizontaal gepartitioneerde gegevens voor syntaxis- en voorbeeldquery's voor horizontaal gepartitioneerde gegevens.
- Zie sp_execute_remote voor een opgeslagen procedure waarmee een Transact-SQL-instructie wordt uitgevoerd op één externe Azure SQL Database of een set databases die fungeren als shards in een horizontaal partitioneringsschema.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub Issues geleidelijk uitfaseren als het feedbackmechanisme voor inhoud. Het wordt vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor