Esercitazione: eseguire query su dati HDFS in un cluster Big Data di SQL Server
Si applica a: SQL Server 2019 (15.x)
Importante
Il componente aggiuntivo per i 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 fino a quel momento il software continuerà a ricevere aggiornamenti cumulativi di SQL Server. Per altre informazioni, vedere il post di blog relativo all'annuncio e Opzioni per i Big Data nella piattaforma Microsoft SQL Server.
Questa esercitazione illustra come eseguire query su dati HDFS in cluster Big Data di SQL Server 2019.
In questa esercitazione apprenderai a:
- Creare una tabella esterna che punta ai dati HDFS in un cluster Big Data.
- Unire questi dati con dati di valore elevato nell'istanza master.
Suggerimento
Se si preferisce, è possibile scaricare ed eseguire uno script per i comandi descritti in questa esercitazione. Per istruzioni, vedere Esempi di virtualizzazione di dati in GitHub.
Questo video di 7 minuti illustra come eseguire query su dati HDFS in un cluster Big Data:
Prerequisiti
- Strumenti per Big Data
- kubectl
- Azure Data Studio
- Estensione di SQL Server 2019
- Caricare dati di esempio nel cluster Big Data
Creare una tabella esterna basata su dati HDFS
Il pool di archiviazione contiene dati clickstream Web in un file CSV archiviato in HDFS. Usare questa procedura per definire una tabella esterna in grado di accedere ai dati presenti nel file.
In Azure Data Studio connettersi all'istanza master di SQL Server del cluster 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 dell'istanza master.
USE Sales GO
Definire il formato del file CSV da leggere dal sistema HDFS. Premere F5 per eseguire l'istruzione.
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 nel 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 in grado di leggere
/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 creare un join tra i dati della tabella esterna web_clickstream_hdfs
e i dati relazionali nel database Sales
locale.
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
Eseguire la 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 una query su dati Oracle da un cluster Big Data.