Introducción a las consultas entre bases de datos (particiones verticales) (versión preliminar)

Se aplica a: Azure SQL Database

La consulta de base de datos elástica (versión preliminar) para Azure SQL Database le permite ejecutar consultas T-SQL que distribuyen varias bases de datos con un único punto de conexión. Este artículo se aplica a bases de datos con particiones verticales.

Una vez completado, sabrá: cómo configurar y usar una base de datos de Azure SQL para realizar consultas que distribuyan múltiples bases de datos relacionadas.

Para más información sobre la característica de la consulta de base de datos elástica, consulte la información general sobre consulta de bases de datos elásticas de Azure SQL Database.

Requisitos previos

Se requiere el permiso ALTER ANY EXTERNAL DATA SOURCE. Este permiso está incluido en el permiso ALTER DATABASE. Se necesitan permisos ALTER ANY EXTERNAL DATA SOURCE para hacer referencia al origen de datos subyacente.

Crear las base de datos de ejemplo

Para empezar, cree dos bases de datos, Clientes y Pedidos, ya sea en el mismo servidor o en diferentes servidores.

Ejecute las siguientes consultas en la base de datos Orders para crear la tabla OrderInformation e introducir los datos de ejemplo.

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)

Ahora, ejecute la siguiente consulta en la base de datos Customers para crear la tabla CustomerInformation e introducir los datos de ejemplo.

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

Creación de objetos de base de datos

Clave maestra y credenciales de ámbito de base de datos

  1. Abra SQL Server Management Studio o SQL Server Data Tools en Visual Studio.

  2. Conéctese a la base de datos Pedidos y ejecute los siguientes comandos de T-SQL:

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

    "master_key_password" es una contraseña segura de su elección que se usa para cifrar las credenciales de conexión. El "nombre de usuario" y la "contraseña" deben ser el nombre de usuario y la contraseña usados para iniciar sesión en la base de datos Customers (cree un nuevo usuario en dicha base de datos si aún no existe). Actualmente no se admite la autenticación con Microsoft Entra ID (anteriormente Azure Active Directory) con consultas elásticas.

Orígenes de datos externos

Para crear un origen de datos externo, ejecute el siguiente comando en la base de datos Pedidos:

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

Tablas externas

Cree una tabla externa en la base de datos Pedidos, que coincida con la definición de la tabla CustomerInformation:

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

Ejecución de la consulta de T-SQL de la base de datos elástica de ejemplo

Una vez que haya definido su origen de datos externo y las tablas externas, puede usar el T-SQL para consultar las tablas externas. Ejecute esta consulta en la base de datos Pedidos:

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

Coste

En la actualidad, la característica de consulta de base de datos elástica se incluye en el costo de su base de datos de Azure SQL.

Para obtener información de precios, consulte Precios de SQL Database.

Pasos siguientes