Відповіді:
Подумайте про процес чи подію, які ви хочете проаналізувати.
Скажімо, ви будували Lougle Analytics і хочете проаналізувати відвідування (на відміну від запитів на одній сторінці) вашого сайту. Відвідування веб-сайту - це процес.
Таблиця фактів представляє процес або подію, яку ви хочете проаналізувати, в цьому випадку це список відвідувань сайту. Ви можете мати стільки таблиць фактів, скільки хочете, по одній на процес чи подію.
Які речі можуть бути корисні вам для аналізу відвідувань сайту?
Технічно ви можете помістити це все в одну таблицю - як у Excel, але це швидко отримає велику кількість, тому ми зробимо ОДИН рівень нормалізації. Розмірний дизайн часто просто "помістіть все необхідне для аналізу в одну велику таблицю", а потім нормалізуйте один рівень.
Так ваша таблиця фактів буде виглядати приблизно так:
web_browser_key bigint
ip_address_key bigint
start_date_key int
referring_page_key bigint
landing_page_key bigint
exit_page_key bigint
duration_seconds int
number_of_pages_visited int
Він має купу ключових значень, які посилаються на значення в інших таблицях †, і два не-ключі. Неключі - це числові значення і називаються заходами . Чи можете ви взяти середнє значення торгової марки веб-браузера? Ні, значить, це вимір. Чи можете ви взяти середню тривалість відвідування? Так, так це міра.
Інші таблиці називаються таблицями розмірів , і ip_address
таблиця розмірів може виглядати приблизно так:
ip_address_key bigserial primary key, /* use meaningless surrogate keys */
ip_address inet unique,
country text,
division text,
locality text,
latitude numeric(8,6),
longitude numeric(9,6)
Зауважте, що це не нормалізується: країна може бути похідною від міста (місцевості). Однак у сховищі даних ми спочатку дбаємо про полегшення аналізу . Полегшуючи аналіз, я маю на увазі уникання глибоких приєднань.
Зауважте, що деякі дані таблиці вимірів є ієрархічними : країна> поділ> місцевість. Ваш сервер OLAP (сподіваємось) розуміє ієрархії для підтримки операцій розгортання.
Логічний куб - це лише сукупність вимірів і заходів, з якими ви працюєте. На відміну від куба Рубіка, він може мати більше 3 розмірів. Просто подумайте про розмірність як стовпець у наборі даних.
OLAP - це набір операцій, які ви можете виконати проти набору даних, таких як повороти, нарізки, нарізки, свердління. Подумайте про вивідні таблиці Excel. Сервер OLAP полегшує операції OLAP.
† зазвичай без сторонніх ключів
На зображенні нижче наведено приклад основної схеми зірок. Параметри - це таблиці Dim_Tables.
Це, як правило, значення, за якими потрібно проаналізувати дані. Отже, ви хочете переглянути конкретні продажі товарів у певній країні протягом певного діапазону дат.
У таблиці fact_sales у вас є лише той захід, який є Units_Sold.
Заходи (на найпростішому рівні) - це лише ті речі, які ви хочете об'єднати, аналізуючи на основі критеріїв у вимірах.
Якщо є щось інше, що ви хочете знати, будь ласка, повідомте мене про це.
city
у ваших схемах немає жодної згадки , тому, коли ви говорите,country could be derived from city
я не позитивний, що ви маєте на увазі.