Cvičení – vytvoření externí tabulky z databáze ve službě Azure SQL Database

Dokončeno

V této lekci se připojíte k databázi v Azure SQL Database a vytvoříte externí tabulku pomocí služeb PolyBase. V rámci tohoto cvičení budete:

  • Vytvořte databázi v SQL Serveru 2025.
  • Vytvořte hlavní klíč databáze pro zabezpečení přihlašovacích údajů v oboru databáze Azure SQL.
  • Vytvořte přihlašovací údaje s vymezeným oborem databáze pro přístup ke zdroji dat Azure SQL Database.
  • Vytvořte externí zdroj dat pomocí pověření omezeného na databázi.
  • Dotazování externího zdroje dat pomocí OPENROWSET
  • Vytvořte externí tabulku pomocí externího zdroje dat.

Požadavky

  • Databáze Azure SQL vytvořená pomocí pokynů v rychlém startu: Vytvoření izolované databáze – Azure SQL Database. Pro účely tohoto cvičení pojmenujte polybaseserver Azure SQL Serveru a polybase2025testdatabáze Azure SQL. Při vytváření databáze nezapomeňte vybrat Použít existující data > Sample pod Další nastavení.

  • Instance SQL Serveru 2025 s nainstalovanou a povolenou funkcí PolyBase jako v předchozím cvičení. Pokud se chcete připojit k jiné databázi, jako je databáze Azure SQL, musíte použít služby PolyBase. Otevřete SQL Server Configuration Manager a ujistěte se, že jsou spuštěné služby SQL Server PolyBase Data Movement a SQL Server PolyBase Engine .

Vytvoření databáze

V instanci SQL Serveru vytvořte databázi s názvem Demo2a přepněte na použití této databáze.

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;

Vytvoření hlavního klíče databáze

Vytvořte hlavní klíč databáze pro tuto novou databázi stejně jako v předchozím cvičení.

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;

Vytvoření přihlašovacích údajů s vymezeným oborem databáze

Vytvořte přihlašovací údaje s vymezeným oborem databáze, které se použijí pro připojení k logickému serveru Azure SQL. Nahraďte <sql_user> a <password> uživatelským jménem a heslem pro server Azure SQL.

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

Vytvoření externího zdroje dat pro Azure SQL Database

Vytvořte externí zdroj dat odkazující na logický server Azure SQL. K připojení k serveru použijete předponu sqlserver://. V tomto příkladu je plně kvalifikovaný název serveru polybaseserver.database.windows.net.

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

Povolení ad hoc distribuovaných dotazů

SQL Server ve výchozím nastavení neumožňuje ad hoc distribuované dotazy pomocí OPENROWSET. Spuštěním příkazu sp_configure povolte ad hoc distribuované dotazy. Další informace najdete v ad hoc distribuovaných dotazech (možnost konfigurace serveru).

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

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

Použití OPENROWSET pro přístup k databázi Azure SQL

Pomocí openROWSET se připojte k databázi ve službě polybase2025test Azure SQL Database a dotazujte se na SalesLT.Customer tabulku. Potřebujete zadat zprostředkovatele. Tento příklad používá zprostředkovatele MSOLEDBSQL, který je nainstalován s SQL Serverem 2025. Musíte také zadat ověřování SQL pro <user> a <password>.

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

Vytvoření externí tabulky z SQL Serveru 2025 do Azure SQL Database

Teď, když jste ověřili, že se můžete dotazovat na externí zdroj dat, můžete vytvořit a zobrazit externí tabulku s názvem ext_tblCustomers z tohoto zdroje dat pomocí přihlašovacích údajů v oboru databáze a externího zdroje dat.

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;

V této lekci jste použili PolyBase v instanci SQL Serveru 2025 k dotazování a vytvoření externí tabulky ze služby Azure SQL Database. V další lekci se dozvíte o příkazu CREATE EXTERNAL TABLE AS SELECT (CETAS) a jeho výhodách.