Události
SQL ve společnosti FabCon Vegas
31. 3. 23 - 2. 4. 23
Největší událost učení SQL, Fabric a Power BI. 31. března – 2. dubna. Pomocí kódu FABINSIDER uložte $400.
Zaregistrovat se ještě dnesTento prohlížeč se už nepodporuje.
Upgradujte na Microsoft Edge, abyste mohli využívat nejnovější funkce, aktualizace zabezpečení a technickou podporu.
platí pro: SQL Server (jenom Windows)
Azure SQL Database
Azure Synapse Analytics
Analytics Platform System (PDW)
Tento článek vysvětluje, jak pomocí PolyBase v instanci SQL Serveru dotazovat externí data ve službě Azure Blob Storage.
Pokud jste nenainstalovali PolyBase, přečtěte si instalace PolyBase . Článek o instalaci vysvětluje požadavky.
V SQL Serveru 2022 (16.x) nakonfigurujte externí zdroje dat tak, aby při připojování ke službě Azure Storage používaly nové konektory. Následující tabulka shrnuje změnu:
Externí zdroj dat | Od | Do |
---|---|---|
Azure Blob Storage | wasb[s] | břišní svaly |
ADLS Gen2 | abfs[s] | adls |
Nejprve nakonfigurujte SQL Server PolyBase tak, aby používal Azure Blob Storage.
Spusťte sp_configure s připojením hadoop nastaveným na poskytovatele služby Azure Blob Storage. Pokud chcete zjistit hodnotu pro poskytovatele, podívejte se na konfiguraci připojení PolyBase. Ve výchozím nastavení je připojení Hadoop nastaveno na hodnotu 7.
-- Values map to various external data sources.
-- Example: value 7 stands for Hortonworks HDP 2.1 to 2.6 on Linux,
-- 2.1 to 2.3 on Windows Server, and Azure Blob Storage
sp_configure @configname = 'hadoop connectivity', @configvalue = 7;
GO
RECONFIGURE
GO
Restartujte SQL Server pomocí services.msc. Restartování SQL Serveru restartuje tyto služby:
Restartujte SQL Server pomocí services.msc. Restartování SQL Serveru restartuje tyto služby:
Pokud chcete dotazovat data ve zdroji dat Hadoop, musíte definovat externí tabulku, která se má použít v Transact-SQL dotazech. Následující kroky popisují, jak nakonfigurovat externí tabulku.
Vytvořte v databázi hlavní klíč. Hlavní klíč je nutný k šifrování tajného klíče přihlašovacích údajů.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong password>';
Vytvořte přihlašovací údaje s databázovým oborem pro Azure Blob Storage; IDENTITY
může být cokoli, protože se nepoužívá.
-- IDENTITY: any string (this is not used for authentication to Azure storage).
-- SECRET: your Azure storage account key.
CREATE DATABASE SCOPED CREDENTIAL AzureStorageCredential
WITH IDENTITY = 'user', Secret = '<azure_storage_account_key>';
Vytvořte externí zdroj dat s použitím CREATE EXTERNAL DATA SOURCE. Všimněte si, že při připojování ke službě Azure Storage přes konektor wasb[s]
musí být ověřování provedeno pomocí klíče účtu úložiště, nikoli se sdíleným přístupovým podpisem (SAS).
-- LOCATION: Azure account storage account name and blob container name.
-- CREDENTIAL: The database scoped credential created above.
CREATE EXTERNAL DATA SOURCE AzureStorage with (
TYPE = HADOOP,
LOCATION ='wasbs://<blob_container_name>@<azure_storage_account_name>.blob.core.windows.net',
CREDENTIAL = AzureStorageCredential
);
Vytvořte formát externího souboru pomocí CREATE EXTERNAL FILE FORMAT.
-- FORMAT TYPE: Type of format in Hadoop (DELIMITEDTEXT, RCFILE, ORC, PARQUET).
CREATE EXTERNAL FILE FORMAT TextFileFormat WITH (
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (FIELD_TERMINATOR ='|',
USE_TYPE_DEFAULT = TRUE))
Vytvořte externí tabulku odkazující na data uložená v úložišti Azure pomocí CREATE EXTERNAL TABLE. V tomto příkladu externí data obsahují data snímačů automobilů; LOCATION
nemůže být /
, ale /Demo/
, protože v tomto příkladu nemusí existovat dříve.
-- LOCATION: path to file or directory that contains the data (relative to HDFS root).
CREATE EXTERNAL TABLE [dbo].[CarSensor_Data] (
[SensorKey] int NOT NULL,
[CustomerKey] int NOT NULL,
[GeographyKey] int NULL,
[Speed] float NOT NULL,
[YearMeasured] int NOT NULL
)
WITH (LOCATION='/Demo/',
DATA_SOURCE = AzureStorage,
FILE_FORMAT = TextFileFormat
);
Vytvoření statistiky pro externí tabulku
CREATE STATISTICS StatsForSensors on CarSensor_Data(CustomerKey, Speed)
Vytvořte v databázi hlavní klíč. Hlavní klíč je nutný k šifrování tajného klíče přihlašovacích údajů.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong password>';
Vytvořte přihlašovací údaje s omezeným dosahem pro databázi Azure Blob Storage pomocí sdíleného přístupového podpisu (SAS); IDENTITY
může být cokoli, protože se nepoužívá.
CREATE DATABASE SCOPED CREDENTIAL AzureStorageCredential
WITH
IDENTITY = 'SHARED ACCESS SIGNATURE',
-- Remove ? from the beginning of the SAS token
SECRET = '<azure_shared_access_signature>' ;
Vytvořte externí zdroj dat pomocí VYTVOŘIT EXTERNÍ ZDROJ DAT. Všimněte si, že při připojování ke službě Azure Storage přes konektor WASB[s] se používá ověřování pomocí sdíleného přístupového podpisu (SAS).
-- LOCATION: Azure account storage account name and blob container name.
-- CREDENTIAL: The database scoped credential created above.
CREATE EXTERNAL DATA SOURCE AzureStorage with (
LOCATION ='wasbs://<blob_container_name>@<azure_storage_account_name>.blob.core.windows.net',
CREDENTIAL = AzureStorageCredential
);
Vytvořte formát externího souboru pomocí CREATE EXTERNAL FILE FORMAT.
-- FORMAT TYPE: Type of format in Hadoop (DELIMITEDTEXT, RCFILE, ORC, PARQUET).
CREATE EXTERNAL FILE FORMAT TextFileFormat WITH (
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (FIELD_TERMINATOR ='|',
USE_TYPE_DEFAULT = TRUE))
Vytvořte externí tabulku odkazující na data uložená v úložišti Azure pomocí CREATE EXTERNAL TABLE. V tomto příkladu externí data obsahují data snímačů automobilů; LOCATION
nemůže být /
, ale /Demo/
, protože v tomto příkladu nemusí existovat dříve.
-- LOCATION: path to file or directory that contains the data (relative to HDFS root).
CREATE EXTERNAL TABLE [dbo].[CarSensor_Data] (
[SensorKey] int NOT NULL,
[CustomerKey] int NOT NULL,
[GeographyKey] int NULL,
[Speed] float NOT NULL,
[YearMeasured] int NOT NULL
)
WITH (LOCATION='/Demo/',
DATA_SOURCE = AzureStorage,
FILE_FORMAT = TextFileFormat
);
Vytvoření statistiky pro externí tabulku
CREATE STATISTICS StatsForSensors on CarSensor_Data(CustomerKey, Speed)
Existují tři funkce, pro které je PolyBase vhodná:
Následující dotazy poskytují příklad s fiktivními daty snímačů aut.
Následující ad hoc dotaz spojí relační s daty Hadoop. Vybere zákazníky, kteří jezdí rychleji než 35 mph, a připojí se ke strukturovaným zákaznickým datům uloženým na SQL Serveru s daty snímačů aut uloženými v Hadoopu.
SELECT DISTINCT Insured_Customers.FirstName,Insured_Customers.LastName,
Insured_Customers. YearlyIncome, CarSensor_Data.Speed
FROM Insured_Customers, CarSensor_Data
WHERE Insured_Customers.CustomerKey = CarSensor_Data.CustomerKey and CarSensor_Data.Speed > 35
ORDER BY CarSensor_Data.Speed DESC
OPTION (FORCE EXTERNALPUSHDOWN); -- or OPTION (DISABLE EXTERNALPUSHDOWN)
Následující dotaz naimportuje externí data do SQL Serveru. Tento příklad importuje data pro rychlé řidiče do SQL Serveru, aby bylo možné provést podrobnější analýzu. Ke zlepšení výkonu využívá technologii sloupcového uložení.
SELECT DISTINCT
Insured_Customers.FirstName, Insured_Customers.LastName,
Insured_Customers.YearlyIncome, Insured_Customers.MaritalStatus
INTO Fast_Customers from Insured_Customers INNER JOIN
(
SELECT * FROM CarSensor_Data where Speed > 35
) AS SensorD
ON Insured_Customers.CustomerKey = SensorD.CustomerKey
ORDER BY YearlyIncome
CREATE CLUSTERED COLUMNSTORE INDEX CCI_FastCustomers ON Fast_Customers;
Následující dotaz exportuje data z SQL Serveru do služby Azure Blob Storage. Nejprve zapněte export PolyBase. Potom před exportem dat do cíle vytvořte externí tabulku pro cíl.
-- Enable INSERT into external table
sp_configure 'allow polybase export', 1;
reconfigure
-- Create an external table.
CREATE EXTERNAL TABLE [dbo].[FastCustomers2009] (
[FirstName] char(25) NOT NULL,
[LastName] char(25) NOT NULL,
[YearlyIncome] float NULL,
[MaritalStatus] char(1) NOT NULL
)
WITH (
LOCATION='/old_data/2009/customerdata',
DATA_SOURCE = HadoopHDP2,
FILE_FORMAT = TextFileFormat,
REJECT_TYPE = VALUE,
REJECT_VALUE = 0
);
-- Export data: Move old data to Hadoop while keeping it query-able via an external table.
INSERT INTO dbo.FastCustomer2009
SELECT T.* FROM Insured_Customers T1 JOIN CarSensor_Data T2
ON (T1.CustomerKey = T2.CustomerKey)
WHERE T2.YearMeasured = 2009 and T2.Speed > 40;
Export PolyBase pomocí této metody může vytvořit více souborů.
V nástroji SSMS se externí tabulky zobrazují v samostatné složce externí tabulky. Externí zdroje dat a formáty externích souborů jsou v podsložkách v části Externí zdroje.
Další kurzy týkající se vytváření externích zdrojů dat a externích tabulek pro různé zdroje dat najdete v tématu PolyBase Transact-SQL referenční.
Další způsoby použití a monitorování PolyBase najdete v následujících článcích:
Události
SQL ve společnosti FabCon Vegas
31. 3. 23 - 2. 4. 23
Největší událost učení SQL, Fabric a Power BI. 31. března – 2. dubna. Pomocí kódu FABINSIDER uložte $400.
Zaregistrovat se ještě dnesŠkolení
Modul
Úvod do virtualizace dat SQL Serveru 2022 - Training
Seznamte se s virtualizací dat, používáním PolyBase pro přístup k externím datům a dotazování na externí data a vylepšenými funkcemi PolyBase v SQL Serveru 2022.
Certifikace
Microsoft Certified: Azure Data Engineer Associate - Certifications
Demonstrate understanding of common data engineering tasks to implement and manage data engineering workloads on Microsoft Azure, using a number of Azure services.