Ejercicio: Creación de una tabla externa a partir de una base de datos en Azure SQL Database

Completado

En esta unidad, se conectará y creará una tabla externa a partir de una base de datos en Azure SQL Database mediante los servicios PolyBase. Para este ejercicio, tú:

  • Cree una base de datos en SQL Server 2025.
  • Cree una clave maestra de base de datos para proteger la credencial con alcance a nivel de base de datos de Azure SQL.
  • Cree una credencial de ámbito de base de datos para acceder al origen de datos de Azure SQL Database.
  • Crear un origen de datos externo mediante la credencial con ámbito de base de datos.
  • Consulte el origen de datos externo mediante OPENROWSET.
  • Cree una tabla externa utilizando el origen de datos externo.

Prerrequisitos

  • Una base de datos de Azure SQL creada mediante las instrucciones de Inicio rápido: Creación de una base de datos única: Azure SQL Database. Para este ejercicio, asigne un nombre al servidor polybaseserver de Azure SQL y a la base de datos polybase2025testde Azure SQL. Asegúrese de seleccionar Usar ejemplo de datos > existente en Configuración adicional al crear la base de datos.

  • Una instancia de SQL Server 2025 con PolyBase instalada y habilitada como para el ejercicio anterior. Para conectarse a otra base de datos, como una base de datos de Azure SQL, debe usar los servicios de PolyBase. Abra el Administrador de configuración de SQL Server y asegúrese de que los servicios SQL Server PolyBase Data Movement y SQL Server PolyBase Engine estén en funcionamiento.

Creación de una base de datos

En la instancia de SQL Server, cree una base de datos denominada Demo2y cambie al uso de esa base de datos.

USE MASTER;
 
IF EXISTS (SELECT * FROM sys.databases WHERE [name] = N'Demo2')
BEGIN
    ALTER DATABASE Demo2 SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    DROP DATABASE IF EXISTS Demo2;
END;
 
CREATE DATABASE Demo2;
 
USE Demo2;

Creación de la clave maestra de la base de datos

Cree una clave maestra de base de datos para esta nueva base de datos, como en el ejercicio anterior.

DECLARE @randomWord VARCHAR(64) = NEWID();
DECLARE @createMasterKey NVARCHAR(500) = N'
IF NOT EXISTS (SELECT * FROM sys.symmetric_keys WHERE name = ''##MS_DatabaseMasterKey##'')
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '  + QUOTENAME(@randomWord, '''')
EXEC sp_executesql @createMasterKey;
 
SELECT * FROM sys.symmetric_keys;

Crear la credencial de ámbito de base de datos

Cree la credencial con ámbito de base de datos que se usará para conectarse al servidor lógico de Azure SQL. Reemplace <sql_user> y <password> por el nombre de usuario y la contraseña de azure SQL Server.

CREATE DATABASE SCOPED CREDENTIAL AzureSQLDB
WITH IDENTITY = '<sql_user>', Secret = '<password>';

Creación del origen de datos externo para Azure SQL Database

Cree el origen de datos externo que apunta al servidor lógico de Azure SQL. Use el sqlserver:// prefijo para conectarse al servidor. En este ejemplo, el nombre completo del servidor es polybaseserver.database.windows.net.

CREATE EXTERNAL DATA SOURCE AzureSQLDB
    WITH ( LOCATION = 'sqlserver://polybaseserver.database.windows.net',
    CREDENTIAL = AzureSQLDB);

Habilitación de consultas distribuidas ad hoc

De forma predeterminada, SQL Server no permite consultas distribuidas ad hoc mediante OPENROWSET. Ejecute el sp_configure comando para habilitar consultas distribuidas ad hoc. Para obtener más información, consulte consultas distribuidas ad hoc (opción de configuración del servidor).

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;

EXEC SP_CONFIGURE N'Ad Hoc Distributed Queries', 1;
RECONFIGURE;

Uso de OPENROWSET para acceder a la base de datos de Azure SQL

Use OPENROWSET para conectarse a la polybase2025test base de datos de Azure SQL Database y consultar la SalesLT.Customer tabla. Debe especificar un proveedor. En este ejemplo se usa el proveedor MSOLEDBSQL, que se instala con SQL Server 2025. También debe especificar la autenticación <user> de SQL y <password>

SELECT
*
FROM OPENROWSET(
N'MSOLEDBSQL',
'Server=polybaseserver.database.windows.net;database=polybase2025test;uid=<user>;pwd=<password>',
'SELECT * FROM SalesLT.Customer'
);

Creación de una tabla externa de SQL Server 2025 a Azure SQL Database

Ahora que ha comprobado que puede consultar el origen de datos externo, puede crear y ver una tabla externa llamada ext_tblCustomers desde ese origen de datos mediante la credencial con ámbito de base de datos y el origen de datos externo.

CREATE EXTERNAL TABLE ext_tblCustomers(
   CustomerID INT
   ,LastName  NVARCHAR(50)
   ,EmailAddress  NVARCHAR(50)
)
WITH 
(LOCATION = N'polybase2025test.SalesLT.Customer'
,DATA_SOURCE = AzureSQLDB);
 
SELECT * FROM ext_tblCustomers;

En esta unidad, ha usado PolyBase en una instancia de SQL Server 2025 para consultar y crear una tabla externa desde Azure SQL Database. Continúe con la siguiente unidad para obtener información sobre el comando CREATE EXTERNAL TABLE AS SELECT (CETAS) y sus ventajas.