Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

У Excel 2013 і пізніших версіях можна створювати моделі даних, які містять мільйони рядків, а потім виконувати потужний аналіз даних у цих моделях. Моделі даних можна створювати за допомогою надбудови Power Pivot без неї, щоб підтримувати будь-яку кількість зведених таблиць, діаграм і візуалізацій Power View в одній книзі.

Примітка.: У цій статті описано моделі даних у Excel 2013. Проте ті ж функції моделювання даних і Power Pivot, що й Excel 2013, також стосуються Excel 2016. Між цими версіями програм для office 365 немає Excel.

Хоча ви можете легко створювати величезні моделі даних у Excel, є кілька причин не потрібно. По-перше, великі моделі, які містять багато таблиць і стовпців, перекидаються для більшості аналізів і становляться для кумулятивного списку полів. По-друге, у великих моделях використовується цінна пам'ять, що негативно впливає на інші програми та звіти, які використовують ті самі системні ресурси. Нарешті, у Microsoft 365 розмір SharePoint Online і Excel Web App обмежити розмір Excel до 10 МБ. Для моделей даних книги, які містять мільйони рядків, граничне значення 10 МБ буде досить швидко. Див. номери специфікацій і обмежень моделі даних.

У цій статті ви дізнаєтеся, як створити щільно побудовану модель, з якою легше працювати та використовувати менше пам'яті. Виконуючи цей час, ви дізнаєтеся про практичні поради в ефективному оформленні моделей, які сплачуватимуться за будь-яку модель, яку ви створюєте та використовуєте під час перегляду в програмі Excel 2013, Microsoft 365 SharePoint Online, на сервері Office Web Apps або в програмі SharePoint 2013 року.

Також рекомендуємо запустити засіб оптимізації розміру книги. Він проаналізує вашу книгу Excel і за можливості стисне її ще більше. Завантажте оптимізатор розміру книги.

У цій статті

Коефіцієнати стискання та ядра аналітики в пам'яті

Моделі даних у Excel для зберігання даних у пам'яті за допомогою оболонки аналітики пам'яті. Ядро впроваджує потужні методи стискання, щоб зменшити вимоги до сховища, зменшувати набір результатів, доки він не з'явить дріб вихідного розміру.

У середньому модель даних може бути на 7–10 разів менша за ті самі дані в її точці походження. Наприклад, якщо імпортувати дані з бази даних SQL Server розміром 7 МБ, модель даних у програмі Excel може легко сягати 1 МБ або менше. Ступінь стискання фактично досягнуто, здебагатно залежить від кількості унікальних значень у кожному стовпці. Що більше унікальних значень, то більше пам'яті для їх зберігання.

Чому ми говоримо про стискання та унікальні значення? Оскільки створення ефективної моделі, яка зменшує використання пам'яті, – це все про розгортання стискання, і найпростіший спосіб зробити це – позбутися незнайомих стовпців, особливо якщо ці стовпці містять велику кількість унікальних значень.

Примітка.: Відмінності у сховищі для окремих стовпців можуть бути величезними. У деяких випадках краще мати кілька стовпців з найнижчою кількістю унікальних значень, а не один стовпець із великою кількістю унікальних значень. У розділі оптимізації дати й часу докладно описано цей метод.

Жодних перебоїв у відсутньому стовпці для низького обсягу використання пам'яті

Найбільш ефективний пам'ять стовпець – це той, який ніколи не імпортувався в першу чергу. Якщо потрібно побудувати ефективну модель, погляньте на кожен стовпець і запитайте, чи він вносить свій внесок у аналіз, який потрібно виконати. Якщо це не так або ви не впевнені, не чіпайте його. За потреби нові стовпці можна додати в будь-який час.

Два приклади стовпців, які завжди потрібно виключити

Перший приклад пов'язано з даними, які походять із складу даних. У складі даних часто бувають артефакти процесів ETL, які завантажуються та оновлюють дані на складі. Такі стовпці, як "дата створення", "дата оновлення" та "запуск ETL", створюються під час завантаження даних. Жоден із цих стовпців у моделі не потрібен, і його не потрібно вибирати під час імпорту даних.

У другому прикладі пропускати стовпець первинного ключа під час імпорту таблиці фактів.

Багато таблиць, включно з таблицями фактів, мають первинні ключі. Для більшості таблиць, наприклад тих, які містять дані про клієнтів, працівників або збут, потрібно створити в моделі первинний ключ таблиці, щоб використовувати його для створення зв'язків у моделі.

Таблиці фактів відрізняються. У таблиці фактів первинний ключ використовується для унікального визначення кожного рядка. Хоча це необхідно для нормалізації, це не знадобляться в моделі даних, де потрібно, щоб лише ці стовпці використовувалися для аналізу або встановлення зв'язків між таблицями. Тому під час імпорту з таблиці фактів не включайте його первинний ключ. Первинні ключі в таблиці фактів споживають величезну кількість простору в моделі, але не надають жодних переваг, оскільки їх не можна використовувати для створення зв'язків.

Примітка.: У складах даних і багатовимірних базах даних великі таблиці, які складаються з переважно числових даних, часто називають таблицями фактів. До таблиць фактів зазвичай належать дані про продуктивність компанії або транзакції, наприклад точки даних про збут і витрати, які агрегуються та узгоджуються з підрозділами організації, продуктами, сегментами ринку, географічними регіонами тощо. Усі стовпці в таблиці фактів, які містять бізнес-дані або які можна використовувати для перехресного посилання на дані, збережені в інших таблицях, слід включити в модель для підтримки аналізу даних. Стовпець, який потрібно виключити, – це стовпець первинного ключа таблиці фактів, який складається з унікальних значень, які існують лише в таблиці фактів і ніде. Оскільки таблиці фактів настільки величезні, деякі з найбільших наближень до ефективності моделі обчислюються на основі виключення рядків або стовпців із таблиць фактів.

Виключення непотрібних стовпців

Ефективні моделі містять лише стовпці, які насправді потрібно в книзі. Щоб керувати додаванням стовпців до моделі, скористайтеся майстром імпорту таблиць у надбудові Power Pivot, щоб імпортувати дані, а не діалогове вікно "Імпорт даних" у Excel.

Під час запуску майстра імпорту таблиць слід вибрати таблиці, які потрібно імпортувати.

Майстер імпорту таблиць надбудови PowerPivot

Для кожної таблиці можна натиснути кнопку Попередній & фільтр і вибрати потрібні частини таблиці. Радимо спочатку зняти прапорці поруч із усіма стовпцями, а потім перевірити потрібні стовпці, перевіривши, чи вони необхідні для аналізу.

Область попереднього перегляду майстра імпорту таблиць

А як щодо фільтрування лише необхідних рядків?

Багато таблиць у корпоративних базах даних і складах даних містять історичні дані, накопичені за довгі періоди часу. Крім того, може виявитися, що потрібні таблиці містять відомості про області діяльності, які не потрібні для конкретного аналізу.

За допомогою майстра імпорту таблиць можна відфільтрувати історичні або не пов'язані дані, заощаджуючи тим самим багато місця в моделі. На зображенні нижче фільтр дати використовується, щоб отримати лише рядки, які містять дані за поточний рік, за винятком історичних даних, які не потрібні.

Область фільтра майстра імпорту таблиць

Що робити, якщо потрібен стовпець; чи можна зменшити його вартість простору?

Щоб краще стиснути стовпець, можна скористатися кількома додатковими методами. Пам'ятайте, що єдина характеристика стовпця, що впливає на стискання, – це кількість унікальних значень. У цьому розділі ви дізнаєтеся, як можна змінити деякі стовпці, щоб зменшити кількість унікальних значень.

Змінення стовпців дати й часу

У багатьох випадках стовпці дати й часу займає багато місця. На щастя, є кілька способів зменшити вимоги до сховища для цього типу даних. Ці методи залежать від способу використання стовпця, а також від рівня зручності під час створення SQL запитів.

Стовпці дати й часу містять частину дати й час. Якщо ви запитаєте, чи потрібен вам стовпець, поставте те саме запитання кілька разів для стовпця "Дата й час":

  • Чи потрібна частина часу?

  • Чи потрібна частина часу на рівні годин? хвилин? секунди? мілісекунд?

  • Чи є кілька стовпців дати й часу, тому що потрібно обчислити різницю між ними або просто агрегувати дані за роком, місяцем, кварталом тощо.

Спосіб відповіді на кожне з цих запитань визначає варіанти оцінок зі стовпцем Дата й час.

Усі ці рішення вимагають змінення SQL запиту. Щоб полегшити змінення запиту, слід відфільтрувати принаймні один стовпець у кожній таблиці. Якщо відфільтрувати стовпець, структура запиту змінюється з скороченого формату (SELECT *) на інструкцію SELECT, яка містить повні імена стовпців, які набагато простіше змінити.

Розгляньмо створені для вас запити. У діалоговому вікні Властивості таблиці можна перейти до редактора запитів і переглянути поточний SQL для кожної таблиці.

Стрічка у вікні надбудови PowerPivot, де відображено команду ''Властивості таблиці''

У вікні "Властивості таблиці" виберіть Редактор запитів.

Відкриття редактора запитів у діалоговому вікні ''Редагування властивостей таблиці''

У редакторі запитів відображається SQL який використовується для заповнення таблиці. Якщо під час імпорту відфільтровано будь-який стовпець, запит містить повні імена стовпців:

Запит SQL для завантаження даних

На відміну від цього, якщо ви повністю імпортували таблицю, не знявши прапорець навпроти жодного стовпця та не застосовуючи фільтри, запит відображатиметься як "Вибрати * з ", що складніше змінити:

Запит SQL за замовчуванням, який використовує стислий синтаксис

Змінення SQL запиту

Тепер, коли ви знаєте, як знайти запит, можна змінити його, щоб ще більше зменшити розмір моделі.

  1. Для стовпців, які містять грошові або десяткові дані, якщо десяткові розряди не потрібні, використовуйте цей синтаксис, щоб видалити десяткові розряди:

    "SELECT ROUND([Decimal_column_name];0)... .”

    Якщо потрібні лише центи, а не дроби центів, замініть 0 на 2. Якщо використовуються від'ємні числа, можна округлити до одиниць, десятків, сотень тощо.

  2. Якщо у вас є стовпець Datetime під назвою dbo. "Велике та нижче". [Дата й час] і частина часу не потрібна, використовуйте синтаксис, щоб позбутися часу.

    "SELECT CAST (dbo. "Велике та нижче". [Дата й час] як дата) AS [Дата, час]) "

  3. Якщо у вас є стовпець Datetime під назвою dbo. "Велике та нижче". [Дата й час] і вам потрібні як частини дати, так і час, використовуйте кілька стовпців у запиті SQL замість одного стовпця Дата й час.

    "SELECT CAST (dbo. "Велике та нижче". [Дата й час] як дата ) AS [Дата й час],

    datepart(hh, dbo. "Велике та нижче". [Дата й час]) as [Дата, час, години],

    datepart(mi, dbo. "Велике та нижче". [Дата й час]) as [Дата, хвилини часу],

    datepart(ss;dbo. "Велике та нижче". [Дата й час]) as [Дата в секундах],

    datepart(ms, dbo. "Велике та нижче". [Дата й час]) as [Дата, час у мілісекундах]"

    Використовуйте стільки стовпців, скільки потрібно зберігати кожну частину в окремих стовпцях.

  4. Якщо вам потрібні години та хвилини, а ви віддаєте перевагу їх поєднаним як стовпець часу, можна використати синтаксис:

    Timefromparts(datepart(hh, dbo. "Велике та нижче". [Дата й час]), datepart(mm, dbo. "Велике та нижче". [Дата й час])) as [Дата й час ГодинаМінут]

  5. Якщо у вас є два стовпці дати й часу, наприклад [Час початку] та [Час завершення], і насправді потрібно знайти різницю часу між ними в секундах як стовпець [Тривалість], видаліть обидва стовпці зі списку та додайте:

    "datediff(ss,[Дата початку],[Дата завершення]) як [Тривалість]"

    Якщо замість ss використовувати ключове слово ms, тривалість у мілісекундах

Використання обчислюваних мір DAX замість стовпців

Якщо ви вже працювали з мовою виразу DAX, можливо, уже відомо, що обчислювані стовпці використовуються для визначення нових стовпців на основі іншого стовпця в моделі, а обчислювані показники визначаються один раз у моделі, але обчислюються лише в разі використання у зведеній таблиці або іншому звіті.

Один метод збереження пам'яті полягає в заміні звичайних або обчислюваних стовпців на обчислювані міри. Класичний приклад: "Ціна за одиницю", "Кількість" і "Підсумок". Якщо у вас є всі три об'єми, можна заощадити місце, зберігаючи лише два й обчисливши третій за допомогою DAX.

Які 2 стовпці слід зберегти?

У наведеному вище прикладі збережіть Кількість і Ціна за одиницю. Ці два значення мають менше значень, ніж підсумок. Щоб обчислити підсумок, додайте обчислювану міру, наприклад:

"TotalSales:=sumx('Sales Table','Sales Table'[Unit Price]*'Sales Table'[Quantity])"

Обчислювані стовпці схожі на звичайні стовпці, в яких обидві стовпці займає місце в моделі. На відміну від цього, обчислювані міри обчислюються непотрібно.

Висновки

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

  • Видалення стовпців – це, звісно, найкращий спосіб заощадити місце. Виріште, які стовпці вам потрібні.

  • Іноді можна видалити стовпець і замінити його на обчислювану міру в таблиці.

  • Можливо, вам не знадобляться всі рядки таблиці. Рядки можна відфільтрувати в майстрі імпорту таблиць.

  • Загалом розбиття одного стовпця на кілька окремих частин – це чудовий спосіб зменшити кількість унікальних значень у стовпці. Кожна з частин матиме невелику кількість унікальних значень, а об'єднаний підсумок буде меншим за вихідний уніфікований стовпець.

  • У багатьох випадках окремі частини також потрібні, щоб використовувати їх як роздільники у звітах. За необхідності можна створити ієрархії з частин, наприклад Години, Хвилини та Секунди.

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

Тепер, щоб зменшити розмір книги, спробуйте запустити оптимізатор розміру книги. Він проаналізує вашу книгу Excel і за можливості стисне її ще більше. Завантажте оптимізатор розміру книги.

Пов’язані посилання

Специфікація й обмеження моделі даних

Оптимізатор розміру книги

Надбудова Power Pivot: ефективний аналіз і моделювання даних у програмі Excel

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

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

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×