Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server 2019 (15.x)
Это важно
Надстройка "Кластеры больших данных Microsoft SQL Server 2019" будет прекращена. Поддержка кластеров больших данных SQL Server 2019 завершится 28 февраля 2025 г. Все существующие пользователи SQL Server 2019 с Software Assurance будут полностью поддерживаться на этой платформе, а программное обеспечение будет продолжать поддерживаться с помощью накопительных обновлений для SQL Server до этого времени. Для получения дополнительной информации см. запись блога об объявлении и параметры работы с большими данными на платформе Microsoft SQL Server.
В этом руководстве показано, как использовать Transact-SQL для загрузки данных в пул данных кластера больших данных SQL Server 2019. С помощью кластеров больших данных SQL Server данные из различных источников может поступать и распределяться между экземплярами пула данных.
В этом руководстве вы узнаете, как:
- Создайте внешнюю таблицу в пуле данных.
- Вставьте примеры данных веб-трафика в таблицу пула данных.
- Присоединяйте данные в таблице пула данных с локальными таблицами.
Подсказка
Если вы предпочитаете, вы можете скачать и запустить скрипт для команд, приведенных в этом руководстве. Инструкции см. в примерах пулов данных на сайте GitHub.
Предпосылки
-
Средства работы с большими данными
- 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 );
Создание внешней таблицы пула данных — это операция блокировки. Управление возвращается после создания указанной таблицы на всех узлах серверного уровня пула данных. Если во время операции создания произошел сбой, вызывающему объекту возвращается сообщение об ошибке.
Загрузка данных
Следующие шаги загружают образец данных веб-кликов в пул данных при помощи внешней таблицы, созданной на предыдущих шагах.
Используйте инструкцию
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;
Очистка
Используйте следующую команду, чтобы удалить объекты базы данных, созданные в этом руководстве.
DROP EXTERNAL TABLE [dbo].[web_clickstream_clicks_data_pool];
Дальнейшие шаги
Узнайте, как загрузить данные в пул данных, используя задания Spark.