Поделиться через


Отчеты по масштабируемым облачным базам данных (предварительная версия)

Применимо к: База данных SQL Azure

С помощью эластичных запросовможно создавать отчеты из нескольких баз данных из одной точки подключения. Базы данных должны быть горизонтально секционированными (сегментированными).

Если у вас есть существующая база данных, см. статью "Миграция существующих баз данных для горизонтального масштабирования".

Сведения о объектах SQL, необходимых для запроса, см. в отчетах по масштабируемым облачным базам данных (предварительная версия).

Необходимые компоненты

Скачайте и запустите программу "Начало работы с эластичными инструментами базы данных".

Создание диспетчера сопоставления сегментов с помощью примера приложения

Здесь вы создадите диспетчер карт шардов вместе с несколькими шардами, за которым следует вставка данных в эти шарды. Если у вас уже настроены шарды с расшардированными данными, можно пропустить следующие шаги и перейти к следующему разделу.

  1. Выполните сборку и запустите пример приложения " Приступая к работе со средствами эластичной базы данных ", выполнив действия, описанные в разделе Загрузка и запуск примера приложения. Завершив все действия, вы увидите следующую командную строку:

    Снимок экрана: командная строка начального набора средств эластичной базы данных.

  2. В командном окне введите 1 и нажмите клавишу ВВОД. Это позволит создать диспетчер сопоставления сегментов и добавить два сегмента на сервер. Затем введите 3 и нажмите клавишу ВВОД; повторите действие четыре раза. Это позволит вставить строки демонстрационных данных в свои сегменты.

  3. На портале Azure на сервере должны появиться три новые базы данных.

    Снимок экрана: подтверждение создания трех баз данных в Visual Studio.

    На этом этапе межбазовые запросы поддерживаются с помощью клиентских библиотек эластичной базы данных. Например, используйте параметр 4 в командном окне. Результаты запроса с несколькими сегментами всегда являются результатом UNION ALL всех сегментов.

    В следующем разделе мы создадим пример конечной точки базы данных, которая поддерживает расширенные запросы данных по сегментам.

Создание запросов к эластичной базе данных

  1. Откройте портал Azure и войдите.

  2. Создайте новую базу данных Azure SQL на том же сервере, где находятся ваши сегменты. Присвойте базе данных ElasticDBQueryимя.

    Вы можете использовать существующую базу данных. Но в данном случае база данных не должна быть одним из сегментов, в которых вы хотите выполнять свои запросы. Эта база данных используется для создания объектов метаданных для запроса эластичной базы данных.

Создание объектов базы данных

Главный ключ и учетные данные для конкретной базы данных

Они используются для подключения к диспетчеру сопоставления сегментов и сегментам:

  1. Откройте SQL Server Management Studio или SQL Server Data Tools в Visual Studio.

  2. Подключитесь к 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.

  1. Запустите Microsoft Excel.
  2. Перейдите на ленту Данные .
  3. Выберите из других источников и выберите из SQL Server.
  4. В мастере подключения к данным введите имя сервера и учетные данные для входа. Затем выберите Далее.
  5. В диалоговом окне Выберите базу данных, содержащую нужные данные, выберите ElasticDBQuery базу данных.
  6. Выберите таблицу Customers в представлении списка и нажмите кнопку "Далее". Затем нажмите кнопку "Готово".
  7. В форме Импорт данных в разделе "Выбор способа просмотра этих данных в книге" выберите "Таблица". Нажмите ОК.

Все строки из Customers таблицы, хранящиеся в разных сегментах, заполняют лист Excel.

Теперь вы можете использовать мощные функции визуализации данных Excel. Строку подключения можно использовать с именем сервера, именем базы данных и учетными данными для подключения средств бизнес-аналитики и интеграции данных к базе данных эластичных запросов. Убедитесь, что в качестве источника данных для вашего инструмента поддерживается SQL Server. На запрос к эластичной базе данных и внешние таблицы можно ссылаться таким же образом, как и на любую другую базу данных SQL Server и таблицы SQL Server, которые вы хотите подключить с помощью своего инструмента.

Себестоимость

Дополнительная плата за использование функции "Запрос эластичной базы данных" не взимается.

Сведения о ценах см. в разделе " Сведения о ценах на базу данных SQL".