Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Si applica a:SQL Server 2019 (15.x)
Important
I cluster Big Data di Microsoft SQL Server 2019 sono stati ritirati. Il supporto per i cluster Big Data di SQL Server 2019 è terminato a partire dal 28 febbraio 2025. Per altre informazioni, vedere il post di blog sull'annuncio e le opzioni per Big Data nella piattaforma Microsoft SQL Server.
Questa esercitazione illustra come usare Transact-SQL per caricare i dati nel pool di dati di un cluster Big Data di SQL Server 2019. Con i cluster Big Data di SQL Server, i dati di un'ampia gamma di origini possono essere inseriti e distribuiti tra istanze del pool di dati.
In questa esercitazione si apprenderà come:
- Creare una tabella esterna nel pool di dati.
- Inserire dei dati clickstream web di esempio nella tabella del pool di dati.
- Unire i dati nella tabella del pool di dati con le tabelle locali.
Tip
Se si preferisce, è possibile scaricare ed eseguire uno script per i comandi di questa esercitazione. Per istruzioni, vedere gli esempi di pool di dati in GitHub.
Prerequisites
-
Strumenti per Big Data
- kubectl
- Azure Data Studio
- Estensione SQL Server 2019
- Caricare dati di esempio nel cluster Big Data
Creare una tabella esterna nel pool di dati
La procedura seguente consente di creare una tabella esterna nel pool di dati denominato web_clickstream_clicks_data_pool. Questa tabella può quindi essere usata come posizione per l'inserimento di dati nel cluster Big Data.
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 GOCreare un'origine dati esterna nel pool di dati, se non esiste già.
IF NOT EXISTS(SELECT * FROM sys.external_data_sources WHERE name = 'SqlDataPool') CREATE EXTERNAL DATA SOURCE SqlDataPool WITH (LOCATION = 'sqldatapool://controller-svc/default');Creare una tabella esterna denominata web_clickstream_clicks_data_pool nel pool di dati.
IF NOT EXISTS(SELECT * FROM sys.external_tables WHERE name = 'web_clickstream_clicks_data_pool') CREATE EXTERNAL TABLE [web_clickstream_clicks_data_pool] ("wcs_user_sk" BIGINT , "i_category_id" BIGINT , "clicks" BIGINT) WITH ( DATA_SOURCE = SqlDataPool, DISTRIBUTION = ROUND_ROBIN );
La creazione di una tabella esterna del pool di dati è un'operazione di blocco. Il controllo restituisce quando la tabella specificata è stata creata in tutti i nodi del pool di dati back-end. Se si è verificato un errore durante l'operazione di creazione, viene restituito un messaggio di errore al chiamante.
Load data
I passaggi seguenti inseriscono dati clickstream Web di esempio nel pool di dati usando la tabella esterna creata nei passaggi precedenti.
Usare un'istruzione
INSERT INTOper inserire i risultati della query nel pool di dati (la tabella esterna web_clickstream_clicks_data_pool ).INSERT INTO web_clickstream_clicks_data_pool SELECT wcs_user_sk, i_category_id, COUNT_BIG(*) as clicks FROM sales.dbo.web_clickstreams_hdfs INNER JOIN sales.dbo.item it ON (wcs_item_sk = i_item_sk AND wcs_user_sk IS NOT NULL) GROUP BY wcs_user_sk, i_category_id HAVING COUNT_BIG(*) > 100;Esaminare i dati inseriti con due query SELECT.
SELECT count(*) FROM [dbo].[web_clickstream_clicks_data_pool] SELECT TOP 10 * FROM [dbo].[web_clickstream_clicks_data_pool]
Eseguire una query sui dati
Unire i risultati archiviati dalla query nel pool di dati con i dati locali nella tabella Sales .
SELECT TOP (100)
w.wcs_user_sk,
SUM( CASE WHEN i.i_category = 'Books' THEN 1 ELSE 0 END) AS book_category_clicks,
SUM( CASE WHEN w.i_category_id = 1 THEN 1 ELSE 0 END) AS [Home & Kitchen],
SUM( CASE WHEN w.i_category_id = 2 THEN 1 ELSE 0 END) AS [Music],
SUM( CASE WHEN w.i_category_id = 3 THEN 1 ELSE 0 END) AS [Books],
SUM( CASE WHEN w.i_category_id = 4 THEN 1 ELSE 0 END) AS [Clothing & Accessories],
SUM( CASE WHEN w.i_category_id = 5 THEN 1 ELSE 0 END) AS [Electronics],
SUM( CASE WHEN w.i_category_id = 6 THEN 1 ELSE 0 END) AS [Tools & Home Improvement],
SUM( CASE WHEN w.i_category_id = 7 THEN 1 ELSE 0 END) AS [Toys & Games],
SUM( CASE WHEN w.i_category_id = 8 THEN 1 ELSE 0 END) AS [Movies & TV],
SUM( CASE WHEN w.i_category_id = 9 THEN 1 ELSE 0 END) AS [Sports & Outdoors]
FROM [dbo].[web_clickstream_clicks_data_pool] as w
INNER JOIN (SELECT DISTINCT i_category_id, i_category FROM item) as i
ON i.i_category_id = w.i_category_id
GROUP BY w.wcs_user_sk;
Clean up
Usare il comando seguente per rimuovere gli oggetti di database creati in questa esercitazione.
DROP EXTERNAL TABLE [dbo].[web_clickstream_clicks_data_pool];
Next steps
Informazioni su come inserire dati nel pool di dati con processi Spark: