Introdução às consultas entre bancos de dados (particionamento vertical) (visualização)
Aplica-se a:Banco de Dados SQL do Azure
A consulta de banco de dados elástico (visualização) para o Banco de Dados SQL do Azure permite executar consultas T-SQL que abrangem vários bancos de dados usando um único ponto de conexão. Este artigo aplica-se a bancos de dados particionados verticalmente.
Quando concluído, você irá: saiba como configurar e usar um Banco de Dados SQL do Azure para executar consultas que abrangem vários bancos de dados relacionados.
Para obter mais informações sobre o recurso de consulta de banco de dados elástico, consulte Visão geral da consulta de banco de dados elástico do Banco de Dados SQL do Azure.
Pré-requisitos
É necessária a permissão ALTER ANY EXTERNAL DATA SOURCE. Esta permissão está incluída com a permissão ALTER DATABASE. As permissões ALTER ANY EXTERNAL DATA SOURCE são necessárias para fazer referência à fonte de dados subjacente.
Criar os bancos de dados de exemplo
Para começar, crie dois bancos de dados, Clientes e Pedidos, no mesmo servidor ou em servidores diferentes.
Execute as seguintes consultas no banco de dados Orders para criar a tabela OrderInformation e inserir os dados de exemplo.
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)
Agora, execute a seguinte consulta no banco de dados Customers para criar a tabela CustomerInformation e inserir os dados de exemplo.
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')
Criar objetos de banco de dados
Chave mestra e credenciais com escopo de banco de dados
Abra o SQL Server Management Studio ou o SQL Server Data Tools no Visual Studio.
Conecte-se ao banco de dados Orders e execute os seguintes comandos T-SQL:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master_key_password>'; CREATE DATABASE SCOPED CREDENTIAL ElasticDBQueryCred WITH IDENTITY = '<username>', SECRET = '<password>';
O "master_key_password" é uma senha forte de sua escolha usada para criptografar as credenciais de conexão. O "nome de utilizador" e a "palavra-passe" devem ser o nome de utilizador e a palavra-passe utilizados para iniciar sessão na base de dados de Clientes (crie um novo utilizador na base de dados de Clientes, caso ainda não exista). Atualmente, não há suporte para autenticação usando o Microsoft Entra ID (anteriormente Azure Ative Directory) com consultas elásticas.
Origens de dados externas
Para criar uma fonte de dados externa, execute o seguinte comando no banco de dados Pedidos:
CREATE EXTERNAL DATA SOURCE MyElasticDBQueryDataSrc WITH
(TYPE = RDBMS,
LOCATION = '<server_name>.database.windows.net',
DATABASE_NAME = 'Customers',
CREDENTIAL = ElasticDBQueryCred
) ;
Tabelas externas
Crie uma tabela externa no banco de dados Pedidos, que corresponda à definição da tabela CustomerInformation:
CREATE EXTERNAL TABLE [dbo].[CustomerInformation]
( [CustomerID] [int] NOT NULL,
[CustomerName] [varchar](50) NOT NULL,
[Company] [varchar](50) NOT NULL)
WITH
( DATA_SOURCE = MyElasticDBQueryDataSrc)
Executar uma consulta T-SQL de banco de dados elástico de exemplo
Depois de definir sua fonte de dados externa e suas tabelas externas, agora você pode usar o T-SQL para consultar suas tabelas externas. Execute esta consulta na base de dados Pedidos:
SELECT OrderInformation.CustomerID, OrderInformation.OrderId, CustomerInformation.CustomerName, CustomerInformation.Company
FROM OrderInformation
INNER JOIN CustomerInformation
ON CustomerInformation.CustomerID = OrderInformation.CustomerID
Custo
Atualmente, o recurso de consulta de banco de dados elástico está incluído no custo do seu Banco de Dados SQL do Azure.
Para obter informações sobre preços, consulte Preços do Banco de Dados SQL.
Próximos passos
- Para obter uma visão geral da consulta elástica, consulte Visão geral da consulta elástica.
- Para consultas de sintaxe e exemplo para dados particionados verticalmente, consulte Consultando dados particionados verticalmente.
- Para obter um tutorial de particionamento horizontal (fragmentação), consulte Introdução à consulta elástica para particionamento horizontal (fragmentação).
- Para consultas de sintaxe e exemplo para dados particionados horizontalmente, consulte Consultando dados particionados horizontalmente.
- Consulte sp_execute_remote para obter um procedimento armazenado que executa uma instrução Transact-SQL em um único Banco de Dados SQL remoto do Azure ou conjunto de bancos de dados que servem como fragmentos em um esquema de particionamento horizontal.