Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения: SQL Server 2019 (15.x)
Important
Кластеры больших данных Microsoft SQL Server 2019 прекращены. Поддержка кластеров больших данных SQL Server 2019 закончилась с 28 февраля 2025 г. Дополнительные сведения см. в записи блога объявлений и параметрах больших данных на платформе Microsoft SQL Server.
В этом руководстве показано, как запрашивать данные HDFS в кластерах больших данных SQL Server 2019.
В этом руководстве вы узнаете, как:
- Создайте внешнюю таблицу, указывающую на данные HDFS в кластере больших данных.
- Соедините эти данные с данными высокой ценности в главном экземпляре.
Tip
Если вы предпочитаете, вы можете скачать и запустить скрипт для команд, приведенных в этом руководстве. Инструкции см. в примерах виртуализации данных на сайте GitHub.
В этом 7-минутном видео показано, как запрашивать данные HDFS в кластере больших данных:
Prerequisites
-
Средства работы с большими данными
- kubectl
- Azure Data Studio
- Расширение SQL Server 2019
- Загрузка примеров данных в кластер больших данных
Создание внешней таблицы в HDFS
Пул хранения содержит данные веб-кликстрима в CSV-файле, который хранится в HDFS. Чтобы определить внешнюю таблицу, которая может получить доступ к данным в этом файле, выполните следующие действия.
В Azure Data Studio подключитесь к главному экземпляру SQL Server кластера больших данных. Дополнительные сведения см. в разделе "Подключение к главному экземпляру SQL Server".
Дважды щелкните на подключении в окне «Серверы», чтобы отобразить панель мониторинга сервера для основного экземпляра SQL Server. Выберите Создать запрос.
Выполните следующую команду Transact-SQL, чтобы изменить контекст базы данных Sales в главном экземпляре.
USE Sales GOОпределите формат CSV-файла для чтения из HDFS. Нажмите клавишу F5, чтобы запустить инструкцию.
CREATE EXTERNAL FILE FORMAT csv_file WITH ( FORMAT_TYPE = DELIMITEDTEXT, FORMAT_OPTIONS( FIELD_TERMINATOR = ',', STRING_DELIMITER = '"', FIRST_ROW = 2, USE_TYPE_DEFAULT = TRUE) );Создайте внешний источник данных в пуле носителей, если он еще не существует.
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Создайте внешнюю таблицу, которая может считывать из
/clickstream_dataпула хранения. SqlStoragePool доступен из главного экземпляра кластера больших данных.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
Запрос данных
Выполните следующий запрос, чтобы присоединить данные HDFS во web_clickstream_hdfs внешней таблице с реляционными данными в локальной 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
Clean up
Используйте следующую команду, чтобы удалить внешнюю таблицу, используемую в этом руководстве.
DROP EXTERNAL TABLE [dbo].[web_clickstreams_hdfs];
GO
Next steps
Перейдите к следующей статье, чтобы узнать, как запрашивать Oracle из кластера больших данных.