Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server 2019 (15.x)
Important
Die Big Data Cluster von Microsoft SQL Server 2019 werden eingestellt. Der Support für SQL Server 2019 Big Data Cluster endete am 28. Februar 2025. Weitere Informationen finden Sie im Ankündigungsblogbeitrag und den Big Data-Optionen auf der Microsoft SQL Server-Plattform.
In diesem Tutorial erfahren Sie, wie Sie HDFS-Daten in einem SQL Server 2019: Big Data-Cluster abfragen.
In diesem Tutorial lernen Sie Folgendes:
- Erstellen einer externen Tabelle, die auf HDFS-Daten in einem Big Data-Cluster zeigt
- Verknüpfen dieser Daten mit hochwertigen Daten in der Masterinstanz
Tip
Wenn Sie möchten, können Sie ein Skript für die Befehle in diesem Tutorial herunterladen und ausführen. Anweisungen finden Sie in den Beispielen zur Datenvirtualisierung auf GitHub.
Dieses 7-minütige Video führt Sie durch die Abfrage von HDFS-Daten in einem Big Data Cluster:
Prerequisites
-
Big-Data-Tools
- kubectl
- Azure Data Studio
- Erweiterung von SQL Server 2019
- Laden von Beispieldaten in einen Big Data-Cluster von SQL Server
Erstellen einer externen Tabelle für HDFS
Der Speicherpool enthält Daten zu Webclickstreams in einer in HDFS gespeicherten CSV-Datei. Führen Sie die folgenden Schritte aus, um eine externe Tabelle zu definieren, die auf die Daten in dieser Datei zugreifen kann.
Stellen Sie in Azure Data Studio eine Verbindung mit der SQL Server-Masterinstanz Ihres Big Data-Clusters her. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit der SQL Server-Masterinstanz.
Doppelklicken Sie im Fenster Server auf die Verbindung, um das Serverdashboard der SQL Server-Masterinstanz anzuzeigen. Wählen Sie Neue Abfrage aus.
Führen Sie den folgenden Transact-SQL-Befehl aus, um den Kontext in der Masterinstanz in die Sales-Datenbank zu ändern.
USE Sales GODefinieren Sie das Format der CSV-Datei, die aus HDFS gelesen werden soll. Drücken Sie zum Ausführen der Anweisung die Taste F5.
CREATE EXTERNAL FILE FORMAT csv_file WITH ( FORMAT_TYPE = DELIMITEDTEXT, FORMAT_OPTIONS( FIELD_TERMINATOR = ',', STRING_DELIMITER = '"', FIRST_ROW = 2, USE_TYPE_DEFAULT = TRUE) );Erstellen Sie eine externe Datenquelle für den Speicherpool, wenn diese nicht bereits vorhanden ist.
IF NOT EXISTS(SELECT * FROM sys.external_data_sources WHERE name = 'SqlStoragePool') BEGIN CREATE EXTERNAL DATA SOURCE SqlStoragePool WITH (LOCATION = 'sqlhdfs://controller-svc/default'); ENDErstellen Sie eine externe Tabelle, die
/clickstream_dataaus dem Speicherpool lesen kann. Auf den SqlStoragePool kann von der Masterinstanz eines Big Data-Clusters aus zugegriffen werden.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
Abfragen der Daten
Führen Sie die folgende Abfrage aus, um die HDFS-Daten in der externen Tabelle web_clickstream_hdfs mit den relationalen Daten in der lokalen Datenbank Sales zu verknüpfen.
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
Clean up
Verwenden Sie den folgenden Befehl, um die in diesem Tutorial erstellte externe Tabelle zu entfernen.
DROP EXTERNAL TABLE [dbo].[web_clickstreams_hdfs];
GO
Next steps
Fahren Sie mit dem nächsten Artikel fort, um zu lernen, wie Sie Oracle aus einem Big Data-Cluster abfragen.