Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server 2019 (15.x)
Importante
Il componente aggiuntivo Cluster Big Data di Microsoft SQL Server 2019 verrà ritirato. Il supporto per i cluster Big Data di SQL Server 2019 terminerà il 28 febbraio 2025. Tutti gli utenti esistenti di SQL Server 2019 con Software Assurance saranno completamente supportati nella piattaforma e il software continuerà a essere mantenuto tramite gli aggiornamenti cumulativi di SQL Server fino a quel momento. Per ulteriori informazioni, vedere il post di blog sull'annuncio e le opzioni di Big Data sulla piattaforma Microsoft SQL Server.
Questa esercitazione illustra come eseguire query sui dati HDFS in un cluster Big Data di SQL Server 2019.
In questa esercitazione si apprenderà come:
- Creare una tabella esterna che punta ai dati HDFS in un cluster di dati massivi.
- Unire questi dati con dati di valore elevato nell'istanza master.
Suggerimento
Se si preferisce, è possibile scaricare ed eseguire uno script per i comandi di questa esercitazione. Per istruzioni, vedere gli esempi di virtualizzazione dei dati in GitHub.
Questo video di 7 minuti illustra l'esecuzione di query sui dati HDFS in un cluster Big Data:
Prerequisiti
-
Strumenti per Big Data
- kubectl
- Azure Data Studio
- Estensione SQL Server 2019
- Caricare dati di esempio nel cluster Big Data
Creare una tabella esterna su HDFS
Il pool di archiviazione contiene dati clickstream Web in un file CSV archiviato in HDFS. Usare la procedura seguente per definire una tabella esterna in grado di accedere ai dati in tale file.
In Azure Data Studio, collegarsi all'istanza master di SQL Server del cluster di Big Data. Per altre informazioni, vedere Connettersi all'istanza master di SQL Server.
Fare doppio clic sulla connessione nella finestra Server per visualizzare il dashboard del server per l'istanza master di SQL Server. Selezionare Nuova query.
Eseguire il comando Transact-SQL seguente per modificare il contesto nel database Sales nell'istanza master.
USE Sales GO
Definire il formato del file CSV da leggere da HDFS. Premere F5 per eseguire il comando.
CREATE EXTERNAL FILE FORMAT csv_file WITH ( FORMAT_TYPE = DELIMITEDTEXT, FORMAT_OPTIONS( FIELD_TERMINATOR = ',', STRING_DELIMITER = '"', FIRST_ROW = 2, USE_TYPE_DEFAULT = TRUE) );
Creare un'origine dati esterna per il pool di archiviazione, se non esiste già.
IF NOT EXISTS(SELECT * FROM sys.external_data_sources WHERE name = 'SqlStoragePool') BEGIN CREATE EXTERNAL DATA SOURCE SqlStoragePool WITH (LOCATION = 'sqlhdfs://controller-svc/default'); END
Creare una tabella esterna che legga
/clickstream_data
dal pool di archiviazione. SqlStoragePool è accessibile dall'istanza master di un cluster Big Data.CREATE EXTERNAL TABLE [web_clickstreams_hdfs] ("wcs_click_date_sk" BIGINT , "wcs_click_time_sk" BIGINT , "wcs_sales_sk" BIGINT , "wcs_item_sk" BIGINT , "wcs_web_page_sk" BIGINT , "wcs_user_sk" BIGINT) WITH ( DATA_SOURCE = SqlStoragePool, LOCATION = '/clickstream_data', FILE_FORMAT = csv_file ); GO
Eseguire una query sui dati
Eseguire la query seguente per unire i dati HDFS nella web_clickstream_hdfs
tabella esterna con i dati relazionali nel database locale Sales
.
SELECT
wcs_user_sk,
SUM( CASE WHEN i_category = 'Books' THEN 1 ELSE 0 END) AS book_category_clicks,
SUM( CASE WHEN i_category_id = 1 THEN 1 ELSE 0 END) AS [Home & Kitchen],
SUM( CASE WHEN i_category_id = 2 THEN 1 ELSE 0 END) AS [Music],
SUM( CASE WHEN i_category_id = 3 THEN 1 ELSE 0 END) AS [Books],
SUM( CASE WHEN i_category_id = 4 THEN 1 ELSE 0 END) AS [Clothing & Accessories],
SUM( CASE WHEN i_category_id = 5 THEN 1 ELSE 0 END) AS [Electronics],
SUM( CASE WHEN i_category_id = 6 THEN 1 ELSE 0 END) AS [Tools & Home Improvement],
SUM( CASE WHEN i_category_id = 7 THEN 1 ELSE 0 END) AS [Toys & Games],
SUM( CASE WHEN i_category_id = 8 THEN 1 ELSE 0 END) AS [Movies & TV],
SUM( CASE WHEN i_category_id = 9 THEN 1 ELSE 0 END) AS [Sports & Outdoors]
FROM [dbo].[web_clickstreams_hdfs]
INNER JOIN item it ON (wcs_item_sk = i_item_sk
AND wcs_user_sk IS NOT NULL)
GROUP BY wcs_user_sk;
GO
Pulizia
Usare il comando seguente per rimuovere la tabella esterna usata in questa esercitazione.
DROP EXTERNAL TABLE [dbo].[web_clickstreams_hdfs];
GO
Passaggi successivi
Passare all'articolo successivo per informazioni su come eseguire query su Oracle da un cluster Big Data.