Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: База данных SQL Azure
С помощью эластичных запросовможно создавать отчеты из нескольких баз данных из одной точки подключения. Базы данных должны быть горизонтально секционированными (сегментированными).
Если у вас есть существующая база данных, см. статью "Миграция существующих баз данных для горизонтального масштабирования".
Сведения о объектах SQL, необходимых для запроса, см. в отчетах по масштабируемым облачным базам данных (предварительная версия).
Необходимые компоненты
Скачайте и запустите программу "Начало работы с эластичными инструментами базы данных".
Создание диспетчера сопоставления сегментов с помощью примера приложения
Здесь вы создадите диспетчер карт шардов вместе с несколькими шардами, за которым следует вставка данных в эти шарды. Если у вас уже настроены шарды с расшардированными данными, можно пропустить следующие шаги и перейти к следующему разделу.
Выполните сборку и запустите пример приложения " Приступая к работе со средствами эластичной базы данных ", выполнив действия, описанные в разделе Загрузка и запуск примера приложения. Завершив все действия, вы увидите следующую командную строку:
В командном окне введите
1
и нажмите клавишу ВВОД. Это позволит создать диспетчер сопоставления сегментов и добавить два сегмента на сервер. Затем введите3
и нажмите клавишу ВВОД; повторите действие четыре раза. Это позволит вставить строки демонстрационных данных в свои сегменты.На портале Azure на сервере должны появиться три новые базы данных.
На этом этапе межбазовые запросы поддерживаются с помощью клиентских библиотек эластичной базы данных. Например, используйте параметр
4
в командном окне. Результаты запроса с несколькими сегментами всегда являются результатомUNION ALL
всех сегментов.В следующем разделе мы создадим пример конечной точки базы данных, которая поддерживает расширенные запросы данных по сегментам.
Создание запросов к эластичной базе данных
Откройте портал Azure и войдите.
Создайте новую базу данных Azure SQL на том же сервере, где находятся ваши сегменты. Присвойте базе данных
ElasticDBQuery
имя.Вы можете использовать существующую базу данных. Но в данном случае база данных не должна быть одним из сегментов, в которых вы хотите выполнять свои запросы. Эта база данных используется для создания объектов метаданных для запроса эластичной базы данных.
Создание объектов базы данных
Главный ключ и учетные данные для конкретной базы данных
Они используются для подключения к диспетчеру сопоставления сегментов и сегментам:
Откройте SQL Server Management Studio или SQL Server Data Tools в Visual Studio.
Подключитесь к
ElasticDBQuery
базе данных и выполните следующие команды T-SQL:CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master_key_password>'; CREATE DATABASE SCOPED CREDENTIAL ElasticDBQueryCred WITH IDENTITY = '<username>', SECRET = '<password>';
Как имя пользователя, так и пароль, должны быть сведения о входе, созданные на предыдущих шагах.
Внешние источники данных
Чтобы создать внешний источник данных, выполните следующую команду в ElasticDBQuery
базе данных:
CREATE EXTERNAL DATA SOURCE MyElasticDBQueryDataSrc WITH
(TYPE = SHARD_MAP_MANAGER,
LOCATION = '<server_name>.database.windows.net',
DATABASE_NAME = 'ElasticScaleStarterKit_ShardMapManagerDb',
CREDENTIAL = ElasticDBQueryCred,
SHARD_MAP_NAME = 'CustomerIDShardMap'
) ;
CustomerIDShardMap
— это имя карты сегментов, если вы создали карту сегментов и диспетчер карт сегментов с помощью примера средств эластичной базы данных. Тем не менее, если вы использовали свои пользовательские настройки для этого примера, то это должно быть имя карты сегментов, которое было выбрано в приложении.
Внешние таблицы
Создайте внешнюю таблицу, которая соответствует таблице Customers на шардах, выполнив следующую команду в ElasticDBQuery
базе данных.
CREATE EXTERNAL TABLE [dbo].[Customers]
( [CustomerId] [int] NOT NULL,
[Name] [nvarchar](256) NOT NULL,
[RegionId] [int] NOT NULL)
WITH
( DATA_SOURCE = MyElasticDBQueryDataSrc,
DISTRIBUTION = SHARDED([CustomerId])
) ;
Выполнение запроса T-SQL к примеру эластичной базы данных
Определив внешний источник данных и внешние таблицы, используйте T-SQL для запроса внешних таблиц.
Выполните этот запрос в базе данных ElasticDBQuery
:
select count(CustomerId) from [dbo].[Customers];
Вы заметите, что запрос агрегирует результаты всех сегментов и дает следующие выходные данные:
Импорт в Excel результатов запроса к эластичной базе данных
Результаты запроса можно импортировать в файл Excel.
- Запустите Microsoft Excel.
- Перейдите на ленту Данные .
- Выберите из других источников и выберите из SQL Server.
- В мастере подключения к данным введите имя сервера и учетные данные для входа. Затем выберите Далее.
- В диалоговом окне Выберите базу данных, содержащую нужные данные, выберите
ElasticDBQuery
базу данных. - Выберите таблицу
Customers
в представлении списка и нажмите кнопку "Далее". Затем нажмите кнопку "Готово". - В форме Импорт данных в разделе "Выбор способа просмотра этих данных в книге" выберите "Таблица". Нажмите ОК.
Все строки из Customers
таблицы, хранящиеся в разных сегментах, заполняют лист Excel.
Теперь вы можете использовать мощные функции визуализации данных Excel. Строку подключения можно использовать с именем сервера, именем базы данных и учетными данными для подключения средств бизнес-аналитики и интеграции данных к базе данных эластичных запросов. Убедитесь, что в качестве источника данных для вашего инструмента поддерживается SQL Server. На запрос к эластичной базе данных и внешние таблицы можно ссылаться таким же образом, как и на любую другую базу данных SQL Server и таблицы SQL Server, которые вы хотите подключить с помощью своего инструмента.
Себестоимость
Дополнительная плата за использование функции "Запрос эластичной базы данных" не взимается.
Сведения о ценах см. в разделе " Сведения о ценах на базу данных SQL".
Связанный контент
- обзор эластичных запросов базы данных SQL Azure (предварительная версия)
- Начало работы с запросами между базами данных (вертикальное секционирование) (предварительная версия)
- Запрос среди облачных баз данных с различными схемами (предварительная версия)
- Отчеты по распределенным облачным базам данных (предварительная версия)
- sp_execute_remote