• Настройка папок отображения в табличной модели SSAS 2016

    • Перевод
    • Tutorial

    Задача


    В SSAS 2016 создана крупная табличная модель. В большинстве таблиц есть множество различных мер и полей измерений, в результате пользователям становится сложно ориентироваться в этом изобилии. Есть ли способ объединить объекты в группы?

    Решение


    Многомерная модель SSAS давно имеет соответствующую возможность и называется она папки отображения (display folders). Можно настроить отображение атрибутов измерения в различных папках, что делает работу с ними более удобной для пользователя. Пример тестового куба AdventureWorks.



    Табличная модель SSAS 2012/2014 официально не поддерживает такую функцию. Однако вы можете добавить ее путем непосредственной правки XMLA модели или с помощью BIDSHelper.
    К счастью, SSAS 2016 предоставляет нам данный функционал из коробки и позволяет легко работать с ним с помощью Visual Studio (SQL Server Data Tools). В данной статье мы покажем, как это делается.
    Читать дальше →
  • SQL Server: Производительность при вставке данных в таблицу с кластеризованным индексом и без

    Привет, Хабр! Представляю вашему вниманию перевод статьи SQL Server Insert Performance for Clustered Indexes vs. Heap Tables

    Вопрос


    Я прочел множество различной документации по современным методам работы с SQL Server, утверждающей, что каждая таблица должна иметь кластеризованный индекс и не быть кучей с некаластеризованными индексами. Большинство источников отмечает административную выгоду от использования кластеризованных индексов. Но есть ли в этом какое-то влияние на производительность и другие положительные или отрицательные стороны?
    Читать дальше →
  • Как IIS поддерживает нашу BI-аналитику, и в чем особенности настройки под Highload


      В аналитической части бэкенда Яндекс.Денег активно используется Microsoft IIS, и уже накопился некоторый багаж знаний о его применении в высоконагруженной среде, которым хочется поделиться.


      Наша аналитика работает на стеке Microsoft (SQL Server и продукты SSIS, SSAS, SSRS) – одном из лучших на рынке BI-решений. Раз в основе нашего BI лежат сервисы одного вендора, то логично и для размещения веб-приложений использовать решение Microsoft – IIS.


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

      Читать дальше →
    • Liquibase: пример автоматизированного наката изменений на реляционную БД

        Вместо предисловия


        Статья будет интересна тем, кто хоть раз задумывался о вопросе наката изменений (патча) на реляционную БД. Статья не будет интересна тем, кто уже освоил и использует Liquibase. Главной целью данной статьи является указание ссылки на репозиторий с примером использования. В качестве примера я выбрал накат sample-схемы HR на БД Oracle (список всех поддерживаемых БД) — любой желающий может скачать себе репозиторий и поиграться в домашних условиях. Желание продемонстрировать пример вызвано обсуждением этого вопроса на ресурсе sql.ru.

        Читать дальше →
      • Подсчет количества ссылок на запись в таблице через Foreign Keys

          Потребовалось для собственных целей решить следующую задачку — для одной таблички (File) для каждой записи автоматом рассчитывать количество внешних записей, связанных через foreign key. Задача решалась для конкретной структуры таблички File, но при желании решение можно переделать на более универсальное.

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

          Основной причиной было то, что количество внешних связей до таблицы File может меняться в процессе разработки и постоянно переделывать запрос было бы просто неразумным. Планировалась некая модульность в самой системе, поэтому точно неизвестны все конечные таблицы.
          Читать дальше →
        • Установка MS SQL ODBC Driver под Linux и сборка плагина для Qt 5.9

          • Tutorial
          image

          Несколько дней назад встал вопрос о написании консольного приложения, которое будет работать в Linux CentOS 7 и взаимодействовать с MS SQL Server 2012. Мне очень нравится Qt и я решил, что воспользуюсь им для решения этой задачи. И если под Windows я достаточно быстро настроил необходимое окружение, то под Linux я столкнулся с проблемами, которые очень тяжело было решить с помощью гуглинга. Этому вопросу я посвятил полтора дня. Считаю полезным поделиться своим опытом, возможно кому-то это поможет сэкономить драгоценное время.
          Читать дальше →
        • Реклама помогает поддерживать и развивать наши сервисы

          Подробнее
          Реклама
        • Что делать, если в PK Identity закончились значения?

          • Tutorial
          Иногда, при дизайне БД разработчики недооценивают масштабы проекта. А потом, проект выстреливает и становится высоконагруженным. Затем, в какой-то момент, кто-то замечает, что в качестве первичного ключа большой таблицы выбран identity типа INT, с ограничением 2,147,483,647.

          Изначально кажется, что 2 миллиарда записей – это много. Но если, у вас ежедневно добавляется 10 млн. новых записей? И уже израсходовано более 1 млрд. значений? У вас приложение, работающее в режиме 24/7? То у вас осталось всего 114 дней, чтобы это исправить тип первичного ключа. Это не так уж и много, если у вас используется значение ключа как в веб-приложении, так и в клиентском.

          Читать дальше →
        • SQL Server Integration Services (SSIS) для начинающих – часть 3

          • Tutorial

          Часть 1
          Часть 2

          В этой части я расскажу о работе с параметрами и переменными внутри SSIS-пакета. Узнаем, как можно задавать и отслеживать значения переменных во время выполнения пакета.

          Также рассмотрим вызов одного пакета из другого при помощи «Execute Package Task» и некоторые дополнительные компоненты и решения.

          Здесь тоже будет много картинок.
          Читать дальше →
        • SQL Server Integration Services (SSIS) для начинающих – часть 2

          • Tutorial

          Часть 1
          Часть 3

          В этой части изменим логику загрузки справочника Products:

          1. При помощи компонента «Union All» объединим два входящих потока в один;
          2. Для новых записей будем делать вставку, а для записей, которые уже были добавлены ранее будем делать обновление. Для разделения записей на добавляемые и обновляемые воспользуемся компонентом Lookup;
          3. Для обновления записей применим компонент «OLE DB Command».

          В завершении этой части рассмотрим компонент Multicast для того чтобы распараллелить выходящий набор.

          Итого в этой части мы познакомимся с четырьмя новыми компонентами: Union All, Lookup, OLE DB Command и Multicast.

          Дальше так же будет очень много картинок.
          Читать дальше →
        • Подходы к версионированию изменений БД

          Намного лучше дисциплинарные ограничения убирать инструментарным расширением
          Автор статьи


          Введение


          При разработке информационной системы, то есть программы, нацеленной на хранение, работу с данными, обработку, анализ и визуализацию какой-то базы данных, одним из краеугольных камней стоит задача разработки БД. Когда я только начинал задаваться этим вопросом, казалось – что ни сделай, все равно будет криво.


          На протяжении 5 лет разработки нескольких корпоративных ИС, я ставил и пытался решать вопросы, как тот или иной аспект разработки БД сделать удобным. Искал инструменты, помогающие что-то делать с БД, методологии. На удивление в этой области мало наработок. И в каждом подходе сразу видно – вот это нельзя, вот тут будет неудобно, тут слишком много дисциплинарных правил (см эпиграф)… В этой статье я попытался собрать те походы, которые считаю наиболее эффективными, и один, в добавление к собранным, представлю как венец моих исканий, который считаю наиболее «бронебойным».

          Читать дальше →
        Самое читаемое