Краткий обзор SSAS для администраторов баз данных
Итак, вы администратор базы данных SQL Server, и вы просто унаследовали несколько кубов, чтобы управлять ими. Быстрый ускоренный курс по администрированию SSAS, кажется, в порядке.
С административной точки зрения, SSAS является довольно простым, но ресурсоемким приложением. Это намного проще, чем платформа СУБД, хотя отличается в нескольких отношениях. Кроме того, есть несколько административных задач, таких как оптимизация на основе использования, специфичных для SSAS, которые вам, возможно, придется решить самостоятельно.
Сделайте резервную копию вашего файла конфигурации
Все данные конфигурации находятся в файле с именем msdmsrv.ini
. Это файл XML. Если вы работаете с конфигурацией через SSMS (подключитесь к серверу, щелкните правой кнопкой мыши по серверу, выберите свойства), вы можете установить параметры, которые будут нарушать работу сервера при запуске. Возьмите копию, msmdsrv.ini
прежде чем играть с чем-либо.
Важные параметры
Память: SSAS - это библейская память. Он любит 64-битные сборки, если это возможно, и много памяти. Параметры «Memory \ LowMemoryLimit» и «Memory \ HighMemoryLimit» управляют политиками использования памяти. LowMemoryLimit не является минимальным выделением памяти. Это порог, когда SSAS считает, что системе не хватает памяти, и начинает сбрасывать содержимое из своих кешей. HighMemoryLimit - абсолютный максимум, который он будет использовать.
Обратите внимание, что SSAS хранит свои данные в файлах (множество файлов - у него нет никакого механизма, эквивалентного файловым группам), поэтому он широко использует кэширование файловой системы O / S для этих файлов. Обратите внимание, что по умолчанию для этих пределов около 65% и 80% памяти машины соответственно, поэтому, если вы хотите, чтобы сервер OLAP сосуществовал с экземпляром SQL Server, вам необходимо отключить его, чтобы он не боролся за память с сервер базы данных.
Каталоги: это пять параметров, представляющих интерес: DataDir, AllowedBrowsingFolders, BackupDir, LogDir и TempDir. DataDir и AllowedBrowsingFolders являются наиболее важными.
AllowedBrowsingFolders влияет на список папок, в которые сервер OLAP будет помещать свои файлы данных. Все, что имеет пользовательский интерфейс (например, мастер развертывания), ограничит ваши параметры списком в AllowedBrowsingFolders. Значением является список каталогов с разделителями ('|').
DataDir - это путь по умолчанию для файлов. Если вы намереваетесь разделить куб на несколько томов, вам необходимо соответствующим образом настроить AllowedBrowsingFolders.
LogDir - это место, где сервер размещает различные файлы журналов, включая регистратор полетов и журналы запросов. Журнал регистрации полетов используется для устранения неполадок, а журнал запросов OLAP - для оптимизации использования (подробнее об этом позже).
TempDir - это место для временных файлов, которые SSAS создает во время обработки. Если вы обрабатываете большие объемы данных и у вас возникают проблемы с производительностью, вы можете извлечь выгоду, перенеся это на другой том из данных.
BackupDir - это то, что написано на банке.
Разное:
Несколько разных параметров также могут представлять интерес. Несколько наборов, которые вам, возможно, придется настроить:
DefaultMaxDrillthroughRows: это ограничивает размер наборов строк детализации. Возможно, вам придется возиться с этим, чтобы позволить больше.
Потоки / тайм-ауты: вам может потребоваться настроить их. Мне никогда не приходилось беспокоиться.
Это основы. Возможно, вам придется настроить других по определенным причинам, но вы можете сделать свою домашнюю работу на этом.
Справочное руководство по свойствам сервера SSAS можно найти здесь.
операции
Развертывание. Вы можете скомпилировать проект в BIDS и получить набор файлов, которые можно развернуть с помощью мастера развертывания. Возможно, вам придется настроить пути к файлам для разделов и несколько других вещей.
Запрограммированные и пакетные задачи администратора: Команды выдаются SSAS через API веб-службы под названием XML / A. Microsoft предоставляет интерактивный инструмент для выдачи коннанд MDX и XML / A. Если вам нужно встроить MDX в команду XML / A, следите за необходимостью использовать экранирование XML, например &
. Это не проблема с редактором MDX и инструментом запросов в SSMS.
Автономные задания можно выполнять с помощью различных задач обработки кубов служб SSIS, с помощью служебной программы командной строки ascmd.exe
или .Net API с именем AMO. Вы также можете получить различные инструменты PowerShell и тому подобное. ascmd.exe
берет файл XML / A и отправляет его на сервер. Если вам нужно прогнать файл программно, вам, возможно, лучше работать с небольшими инструментами .Net, чем пытаться манипулировать файлами XML из сценария .cmd.
Руководство по эксплуатации подробно расскажет об этом.
Безопасность
Безопасность на SSAS довольно проста. Он имеет глобальную роль «Сервер», которая обладает правами администратора во всей системе. К сожалению, вам нужен «Сервер» для создания баз данных, поэтому вполне вероятно, что вам нужно будет предоставить его разработчикам на любых имеющихся у вас серверах разработки OLAP.
Другая защита может быть применена только к отдельным схемам куба. Вы можете предоставить разрешения на чтение, обработку, детализацию, обратную запись и т. Д. Отдельным элементам ролям в схеме. Роли в схемах OLAP могут быть определены в BIDS и развернуты вместе с кубом. Группы AD или пользователи могут быть назначены на эти роли через SSMS.
Пример того, как программно управлять членством в ролях, можно увидеть здесь.
Оптимизация на основе использования
Как администратор базы данных, вы можете принять участие в этом, но сначала немного о физической памяти. SSAS работает путем расчета и сохранения предварительно созданных агрегатов вместе с базовыми данными. Если запрос может быть удовлетворен путем нажатия на агрегат, сервер OLAP будет использовать его в предпочтении по отношению к базовым данным, поскольку агрегат будет включать гораздо меньше операций ввода-вывода и, следовательно, будет быстрее получать данные.
Однако вы должны решить, какие агрегаты рассчитать (т. Е. Какие комбинации атрибутов измерения создать для свертки). У BIDS есть инструмент, который поможет сделать предположение и сгенерирует его для вас. Некоторые инструменты, такие как BIDS helper , также позволяют вам вручную редактировать агрегаты.
Оптимизация на основе использования работает, принимая журнал фактических запросов, отправленных на сервер, и затем используя этот журнал для разработки набора агрегатов, который будет оптимальным для этих запросов. Как администратор базы данных, вы можете настроить ведение журнала запросов OLAP для сбора этих данных, а затем запустить оптимизацию для куба. Информацию о настройке журнала запросов можно найти здесь.
Инструмент для этого называется «Мастер оптимизации на основе использования». Это находится в SSMS, и его можно найти, открыв раздел в проводнике и выбрав «Оптимизация на основе использования» в контекстном меню.
Руководство по производительности более подробно описано в настройке.
MDX
MDX немного похож на SQL, но работает совсем по-другому. Трактат «MDX для программистов SQL» - это отдельная тема. Я предлагаю прочитать некоторые учебники по нему и / или получить книгу по нему. Плюс, дружелюбные люди здесь на dba.se могут помочь с вопросами, если у вас есть какие-либо.
MDX не имеет никакой концепции фильтрации строк. Язык имеет множество операций набора для определения того, что отображать по различным осям запроса 1 , а также «SELECT». Вы можете использовать with
операторы, которые немного похожи на CTE, для определения показателей и наборов.
Некоторые вводные ресурсы по программированию MDX можно найти здесь и здесь (этот довольно старый и очень длинный). Есть также несколько хороших книг на эту тему; у этого SO вопроса есть немного разветвления к ресурсам SSAS.
1 Хотя в нем есть непустые операторы, которые ограничивают результаты комбинациями, которые фактически имеют данные. Большинство запросов MDX состоят из определения того, какие срезы следует отображать на осях, и непустые операторы будут необходимы, чтобы избежать запросов, возвращающих комбинаторные значения уровня пустых ячеек.