Как избавиться от общей сметы, чтобы преуспеть

Обновлено: 29.06.2024

Вы можете использовать оператор LOAD DATA FROM S3 или LOAD XML FROM S3 для загрузки данных из файлов, хранящихся в корзине Amazon S3.

Если вы используете шифрование, корзина Amazon S3 должна быть зашифрована с помощью управляемого ключа AWS. В настоящее время вы не можете загружать данные из сегмента, зашифрованного ключом, управляемым клиентом.

Загрузка данных в таблицу из текстовых файлов в корзине Amazon S3 доступна для Amazon Aurora MySQL версии 1.8 и более поздних версий. Дополнительные сведения о версиях Aurora MySQL см. в разделе Обновления ядра СУБД для Amazon Aurora MySQL.

В настоящее время эта функция недоступна для кластеров Aurora Serverless.

Предоставление Aurora доступа к Amazon S3

Прежде чем вы сможете загружать данные из корзины Amazon S3, вы должны предоставить кластеру базы данных Aurora MySQL разрешение на доступ к Amazon S3.

Чтобы предоставить Aurora MySQL доступ к Amazon S3

Создайте политику управления идентификацией и доступом (IAM) AWS, которая предоставляет права доступа к корзине и объектам, позволяющие вашему кластеру базы данных Aurora MySQL получать доступ к Amazon S3. Инструкции см. в разделе Создание политики IAM для доступа к ресурсам Amazon S3.

Создайте роль IAM и присоедините политику IAM, созданную в разделе Создание политики IAM, для доступа к ресурсам Amazon S3, к новой роли IAM. Инструкции см. в разделе Создание роли IAM, чтобы разрешить Amazon Aurora доступ к сервисам AWS.

Убедитесь, что кластер БД использует пользовательскую группу параметров кластера БД.

Дополнительную информацию о создании пользовательской группы параметров кластера БД см. в разделе Создание группы параметров кластера БД.

Задайте для параметра кластера БД aurora_load_from_s3_role или aws_default_s3_role имя ресурса Amazon (ARN) новой роли IAM. Если роль IAM не указана для aurora_load_from_s3_role , Aurora использует роль IAM, указанную в aws_default_s3_role .

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

Дополнительную информацию о параметрах кластера БД см. в разделе Параметры кластера БД Amazon Aurora и параметров инстанса БД.

Чтобы разрешить пользователям базы данных в кластере БД Aurora MySQL доступ к Amazon S3, свяжите роль, созданную в разделе Создание роли IAM, чтобы разрешить Amazon Aurora доступ к сервисам AWS с кластером БД. Для глобальной базы данных Aurora свяжите роль с каждым кластером Aurora в глобальной базе данных. Сведения о связывании роли IAM с кластером БД см. в разделе Связывание роли IAM с кластером БД Amazon Aurora MySQL.

Настройте кластер базы данных Aurora MySQL, чтобы разрешить исходящие подключения к Amazon S3. Инструкции см. в разделе Включение сетевого обмена данными между Amazon Aurora MySQL и другими сервисами AWS.

Для глобальной базы данных Aurora включите исходящие подключения для каждого кластера Aurora в глобальной базе данных.

Предоставление прав на загрузку данных в Amazon Aurora MySQL

Пользователь базы данных, выполняющий оператор LOAD DATA FROM S3 или LOAD XML FROM S3, должен иметь определенную роль или привилегию для выполнения любого оператора. В Aurora MySQL версии 3 вы предоставляете роль AWS_LOAD_S3_ACCESS. В Aurora MySQL версии 1 или 2 вы предоставляете привилегию LOAD FROM S3. Пользователю-администратору для кластера БД по умолчанию предоставляется соответствующая роль или привилегия. Вы можете предоставить привилегию другому пользователю с помощью одного из следующих операторов.

Используйте следующую инструкцию для Aurora MySQL версии 3:

При использовании метода ролей в Aurora MySQL версии 3 вы также активируете роль с помощью инструкции SET ROLE имя_роли или инструкции SET ROLE ALL. Если вы не знакомы с ролевой системой MySQL 8.0, вы можете узнать больше о модели привилегий на основе ролей. Вы также можете найти более подробную информацию в разделе Использование ролей в Справочном руководстве по MySQL.

Используйте следующую инструкцию для Aurora MySQL версии 1 или 2:

Роль AWS_LOAD_S3_ACCESS и привилегия LOAD FROM S3 относятся к Amazon Aurora и недоступны для баз данных MySQL или RDS для инстансов БД MySQL. Если вы настроили репликацию между кластером БД Aurora в качестве мастера репликации и базой данных MySQL в качестве клиента репликации, то инструкция GRANT для роли или привилегии приведет к остановке репликации с ошибкой. Вы можете спокойно пропустить ошибку, чтобы возобновить репликацию. Чтобы пропустить ошибку в экземпляре БД RDS для MySQL, используйте процедуру mysql_rds_skip_repl_error. Чтобы пропустить ошибку во внешней базе данных MySQL, используйте оператор SET GLOBAL sql_slave_skip_counter (Aurora MySQL версии 1 и 2) или оператор SET GLOBAL sql_replica_skip_counter (Aurora MySQL версии 3).

Указание пути к корзине Amazon S3

Синтаксис для указания пути к файлам, хранящимся в корзине Amazon S3, следующий.

Путь включает следующие значения:

region (необязательно) — регион AWS, в котором находится корзина Amazon S3 для загрузки. Это значение является необязательным. Если вы не укажете значение региона, Aurora загрузит ваш файл из Amazon S3 в том же регионе, что и ваш кластер БД.

bucket-name — имя корзины Amazon S3, содержащей данные для загрузки. Поддерживаются префиксы объектов, определяющие путь к виртуальной папке.

file-name-or-prefix — имя текстового файла Amazon S3 или XML-файла либо префикс, определяющий один или несколько текстовых или XML-файлов для загрузки. Вы также можете указать файл манифеста, который идентифицирует один или несколько текстовых файлов для загрузки. Дополнительные сведения об использовании файла манифеста для загрузки текстовых файлов из Amazon S3 см. в разделе Использование манифеста для указания загружаемых файлов данных.

ЗАГРУЗИТЬ ДАННЫЕ ИЗ S3

Вы можете использовать оператор LOAD DATA FROM S3 для загрузки данных из любого формата текстового файла, который поддерживается оператором MySQL LOAD DATA INFILE, например текстовых данных, разделенных запятыми. Сжатые файлы не поддерживаются.

Синтаксис

Параметры

Далее вы можете найти список обязательных и необязательных параметров, используемых оператором LOAD DATA FROM S3. Вы можете найти более подробную информацию о некоторых из этих параметров в синтаксисе LOAD DATA INFILE в документации MySQL.

ФАЙЛ | ПРЕФИКС | МАНИФЕСТ — определяет, следует ли загружать данные из одного файла, из всех файлов, соответствующих заданному префиксу, или из всех файлов в указанном манифесте. ФАЙЛ — значение по умолчанию.

S3-URI — указывает URI для загрузки текста или файла манифеста или используемый префикс Amazon S3. Укажите URI, используя синтаксис, описанный в разделе «Указание пути к корзине Amazon S3».

ЗАМЕНИТЬ | IGNORE — определяет, какое действие следует предпринять, если входная строка имеет те же уникальные значения ключа, что и существующая строка в таблице базы данных.

Укажите REPLACE, если вы хотите, чтобы входная строка заменяла существующую строку в таблице.

Укажите IGNORE, если вы хотите удалить строку ввода.

INTO TABLE — указывает имя таблицы базы данных, в которую нужно загрузить входные строки.

PARTITION — требует, чтобы все входные строки были вставлены в разделы, указанные в указанном списке имен разделов, разделенных запятыми. Если входная строка не может быть вставлена ​​в один из указанных разделов, то оператор терпит неудачу и возвращается ошибка.

НАБОР СИМВОЛОВ — определяет набор символов данных во входном файле.

ПОЛЯ | COLUMNS — определяет, как разделены поля или столбцы во входном файле. Поля разделены символами табуляции по умолчанию.

LINES — указывает, как разграничены строки во входном файле. По умолчанию строки разделяются символом новой строки ( '\n' ).

ИГНОРИРОВАТЬ номер LINES | ROWS — указывает игнорировать определенное количество строк или строк в начале входного файла. Например, вы можете использовать IGNORE 1 LINES, чтобы пропустить начальную строку заголовка, содержащую имена столбцов, или IGNORE 2 ROWS, чтобы пропустить первые две строки данных во входном файле. Если вы также используете PREFIX , IGNORE пропускает определенное количество строк или строк в начале первого входного файла.

col_name_or_user_var, . – Указывает разделенный запятыми список из одного или нескольких имен столбцов или пользовательских переменных, которые определяют, какие столбцы следует загружать по имени. Имя пользовательской переменной, используемой для этой цели, должно совпадать с именем элемента из текстового файла с префиксом @. Вы можете использовать пользовательские переменные для хранения соответствующих значений полей для последующего повторного использования.

Например, следующий оператор загружает первый столбец из входного файла в первый столбец table1 и устанавливает значение столбца table_column2 в table1 равным входному значению второго столбца, деленному на 100.

SET — указывает список операций присваивания, разделенных запятыми, которые устанавливают значения столбцов в таблице в значения, не включенные во входной файл.

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

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

Вы не можете использовать ключевое слово LOCAL оператора LOAD DATA FROM S3, если вы загружаете данные из корзины Amazon S3.

Использование манифеста для указания загружаемых файлов данных

Вы можете использовать оператор LOAD DATA FROM S3 с ключевым словом MANIFEST, чтобы указать файл манифеста в формате JSON, в котором перечислены текстовые файлы для загрузки в таблицу в вашем кластере БД. Вы должны использовать Aurora 1.11 или более позднюю версию, чтобы использовать ключевое слово MANIFEST с оператором LOAD DATA FROM S3.

Следующая схема JSON описывает формат и содержимое файла манифеста.

Каждый URL-адрес в манифесте должен указывать URL-адрес с именем сегмента и полным путем к файлу, а не только префикс. Вы можете использовать манифест для загрузки файлов из разных сегментов, разных регионов или файлов с разными префиксами. Если в URL-адресе не указан регион, используется регион целевого кластера БД Aurora. В следующем примере показан файл манифеста, который загружает четыре файла из разных сегментов.

Необязательный обязательный флаг указывает, должна ли функция ЗАГРУЗИТЬ ДАННЫЕ ИЗ S3 возвращать ошибку, если файл не найден. Обязательный флаг по умолчанию имеет значение false . Независимо от установленного обязательного параметра, ЗАГРУЗКА ДАННЫХ ИЗ S3 завершается, если файлы не найдены.

Файлы манифеста могут иметь любое расширение. В следующем примере выполняется инструкция LOAD DATA FROM S3 с манифестом из предыдущего примера, который называется customer.manifest .

После завершения инструкции запись для каждого успешно загруженного файла записывается в таблицу aurora_s3_load_history.

Проверка загруженных файлов с помощью таблицы aurora_s3_load_history

Каждый успешный оператор LOAD DATA FROM S3 обновляет таблицу aurora_s3_load_history в схеме mysql записью для каждого загруженного файла.

После выполнения оператора LOAD DATA FROM S3 вы можете проверить, какие файлы были загружены, запросив таблицу aurora_s3_load_history. Чтобы просмотреть файлы, которые были загружены из одной итерации инструкции, используйте предложение WHERE для фильтрации записей в URI Amazon S3 для файла манифеста, используемого в инструкции. Если вы уже использовали тот же файл манифеста, отфильтруйте результаты, используя поле метки времени.

В следующей таблице описаны поля таблицы aurora_s3_load_history.

URI, указанный в операторе загрузки. Этот URI может сопоставляться с любым из следующего:

Один файл данных для оператора LOAD DATA FROM S3 FILE

Префикс Amazon S3, который сопоставляется с несколькими файлами данных для инструкции LOAD DATA FROM S3 PREFIX

Один файл манифеста, содержащий имена файлов, загружаемых для инструкции LOAD DATA FROM S3 MANIFEST

Имя файла, загруженного в Aurora из Amazon S3 с использованием URI, указанного в поле load_prefix.

Номер версии файла, определяемого полем file_name, который был загружен, если корзина Amazon S3 имеет номер версии.

Размер загруженного файла в байтах.

Отметка времени завершения оператора LOAD DATA FROM S3.

Примеры

Следующий оператор загружает данные из корзины Amazon S3, которая находится в том же регионе, что и кластер БД Aurora. Оператор считывает разделенные запятыми данные из файла customerdata.txt, который находится в корзине Amazon S3 dbbucket, а затем загружает данные в таблицу store-schema.customer-table .

Следующий оператор загружает данные из корзины Amazon S3, которая находится в другом регионе, чем кластер БД Aurora. Оператор считывает данные с разделителями-запятыми из всех файлов, которые соответствуют префиксу объекта данных сотрудников в корзине my-data Amazon S3 в регионе us-west-2, а затем загружает данные в таблицу сотрудников.

Следующий оператор загружает данные из файлов, указанных в файле манифеста JSON с именем q1_sales.json, в таблицу продаж.

ЗАГРУЗИТЬ XML ИЗ S3

Вы можете использовать оператор LOAD XML FROM S3 для загрузки данных из XML-файлов, хранящихся в корзине Amazon S3, в одном из трех форматов XML:

Имена столбцов как атрибуты элемента. Значение атрибута идентифицирует содержимое поля таблицы.

Имена столбцов как дочерние элементы элемента. Значение дочернего элемента идентифицирует содержимое поля таблицы.

Имена столбцов в атрибуте имени элементов в элементе. Значение элемента идентифицирует содержимое поля таблицы.

Синтаксис

Параметры

Далее вы можете найти список обязательных и необязательных параметров, используемых оператором LOAD DATA FROM S3. Вы можете найти более подробную информацию о некоторых из этих параметров в синтаксисе LOAD XML в документации MySQL.

ФАЙЛ | PREFIX — определяет, следует ли загружать данные из одного файла или из всех файлов, которые соответствуют заданному префиксу. ФАЙЛ — значение по умолчанию.

ЗАМЕНИТЬ | IGNORE — определяет, какое действие следует предпринять, если входная строка имеет те же уникальные значения ключа, что и существующая строка в таблице базы данных.

Укажите REPLACE, если вы хотите, чтобы входная строка заменяла существующую строку в таблице.

Укажите IGNORE, если вы хотите отбросить входную строку. ИГНОРИРОВАТЬ — значение по умолчанию.

INTO TABLE — указывает имя таблицы базы данных, в которую нужно загрузить входные строки.

PARTITION — требует, чтобы все входные строки были вставлены в разделы, указанные в указанном списке имен разделов, разделенных запятыми. Если входная строка не может быть вставлена ​​в один из указанных разделов, то оператор терпит неудачу и возвращается ошибка.

НАБОР СИМВОЛОВ — определяет набор символов данных во входном файле.

ROWS IDENTIFIED BY — определяет имя элемента, которое идентифицирует строку во входном файле. Значение по умолчанию – .

ИГНОРИРОВАТЬ номер LINES | ROWS — указывает игнорировать определенное количество строк или строк в начале входного файла. Например, вы можете использовать ИГНОРИРОВАТЬ 1 СТРОКУ, чтобы пропустить первую строку в текстовом файле, или ИГНОРИРОВАТЬ 2 СТРОКИ, чтобы пропустить первые две строки данных во входном XML.

field_name_or_user_var, . – Указывает разделенный запятыми список из одного или нескольких имен элементов XML или пользовательских переменных, которые определяют, какие элементы следует загружать по имени. Имя пользовательской переменной, используемой для этой цели, должно совпадать с именем элемента из файла XML с префиксом @. Вы можете использовать пользовательские переменные для хранения соответствующих значений полей для последующего повторного использования.

Например, следующий оператор загружает первый столбец из входного файла в первый столбец table1 и устанавливает значение столбца table_column2 в table1 равным входному значению второго столбца, деленному на 100.

SET — указывает список операций присваивания, разделенных запятыми, которые устанавливают значения столбцов в таблице в значения, не включенные во входной файл.

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

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

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

В этой статье

Экспорт данных в Excel: основы

При экспорте данных в Excel Access создает копию выбранных данных, а затем сохраняет скопированные данные в файле, который можно открыть в Excel. Если вы часто копируете данные из Access в Excel, вы можете сохранить сведения об операции экспорта для использования в будущем и даже запланировать автоматический запуск операции экспорта через определенные промежутки времени.

Распространенные сценарии экспорта данных в Excel

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

Вы давно пользуетесь Access, но ваш руководитель предпочитает работать с данными в Excel. Через регулярные промежутки времени вы копируете данные в Excel, но хотите автоматизировать этот процесс, чтобы сэкономить время.

Об экспорте данных в Excel

Access не включает команду «Сохранить как» для формата Excel. Чтобы скопировать данные в Excel, необходимо использовать функцию экспорта, описанную в этой статье, или можно скопировать данные Access в буфер обмена, а затем вставить их в электронную таблицу Excel.

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

Microsoft Excel включает команду для импорта данных из базы данных Access. Вы можете использовать эту команду вместо команды экспорта в Access; однако команда импорта Excel позволяет импортировать только таблицы или запросы. Дополнительные сведения см. в статье справки Excel Подключение к внешним данным (импорт).

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

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

Подготовка к операции экспорта

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

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

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

Модели импорта загружаются с данными, которые сжимаются и оптимизируются, а затем сохраняются на диск механизмом хранения VertiPaq. Когда исходные данные загружаются в память, можно увидеть 10-кратное сжатие, поэтому разумно ожидать, что 10 ГБ исходных данных можно сжать примерно до 1 ГБ. Кроме того, при сохранении на диск может быть достигнуто дополнительное сокращение на 20 %.

Несмотря на эффективность, достигнутую механизмом хранения VertiPaq, важно, чтобы вы стремились свести к минимуму данные, загружаемые в ваши модели. Это особенно верно для больших моделей или моделей, которые, как вы ожидаете, со временем станут большими. Четыре веские причины включают в себя:

  • Большие размеры моделей могут не поддерживаться вашей емкостью. В общей емкости могут размещаться модели размером до 1 ГБ, а в емкости Premium — модели размером до 13 ГБ. Дополнительные сведения см. в статье о поддержке Power BI Premium для больших наборов данных.
  • Меньшие размеры моделей снижают конкуренцию за ресурсы емкости, в частности за память. Это позволяет одновременно загружать больше моделей в течение более длительных периодов времени, что приводит к снижению частоты вытеснения. Дополнительную информацию см. в разделе Управление емкостями Premium.
  • Меньшие модели обеспечивают более быстрое обновление данных, что приводит к меньшей задержке в отчетах, более высокой пропускной способности обновления наборов данных и меньшей нагрузке на исходную систему и ресурсы емкости.
  • Меньшее количество строк в таблице может привести к более быстрой оценке вычислений, что может повысить общую производительность запросов.

В этой статье рассматриваются восемь различных методов сокращения данных. Эти методы включают:

Удалите ненужные столбцы

Столбцы таблицы модели служат двум основным целям:

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

Столбцы, которые не служат этим целям, вероятно, можно удалить. Удаление столбцов называется вертикальной фильтрацией.

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

Удалить ненужные строки

Таблицы модели должны быть загружены как можно меньшим количеством строк. Этого можно добиться путем загрузки отфильтрованных наборов строк в таблицы моделей по двум разным причинам: для фильтрации по сущности или по времени. Удаление строк называется горизонтальной фильтрацией.

Фильтрация по объекту включает загрузку подмножества исходных данных в модель. Например, вместо загрузки фактов о продажах для всех регионов продаж загрузите факты только для одного региона. Такой подход к проектированию приведет к созданию множества моделей меньшего размера, а также может устранить необходимость определения безопасности на уровне строк (но потребует предоставления определенных разрешений для набора данных в службе Power BI и создания «дубликатов» отчетов, которые подключаются к каждому набору данных). Вы можете использовать параметры Power Query и файлы шаблонов Power BI для упрощения управления и публикации. Дополнительные сведения см. в записи блога «Подробное изучение параметров запросов и шаблонов Power BI».

Фильтрация по времени включает ограничение объема истории данных, загружаемых в таблицы фактического типа (и ограничение строк дат, загружаемых в таблицы дат модели). Мы предлагаем вам не загружать всю доступную историю автоматически, если только это не является известным требованием к отчетности. Полезно понимать, что фильтры Power Query на основе времени можно параметризовать и даже настроить на использование относительных периодов времени (относительно даты обновления, например, за последние пять лет). Кроме того, имейте в виду, что ретроспективные изменения временных фильтров не нарушат отчеты; это просто приведет к уменьшению (или увеличению) истории данных, доступных в отчетах.

Группировать и суммировать

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

Например, в исходной таблице фактов продаж хранится одна строка для каждой строки заказа. Значительного сокращения объема данных можно добиться путем суммирования всех показателей продаж, группировки по дате, клиенту и продукту.Учтите, что еще более значительного сокращения объема данных можно добиться, группируя их по дате на уровне месяца. Это может привести к возможному уменьшению размера модели на 99%, но отчетность на уровне дня или на уровне отдельных заказов больше невозможна. Решение обобщить данные типа фактов всегда связано с компромиссами. Компромисс можно смягчить за счет разработки смешанной модели, и этот вариант описан в методе перехода к смешанному режиму.

Оптимизация типов данных столбцов

Подсистема хранения VertiPaq использует отдельные структуры данных для каждого столбца. По замыслу эти структуры данных обеспечивают максимальную оптимизацию для данных числовых столбцов, в которых используется кодировка значений. Однако для текста и других нечисловых данных используется хэш-кодирование. Это требует, чтобы подсистема хранения назначала числовой идентификатор каждому уникальному текстовому значению, содержащемуся в столбце. Это числовой идентификатор, который затем сохраняется в структуре данных, требуя поиска хэша во время хранения и запроса.

В некоторых случаях вы можете преобразовать исходные текстовые данные в числовые значения. Например, перед номером заказа на продажу может стоять текстовое значение (например, "SO123456"). Префикс можно удалить, а значение номера заказа преобразовать в целое число. Для больших таблиц это может привести к значительному сокращению объема данных, особенно если столбец содержит уникальные или многозначные значения.

В этом примере мы рекомендуем установить для свойства суммирования столбца по умолчанию значение «Не суммировать». Это поможет свести к минимуму неуместное суммирование значений номера заказа.

Предпочтения для пользовательских столбцов

Подсистема хранения VertiPaq хранит вычисляемые столбцы модели (определенные в DAX) точно так же, как обычные столбцы, полученные из Power Query. Однако структуры данных хранятся несколько иначе и обычно обеспечивают менее эффективное сжатие. Кроме того, они создаются после загрузки всех таблиц Power Query, что может привести к увеличению времени обновления данных. Поэтому менее эффективно добавлять столбцы таблицы как вычисляемые столбцы, чем вычисляемые столбцы Power Query (определенные в M).

Предпочтительнее создавать настраиваемые столбцы в Power Query. Когда источником является база данных, вы можете добиться большей эффективности нагрузки двумя способами. Расчет можно определить в операторе SQL (используя собственный язык запросов поставщика) или материализовать в виде столбца в источнике данных.

Однако в некоторых случаях лучше использовать столбцы, вычисляемые по модели. Это может быть случай, когда формула включает оценку мер или требует определенных функций моделирования, поддерживаемых только в функциях DAX. Информацию об одном таком примере см. в статье Общие сведения о функциях для иерархий "родитель-потомок" в DAX.

Отключить загрузку запроса Power Query

Запросы Power Query, предназначенные для поддержки интеграции данных с другими запросами, не следует загружать в модель. Чтобы избежать загрузки запроса в модель, обязательно отключите загрузку запроса в этих случаях.

Скриншот Power Query, показывающий

Отключить автоматическую дату/время

Power BI Desktop включает параметр Автоматическая дата/время. Когда эта функция включена, она автоматически создает скрытую таблицу даты/времени для столбцов даты, чтобы помочь авторам отчетов при настройке фильтров, группировки и действий детализации для календарных периодов времени. Скрытые таблицы на самом деле являются вычисляемыми таблицами, которые увеличивают размер модели. Инструкции по использованию этого параметра см. в статье Руководство по автоматической настройке даты и времени в Power BI Desktop.

Переключиться в смешанный режим

В Power BI Desktop дизайн в смешанном режиме создает составную модель. По сути, он позволяет определить режим хранения для каждой таблицы. Таким образом, для каждой таблицы свойство режима хранения может быть установлено как Импорт или DirectQuery (другой вариант — двойной).

Эффективным методом уменьшения размера модели является установка для свойства режима хранения для больших таблиц фактов значения DirectQuery. Учтите, что этот подход к проектированию может хорошо работать в сочетании с методом группировки и суммирования, представленным ранее. Например, сводные данные о продажах можно использовать для получения высокоэффективных «сводных» отчетов. Страница детализации может отображать детализированные продажи для определенного (и узкого) контекста фильтра, отображая все заказы на продажу в контексте. В этом примере страница детализации будет включать визуальные элементы на основе таблицы DirectQuery для получения данных о заказе на продажу.

Однако составные модели имеют множество последствий для безопасности и производительности. Дополнительные сведения см. в статье Использование составных моделей в Power BI Desktop.

Дальнейшие шаги

Дополнительные сведения о модели импорта Power BI см. в следующих статьях:

fig1

Когда самолеты были новой идеей, пилоты были ковбоями в воздухе. Барнстормеры влетали и вылетали через открытые двери амбаров: они действительно летали на месте своих штанов. У них было плетеное сиденье, ручка управления и просто отличный вид… Жизнь была прекрасна! Однако со временем их становилось все меньше и меньше. Они летели в амбары, но не всегда вылетали с другого конца. Когда появилось второе поколение пилотов, они начали разрабатывать тактику, чтобы оставаться в воздухе и оставаться в живых, чтобы завтра снова летать. Эта тактика часто принимала форму приборов в кабине, которые сообщали им, насколько хорошо работает оборудование; датчики уровня топлива, индикаторы скорости воздуха, датчики давления масла и датчики температуры двигателя. С появлением каждого нового калибра продолжительность жизни пилота увеличивалась. Сегодня пилоты с рейтингом приборов совершают целые полеты, не видя ничего, кроме своей приборной панели. Все, что им нужно знать, чтобы безопасно лететь на этом самолете к месту назначения, находится прямо на их приборах и навигационном оборудовании. В индустрии грузоперевозок есть своя история ковбоев, которые летают на месте своих штанов. Однако по мере роста конкуренции стало жизненно важно, чтобы независимые водители чувствовали, как их работа обтекается в любой момент времени. Если раньше простой бег мог помочь вам выжить и даже заработать немного денег, то сегодня, если вы не будете бегать с умом, вы можете разориться, даже не заметив этого. Один из самых простых способов держать руку на пульсе вашей компании — отслеживать и контролировать расходы на ведение бизнеса. Это потребует некоторой бухгалтерии, но это цифры, которые вы уже отслеживаете для IRS. Почему бы не заставить их работать на вас одновременно? Как только вы узнаете, каковы ваши затраты, вы можете начать предпринимать шаги по их контролю, и это напрямую повлияет на вашу прибыль. Стоимость эксплуатации грузовика подпадает под две основные категории; постоянные и переменные затраты.

ФИКСИРОВАННЫЕ ЗАТРАТЫ

Постоянные расходы – это расходы, связанные с тем, что ваш грузовик припаркован на подъездной дорожке. У вас есть ежедневное воздействие на них, прокатки или нет. Есть дни в году, которые вы можете решить помирить позже, например, Рождество, День Благодарения и день рождения. А как насчет дней, когда вы сидите без дела в ожидании более высокооплачиваемой нагрузки? Возможно, вам будет лучше с менее продуктивной нагрузкой и вам не придется съедать 2 или 3 дня фиксированных затрат, которые просто продолжают накапливаться. В нашем примере ежегодные фиксированные затраты в размере 27 616 долларов представляют собой 76 долларов постоянных расходов в день. За груз придется заплатить на 529 долларов больше, чтобы оправдать ожидание в течение недели. Как только вы узнаете свои фиксированные затраты, это больше не игра в догадки. Вы можете решить, как долго вы можете позволить себе ждать конкретной загрузки, исходя из известной стоимости ожидания. Самые большие два пункта в этой категории — это ваша ипотека на грузовик и различные страховые покрытия, которые вам нужны. Другие элементы включают ваши лицензии, разрешения и бухгалтерские услуги.

figure 1

рисунок 1

ПЕРЕМЕННЫЕ ЗАТРАТЫ

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

СТОИМОСТЬ ОПЕРАЦИЙ

Наш пример (Рисунок 1) включает в себя множество расходов, с которыми сталкиваются дальнобойщики в своем бизнесе. Однако он может не совсем точно отражать вашу работу, и вам следует адаптировать его в соответствии с вашими расходами, прежде чем пытаться его использовать. Постоянные и переменные затраты разделены в форме, а затем объединены в элементе внизу под названием «Общие затраты на транспортное средство».

Первый столбец цифр содержит годовые затраты для каждой категории. Второй столбец делит первый столбец на 12 и дает вам ежемесячные разбивки. Третий столбец — это результат деления годовых затрат на количество миль, пройденных за год. Для нашего примера мы предполагаем, что грузовик проехал 100 000 миль. Итак, поскольку ежегодные платежи по ипотеке за грузовик составляли 16 000, мы делим 16 000 на 100 000 миль и находим стоимость ипотеки за грузовик в 0,16 цента за милю. Отчет о затратах на эксплуатацию представляет собой как форму отчетности, так и форму планирования. Он будет сообщать о ваших операционных расходах, но позволяет вам играть в игры «Если / Тогда» с «Доходом водителя» и «Общей стоимостью операции». Если вы определили установленный доход водителя, вы можете указать, какой уровень валового дохода вы должны достичь, чтобы поддерживать этот доход с учетом ваших годовых расходов.Запись «Доход водителя» — это основная причина, по которой мы проходим через все это в первую очередь. Некоторые водители вводят установленную цифру того, что они хотят заработать. Другие будут платить себе процент от своего бизнеса, поэтому чем больше валовой доход они получают, тем больше они получают личного дохода. Как правило, водитель должен зарабатывать около 30% от общего валового дохода грузовика. Поскольку расходы должны составлять остальные 70%, вы можете взять «Общие расходы на транспортное средство», разделить на 70 и умножить результат на 30, чтобы получить «Доход водителя». Добавляя «Общие расходы на транспортное средство» и «Заработную плату водителя», вы должны получить «Общую стоимость эксплуатации», которая также должна быть общим валовым доходом за год. Если ваш фактический валовой доход был больше, чем указано в таблице, поздравляю, вы заработали для себя больше, чем планировали. Если ваш фактический валовой доход был меньше указанного в таблице, ваш «Доход водителя» представляет собой разницу между фактическим валовым доходом и «Общими затратами на транспортное средство». Если она составляет менее 30 процентов от валовой суммы, вам необходимо принять меры для контроля расходов или повышения валовой суммы, а возможно, и того, и другого.

figure 2

рисунок 2

СТОИМОСТЬ ЗА МИЛЬ СНИЖАЕТСЯ ПРИ УВЕЛИЧЕНИИ МИЛЬ

По мере увеличения пробега грузовика показатель стоимости за милю будет уменьшаться. (Рисунок 2). Конечно, ваш доход водителя также должен увеличиваться по мере того, как вы проезжаете эти километры. Давайте просто посмотрим на первую и последнюю точки на этом графике. Стоимость 1,06 доллара за милю при пробеге 50 000 миль представляет собой стоимость транспортного средства в размере 53 000 долларов и «доход водителя» в размере 22 174 долларов. Окончательная стоимость 0,69 доллара за милю для 130 000 миль представляет собой стоимость автомобиля в размере 89 000 долларов и «доход водителя» в размере 38 422 долларов. Это снижение стоимости за милю с каждой дополнительной милей является характерной чертой малых дальнобойщиков и крупных автопарков; более широкое использование оборудования приводит к снижению затрат на милю и потенциальному увеличению чистой выручки и прибыли.

ДРУГИЕ БАРОМЕТРЫ ФИНАНСОВОГО ЗДОРОВЬЯ

Отчет «Стоимость за милю» — лишь один из многих, которые могут дать дальнобойщику представление о том, что происходит в его работе. Прелесть этих отчетов в том, что они также используют те же цифры, которые вы уже собрали, просто собранные другим способом, чтобы дать вам, возможно, другое финансовое представление.

ОТЧЕТ О ПРИБЫЛИ КРУГЛОСУТОЧНО

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

РЕГИСТРАЦИЯ ДЕБИТОРСКОЙ ЗАДОЛЖЕННОСТИ

В современном бизнес-климате вероятность того, что вы заплатите, выше, когда вы угрожаете подать в суд, чем в день, когда деньги должны быть выплачены. Грузоотправители и брокеры, которые должны вам деньги, используют вас как беспроцентный банк, когда они переходят срок платежа. Если у них действительно нет наличных денег, чтобы заплатить вам, они могут занять деньги в банке, чтобы заплатить вам, но это будет стоить им процентов по кредиту. Им ничего не стоит просто не платить вам, и они экономят на процентах по кредиту. В то же время большая дебиторская задолженность может задушить вашу работу до смерти. Держите свои условия в письменном виде, но если клиент исторически опаздывает с оплатой, у вас есть несколько вариантов. Один заключается в том, чтобы взимать с него более высокую ставку, чтобы компенсировать разницу, а другой — указывать более высокую ставку за их «обычный» платеж, а затем предлагать скидку при оплате в течение 15 дней. Если хорошо платящий клиент меняет способ оплаты, поспрашивайте и выясните, какова настоящая причина изменения. Есть некоторая мудрость в диверсификации списка клиентов. Не позволяйте неудачам другой компании тянуть за собой вашу. Хороший клиент — это тот, у которого много денег и который платит вам вовремя.

ТОПЛИВНАЯ РЕГИСТРАЦИЯ

Поскольку топливо – это ваша самая большая переменная стоимость, небольшие изменения могут иметь значительные результаты. Внесение изменений в ваше вождение или оборудование, которое увеличивает пробег всего на две десятых мили на галлон топлива (то есть 5,7 вместо 5,5 миль на галлон), может привести к годовой экономии более 2000 долларов. Точная корректировка всех затрат в операции может существенно повлиять на ее прибыльность.

ЕЖЕДНЕВНЫЕ ИЛИ ЕЖЕНЕДЕЛЬНЫЕ ОТЧЕТЫ О СТОИМОСТИ ЭКСПЛУАТАЦИИ

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

Хотя мы, вероятно, никогда не увидим тот день, когда вы сможете проехать на грузовике из Калифорнии в Нью-Йорк, не отрывая взгляда от приборной панели, чем больше финансовых данных вы будете анализировать, тем больше у вас будет шансов заработать на этом. путешествие. Найдите бизнес-вопросы, на которые вам нужны ответы, и составьте отчет, содержащий эти ответы. Затем примите политики и способы ведения бизнеса, которые помогут вам стать лучшим бизнесменом, и наблюдайте за результатами этих изменений в своих отчетах по мере тонкой настройки своей работы. Используйте отчеты, чтобы убедиться, что вы контролируете каждый фактор своей работы, над которым у вас есть хоть какой-то контроль, и понимаете все факторы, которые находятся вне вашего контроля. Затем вы можете расслабиться и наслаждаться поездкой, потому что великолепный вид ничуть не изменился.

Используйте таблицу ниже, чтобы ввести свои личные данные на основе ваших операционных расходов и доходов, и калькулятор сформулирует для вас сводку годовой операционной деятельности. (Поставьте нули в пустых полях)

Читайте также: