4 Replies Latest reply on Oct 8, 2018 12:25 AM by Игорь Чепелев

    Работа с большими данными

    Игорь Чепелев

      Добрый день,

       

      Подскажите пожалуйста,

       

      В ситуации когда мы создаем дашборд при помощи Tableau Desktop нам загружаются все данные на локальную машину

       

      Что делать если Tableau берет данные из большой таблицы в базе данных ?

       

      Допустим я строю дашборд из двух террабайтных таблиц, получается что мне на локальный компьютер должны выгрузиться два террабайта данных ?
      А если я буду строить дашборд из Ходупа в 5 Петабайт ... то тогда что делать ?

       

      Подскажите пожауйста как поступать в таких ситуациях

        • 1. Re: Работа с большими данными
          Egor Larin

          Привет Игорь Чепелев,

           

          Не совсем на машину. На машину уйдет только если вы сделали экстракт. Экстракты в 10-20 раз меньше чем оригиналы.

           

          Если БД позволяет работать в лайве режиме - на машину загрузиться в память только сама визуализация и данные для нее, то есть то что лежит на полках.

           

          Можно поработать на агрегатами и партициями, а также добавить параметры в Custom SQL.Какая у вас БД?

          Не уверен, что пользователи будут смотреть все строки и колонки в БД на одной визуализации.

           

          Вообще, есть много способов оптимизации задачи. Можно больше конкретики и конечный результат?

          • 2. Re: Работа с большими данными
            Игорь Чепелев

            Egor Larin

             

            а также добавить параметры в Custom SQL


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

             

            Какая у вас БД?

             

            MS SQL 2016

             

            Не уверень, что пользователи будут смотреть все сткрои и колонки в БД на одной визуализации.


            Можно сначала на агрегировать данные в SQL - (тоесть сложить сумму по дням в отдельную таблицу и ее выводить в дашборд)
            Но это крайне черевато когда попросят дополнительную детализацию - по Городам
            надо переделывать шаг агрегации данных
            А потом еще попросят деление по Полу ...
            А потом по времени суток ....

             

            и хотелось бы обойти этап бесконечной переделки агрегаций под разные детализации

             

            На маленьком объеме данных Табло действует впечатляюще и полностью устраняет проблему детализаций, но на большом...
            пока неполучается физически сделать визуализацию

             

            Наверно делаем что то не так

             

             

             

             

             

             

             

             

             

             

             

             

             

             

             

             

             

             

             

             

             

             

            • 3. Re: Работа с большими данными
              Egor Larin

              Custom SQL parameters

              Очень удобно, чтобы ограничивать объем данных. Данные будут браться из таблицы.

              Сделали дашборд - пользователям дали параметры, например, по времени, городу или любому другому разрезу.

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

              Некоторые из unofficial Tableau ресурсов скажут, что Custom SQL медленный, но это от случая к случаю. Я использую его в очень крайних случаях и очень редко и осторожно.

               

              Согласен, на агрегатах не выживешь. Я так предполагаю, что вы хотите дать пользователям все строки и столбцы в одной большой таблице, и приделать десяток фильтров? Это плохое использование платформы. Тут нужно выбрать модель... Или вы делаете корпоративный отчет (таблица в БД - не отчет, имхо) для тысячи пользователей или же дадите источник данных.

               

              Получается, у вас есть Tableau Server? Я бы смотрел в стороны предоставления Published Data Source и показать пользователям Web Authoring режим, а те у кого есть Tableau Desktop смогут делать более серьезные вещи с этим источником или новыми.

              • Они сами смогут делать чарты, дашборды и сохранять результаты
                • Есть ограничения по сравнению с Tableau Desktop, но в 62% случаев, функциональности достаточно
              • Вы сможете сделать корпоративный отчет (таблица в БД - это не отчет, имхо) и использовать те же данные
              • Если есть визуализации требующие различных детализацией - то одни графики можно строить на агрегатах, а другие на детализированных данных и связать их с помощью dashboard actions
                • По идее, старайтесь подбирать источник под определенный тип анализа. Всегда можно задублировать и перестроить
                • Тут помогут Extracts и 'Hide unused fields' & 'Aggregate data for visible dimensions'.
                  Последние две опции рекомендую включать после того как сделали визуализацию на небольшом сете данных (Extract позволяет вытянуть, например, 10000 строчек или 2% от данных) и затем пересоздать экстракт с включенными опциями
                • Некоторые вычисления могут материализоваться
              • В некоторых случаях - Published Data Source, будет работать медленнее, чем Embedded to workbook

               

              О какой визуализаци идет речь? Есть ли набросок дашборда или задачу которую должен решать и на какие вопросы отвечать? На данном этапе сложно что-то посоветовать, так как, повторюсь, не вижу всей картины

               

              Основные проблемы быстродействия

              • Кол-во Marks на дашборде/графике/таблице, то есть кол-во отображаемых данных
              • Большое кол-во визуализаций на дашборде
              • Наличие большого кол-во Quick Filters. Каждый фильтр делает запрос на предрасчет значений (если не использовался cache)
              • Наличие Data Blending и вычислений на основе него
              • Сложные joins. Попробуйте Inner Joins и включите Assume Referral Integrity
              • Сложность вычислений для графика/ов, использование LoD, table calcs на большом кол-ве строк и Marks
              • Сеть и latency между Tableau Desktop/Server и источником данных, при передаче данных в Live режиме, лаг в >50ms серьезно снижает производительность
              • Медленная БД. По опыту, MS SQL медленная. В 90% случаях - если БД медленная то и Tableau медленное.Tableau Server не намного увеличит (вообще не увеличит практически) скорость обработки данных и отрисовки отчета, только если находится ближе к источнику, чем Tableau Desktop.
                • Сделайте тест в Tableau Desktop с помощью Performance Recording:
                  • Сделайте требуемую визуализацию
                  • Создайте новый worksheet и закройте workbook, находясь на пустом worksheet
                  • Откройте опять workbook, он откроется на пустом worksheet
                  • Меню Help -> Settings & Performance -> Start performance recording
                  • Переключитесь на worksheet с визуализацией
                  • Поменяйте один фильтр
                  • Опять меню Help -> Settings & Performance -> Stop performance recording
                  • Откроется отдельный workbook. Там увидите различные замеренные процессы
                  • Скорее всего, Executing Query будут самыми длинными
                  • Нажмите на bar  с самым долгим процессом
                  • Внизу выскочит query. Если нажать правой кнопкой на него и View Data - можно copy-paste в блокнот и посмотреть его целиком
                  • Запустите этот query в MS среде - MS Server Management Studio, например
                  • Сравните результаты. Если время будет примерно одинаковое, то проблема в БД и в объеме данных

               

              Материалы

              1 of 1 people found this helpful
              • 4. Re: Работа с большими данными
                Игорь Чепелев

                Спасибо большое, за такой развернутый ответ!

                 

                Попробю Ваши рекомндации!