Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server ve službě Windows
Azure SQL Managed Instance
Tento článek obsahuje příklady dotazů využívajících funkci PolyBase SQL Serveru (počínaje verzí 2016). Před použitím těchto příkladů je nutné nejprve nainstalovat a nakonfigurovat PolyBase. Další informace najdete v přehledu PolyBase.
Důležité
V SYSTÉMU SQL Server 2022 (16.x) nejsou podporovány externí zdroje PolyBase pro Hadoop. Další informace naleznete v tématu Konektory PolyBase.
Spusťte příkazy Transact-SQL pro externí tabulky nebo použijte nástroje BI k dotazování externích tabulek.
SELECT z externí tabulky
Jednoduchý dotaz, který vrací data z definované externí tabulky.
SELECT TOP 10 * FROM [dbo].[SensorData];
Jednoduchý dotaz, který obsahuje predikát.
SELECT * FROM [dbo].[SensorData]
WHERE Speed > 65;
PŘIPOJENÍ externích tabulek s místními tabulkami
SELECT InsuranceCustomers.FirstName,
InsuranceCustomers.LastName,
SensorData.Speed
FROM InsuranceCustomers INNER JOIN SensorData
ON InsuranceCustomers.CustomerKey = SensorData.CustomerKey
WHERE SensorData.Speed > 65
ORDER BY SensorData.Speed DESC
Import dat
Importuje data z Hadoopu nebo Azure Storage do SQL Serveru pro trvalé úložiště. Příkaz SELECT INTO slouží k importu dat odkazovaných externí tabulkou pro trvalé úložiště na SQL Serveru. Vytvořte relační tabulku za běhu a pak vytvořte index úložiště sloupců nad tabulkou v druhém kroku.
-- PolyBase scenario - import external data into SQL Server
-- Import data for fast drivers into SQL Server to do more in-depth analysis
-- Leverage columnstore technology
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;
Export datů
Exportujte data z SQL Serveru do Hadoopu nebo Azure Storage.
Nejprve povolte funkci exportu nastavením sp_configure hodnoty allow polybase export na hodnotu 1. Dále vytvořte externí tabulku, která odkazuje na cílový adresář. Příkaz CREATE EXTERNAL TABLE vytvoří cílový adresář, pokud ještě neexistuje. Potom pomocí příkazu INSERT INTO exportujte data z místní tabulky SQL Serveru do externího zdroje dat.
Výsledky příkazu SELECT se exportují do zadaného umístění v zadaném formátu souboru. Externí soubory mají název QueryID_date_time_ID.format, kde ID je přírůstkový identifikátor a formát je formát exportovaných dat. Například jeden název souboru může být QID776_20160130_182739_0.orc.
Poznámka:
Při exportu dat do Hadoopu nebo Azure Blob Storage prostřednictvím PolyBase se exportují pouze data, nikoli názvy sloupců (metadata) definované v příkazu CREATE EXTERNAL TABLE.
-- PolyBase scenario - export data from SQL Server to Hadoop
-- 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.FastCustomers2009
SELECT T.* FROM Insured_Customers T1 JOIN CarSensor_Data T2
ON (T1.CustomerKey = T2.CustomerKey)
WHERE T2.YearMeasured = 2009 and T2.Speed > 40;
Nová zobrazení katalogu
Následující nová zobrazení katalogu zobrazují externí prostředky.
SELECT * FROM sys.external_data_sources;
SELECT * FROM sys.external_file_formats;
SELECT * FROM sys.external_tables;
Určení, jestli je tabulka externí tabulkou pomocí is_external
SELECT name, type, is_external FROM sys.tables WHERE name='myTableName'
Další kroky
Další informace o řešení potíží najdete v tématu Řešení potíží s PolyBase.