Cvičení – vytvoření externí tabulky z databáze ve službě Azure SQL Database
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
polybaseserverAzure SQL Serveru apolybase2025testdatabá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.