Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server 2019 (15.x)
Important
Кластеры больших данных Microsoft SQL Server 2019 прекращены. Поддержка кластеров больших данных SQL Server 2019 закончилась с 28 февраля 2025 г. Дополнительные сведения см. в записи блога объявлений и параметрах больших данных на платформе Microsoft SQL Server.
В этом руководстве показано, как использовать Transact-SQL для загрузки данных в пул данных кластера больших данных SQL Server 2019. С помощью кластеров больших данных SQL Server данные из различных источников может поступать и распределяться между экземплярами пула данных.
В этом руководстве вы узнаете, как:
- Создайте внешнюю таблицу в пуле данных.
- Вставьте примеры данных веб-трафика в таблицу пула данных.
- Присоединяйте данные в таблице пула данных с локальными таблицами.
Tip
Если вы предпочитаете, вы можете скачать и запустить скрипт для команд, приведенных в этом руководстве. Инструкции см. в примерах пулов данных на сайте GitHub.
Prerequisites
-
Средства работы с большими данными
- kubectl
- Azure Data Studio
- Расширение SQL Server 2019
- Загрузка примеров данных в кластер больших данных
Создание внешней таблицы в пуле данных
Ниже описано, как создать внешнюю таблицу в пуле данных с именем web_clickstream_clicks_data_pool. Затем эту таблицу можно использовать в качестве расположения для приема данных в кластер больших данных.
В Azure Data Studio подключитесь к главному экземпляру SQL Server кластера больших данных. Дополнительные сведения см. в разделе "Подключение к главному экземпляру SQL Server".
Дважды щелкните на подключении в окне «Серверы», чтобы отобразить панель мониторинга сервера для основного экземпляра SQL Server. Выберите Создать запрос.
Выполните следующую команду Transact-SQL, чтобы изменить контекст базы данных Sales в главном экземпляре.
USE Sales GO
Создайте внешний источник данных в пуле данных, если он еще не существует.
IF NOT EXISTS(SELECT * FROM sys.external_data_sources WHERE name = 'SqlDataPool') CREATE EXTERNAL DATA SOURCE SqlDataPool WITH (LOCATION = 'sqldatapool://controller-svc/default');
Создайте внешнюю таблицу с именем web_clickstream_clicks_data_pool в пуле данных.
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 );
Создание внешней таблицы пула данных — это операция блокировки. Управление возвращается после создания указанной таблицы на всех узлах серверного уровня пула данных. Если во время операции создания произошел сбой, вызывающему объекту возвращается сообщение об ошибке.
Load data
Следующие шаги загружают образец данных веб-кликов в пул данных при помощи внешней таблицы, созданной на предыдущих шагах.
Используйте инструкцию
INSERT INTO
, чтобы вставить результаты запроса в пул данных (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;
Проверьте вставленные данные с помощью двух запросов SELECT.
SELECT count(*) FROM [dbo].[web_clickstream_clicks_data_pool] SELECT TOP 10 * FROM [dbo].[web_clickstream_clicks_data_pool]
Запрос данных
Присоединяйте сохраненные результаты из запроса в пуле данных с локальными данными в таблице 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
Используйте следующую команду, чтобы удалить объекты базы данных, созданные в этом руководстве.
DROP EXTERNAL TABLE [dbo].[web_clickstream_clicks_data_pool];
Next steps
Узнайте, как загрузить данные в пул данных, используя задания Spark.