Что такое self в Python: примеры из реального мира
Что такое self в Python: примеры из реального мира
В этом руководстве вы узнаете, что такое кэш данных и почему он важен. Кэш данных хранит биты данных, которые могут стать ценными для будущего использования.
Если вам потребуются те же фрагменты информации в будущей мере или действии, кэш данных предоставит необходимую информацию. Это избавляет систему от повторной выборки одних и тех же наборов данных.
В этом руководстве вы узнаете о восьми важных моментах, которые следует помнить при работе с кэшами данных в LuckyTemplates.
Оглавление
Определение и назначение кэша данных
Кэш данных — это временная таблица, созданная в памяти механизмом хранения . Эта временная таблица отправляется обработчику формул, который затем перебирает эту информацию и выполняет различные операции после запроса.
Вся связь между механизмом формул и механизмом хранения всегда происходит в виде кэша данных. Механизм формул подготавливает планы запросов, а затем отправляет инструкции механизму хранения. Затем механизм хранения отправляет его обратно в механизм формул, который возвращает результат пользователю.
Поскольку механизм формул не имеет прямого доступа к данным, хранящимся в DirectQuery и VertiPaq, он использует механизм хранения для кэширования данных.
Кэш данных, отправляемый механизмом хранения, находится в несжатом формате. Это означает, что размер данных, хранящихся в инструменте Vertipaq, может быть уменьшен.
Но когда пришло время вернуть кэш данных обратно в обработчик формул, его нельзя сжать, поскольку обработчик формул не работает со сжатыми наборами данных.
Как кэш данных влияет на оперативную память
Если механизм хранения отправляет огромные куски кеша данных, это займет много места в оперативной памяти программного обеспечения. Кроме того, обработчику формул потребуется значительное количество времени для выполнения итераций и получения результата.
Поэтому, когда вы пишете свой код DAX, вам нужно понимать, что он должен быть написан таким образом, чтобы свести к минимуму количество строк в кэше данных.
Наилучшим сценарием было бы сопоставление количества строк, показанных в визуальном элементе, с количеством строк, возвращаемых в кэше данных.
В большинстве случаев трудно вернуть одинаковое количество строк. Если это произойдет, вам потребуется просмотреть свой код DAX и разбить его таким образом, чтобы оптимизировать кеш данных, созданный подсистемой хранения.
Как кэш данных оптимизирует запросы
Неоптимизированные функции
Некоторые функции языка DAX не оптимизированы для механизма хранения. Чтобы лучше понять это, давайте рассмотрим пример.
Например, в вашем коде вместо SUMMARIZE можно использовать функцию . Функции SUMMARIZE и GROUPBY выполняют одну и ту же операцию. Тем не менее, есть заметные различия в зависимости от сценария.
Функция GROUPBY не оптимизирована для Storage Engine. Если вы используете функцию GROUPBY для таблицы фактов с 12 миллионами строк, она создаст кэш данных с таким же количеством строк. Это может быть от 600 МБ до 1 ГБ.
Этот размер может оказать большое давление на вашу оперативную память. Поэтому вместо использования GROUPBY используйте . Функция SUMMARIZE приводит к меньшему размеру кэша данных. Вы можете связать его с GROUPBY в качестве функции верхнего уровня.
Сокращение повторений
Когда вы пишете свои меры или запросы DAX, вам необходимо убедиться, что код, созданный за кулисами, подходит для механизма хранения.
Вам нужно написать свой код DAX таким образом, чтобы создать кеш данных, который также можно использовать в последующих запросах. Преимущество этого заключается в том, что вместо выполнения отдельного сканирования с помощью VertiPaq механизм хранения проверит, был ли уже получен подобный запрос.
Если это так, то это означает, что его кеш данных доступен в памяти. Таким образом, вместо повторного сканирования запроса VertiPaq просто вернет его из кэш-памяти в обработчик формул.
Если вы видите оператор CALLBACKDATAID в своем запросе механизма хранения, это означает, что эти запросы не могут быть кэшированы. Если в случае, если аналогичный запрос будет отправлен механизму хранения, он выполнит повторную итерацию.
Таким образом, VertiPaq должен будет вызвать обработчик формул для разрешения запроса. Это увеличивает общее время выполнения, поскольку в этом случае нельзя использовать кэш-память.
Заключение
Кэш данных — ваш лучший друг в языке DAX. Не забудьте написать свой код DAX таким образом, чтобы максимизировать пространство для хранения и сократить количество итераций инструмента VertiPaq. Вы можете повторно использовать кеш данных, уже созданный Storage Engine, чтобы сократить время выполнения запроса.
Что такое self в Python: примеры из реального мира
Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.
В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.
В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.
В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.
Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.
Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.
В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.
Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.
Что такое шлюз LuckyTemplates? Все, что тебе нужно знать