O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Складиране на данни (data warehousing)

958 visualizações

Publicada em

Складирането на данни (data warehousing) и онлайн аналитичната обработка на данните (Online Analytical Processing – OLAP) са съществени елементи от системите за подпомагане на вземането на решения (Decision-Support Systems – DSS), които се поддържат от все повече системи за управление на бази от данни. Някои от изискванията на DSS системите са доста различни в сравнение с тези на традиционните приложения за онлайн обработка на транзакции (Online Transaction Processing – OLTP). При складирането на данни и OLAP технологиите са необходими инструменти за извличане, пречистване и зареждане на данните в склада за данни; многомерен модел на данните; клиентски инструменти за заявки и анализ на данни; допълнителни сървъри за повишаване на производителността на обработката за заявките; инструменти за управление на мета данни.

Publicada em: Dados e análise
  • Seja o primeiro a comentar

Складиране на данни (data warehousing)

  1. 1. СКЛАДИРАНЕ НА ДАННИ (DATA WAREHOUSING) доц. д-р Цветанка Георгиева-Трифонова
  2. 2. СКЛАДИРАНЕ НА ДАННИ – СЪДЪРЖАНИЕ  Преглед на складирането на данни  Склад за данни (data warehouse)  Архитектура на склад за данни  Проектиране на таблици-размерности и факт-таблици  Извличане, трансформиране и зареждане на данни 22Цветанка Георгиева Информационни системи
  3. 3. ПРЕГЛЕД НА СКЛАДИРАНЕТО НА ДАННИ 3  База от данни (database)  събиране, съхраняване и достъп до данни;  трансакционни информационни системи (transaction processing systems);  съгласуваност, възстановяване, минимизирането на конфликтите.  Склад за данни (data warehouse)  архивните, обобщени и обединени данни;  системи за онлайн аналитична обработка (online analytical processing – OLAP);  минимизиране на времето за отговор на заявки, осъществяващи достъп до огромно количество данни и извършващи много сканирания, съединения и обобщавания. 33Цветанка Георгиева Информационни системи
  4. 4. СКЛАД ЗА ДАННИ - ДЕФИНИЦИЯ  Складът за данни се дефинира като:  тематично ориентирана, интегрирана, времевариантна, неизменчива съвкупност от данни, подпомагаща вземането на решения;  база от данни, която предоставя достъп до цялата информация на дадена организация;  съхранява информация като хранилище за данни и дава на потребителите достъп до данни за извършване на изследователски анализ. 44Цветанка Георгиева Информационни системи W. H. Inmon, Tech Topic: What is a Data Warehouse?, Prism Solutions, Inc. 1995
  5. 5. Складовете за данни и OLTP базите от данни имат различно предназначение, което определя и различията в тяхното проектиране Склад за данни OLTP база от данни Проектирана за анализ на бизнес измерения по категории и атрибути Проектирана за бизнес операции в реално време Оптимизирана за масови зареждания на данни и сложни, непредвидими заявки, които осъществяват достъп до много от редовете в отделните таблици Оптимизирана за обичайно множество от трансакции, обикновено модифициращи или извличащи в даден момент по един ред от съответните таблици Зареждана със съвместими и валидни данни; не изисква проверка на валидността в реално време Оптимизирана за проверка на валидността на въвежданите данни по време на трансакция Поддържа няколко едновременни потребители, отнасящи се до OLTP Поддържа хиляди едновременни потребители 55Цветанка Георгиева Информационни системи СКЛАД ЗА ДАННИ (2)
  6. 6. АРХИТЕКТУРА НА СКЛАД ЗА ДАННИ 6  Източници на данни  Реализиране на добре работеща система за събиране, съхраняване и осигуряване на достъп до първичната информация.  Предварителна обработка  Извличане на данните;  Използват се данни от разнообразни източници;  Решаване на проблеми, свързани с имена, мерки, релевантност, др.  Трансформиране на данните;  Откриване и премахване на грешни данни;  Обработка на липсващи данни;  Откриване и анализиране на силно отличаващите се стойности (outliers), др.  Зареждане на данните в куб с данни;  Периодично обновяване.  Съхраняване на данните  Инструменти за крайните потребители  Анализи, заявки, отчети, добиване на данни. 66Цветанка Георгиева Информационни системи
  7. 7. АРХИТЕКТУРА НА СКЛАД ЗА ДАННИ (2) 7
  8. 8. МНОГОМЕРЕН МОДЕЛ НА ДАННИТЕ  Включва няколко числови мерки (measures), които подлежат на анализ (например продадени количества, цени);  Всяка мярка зависи от множество от размерности (dimensions).  Физически се реализира посредством два типа таблици:  таблици-размерности (таблици на размерностите; dimension tables);  факт-таблици (таблици на фактите; таблици за фактическите стойности; fact tables). 88Цветанка Георгиева Информационни системи
  9. 9. МНОГОМЕРЕН МОДЕЛ НА ДАННИТЕ (2)  Схема “звезда” (star schema) 99Цветанка Георгиева Информационни системи
  10. 10. МНОГОМЕРЕН МОДЕЛ НА ДАННИТЕ (3)  Схема “снежинка” (snowflake schema) 1010Цветанка Георгиева Информационни системи
  11. 11. ПРОЕКТИРАНЕ НА ТАБЛИЦИ-РАЗМЕРНОСТИ И ФАКТ- ТАБЛИЦИ  Ключ-заместител (surrogate key)  Първичния ключ за една таблица-размерност;  Независим е от всякакви ключове, осигурени от оперативните бази от данни-източници;  Факт-таблицата съдържа колони с ограничения външен ключ, рефериращи първичните ключове на всяка размерност. 1111Цветанка Георгиева Информационни системи
  12. 12. ПРОЕКТИРАНЕ НА ТАБЛИЦИ-РАЗМЕРНОСТИ И ФАКТ- ТАБЛИЦИ (2) Ключове-заместители в таблиците-размерности 1212Цветанка Георгиева Информационни системи
  13. 13. ПРОЕКТИРАНЕ НА ТАБЛИЦИ-РАЗМЕРНОСТИ И ФАКТ- ТАБЛИЦИ (3)  Предимства от използването на ключове-заместители  защитават системата от промени в системата-източник;  позволяват на системата да интегрира данни от множество системи-източници;  осигуряват възможност за проследяване на промените в атрибутите на размерностите във времето;  използването на ключове-заместители от целочислен тип води до подобряване на производителността на обработката на заявките. 1313Цветанка Георгиева Информационни системи
  14. 14. ПРОЕКТИРАНЕ НА ТАБЛИЦИ-РАЗМЕРНОСТИ И ФАКТ- ТАБЛИЦИ (4)  Бавно променящи се размерности (slowly changing dimensions – SCDs)  размерности, притежаващи атрибут, стойностите на който допускат промени;  Подходи за проектиране, позволяващи да се реализират бавно променящи се размерности:  Тип 1 (Type 1) – припокриване на записа в таблицата- размерност;  Тип 2 (Type 2) – добавяне на нов запис в таблицата- размерност;  Тип 3 (Type 3) – създаване на ново поле в таблицата- размерност. 1414Цветанка Георгиева Информационни системи
  15. 15. БАВНО ПРОМЕНЯЩИ СЕ РАЗМЕРНОСТИ ТИП 1 – ПРИМЕР UPDATE Subjects SET SubjectName = 'Бази от данни' WHERE SubjectName = 'Проектиране на бази от данни' 1515Цветанка Георгиева Информационни системи
  16. 16. БАВНО ПРОМЕНЯЩИ СЕ РАЗМЕРНОСТИ ТИП 2 – ПРИМЕР INSERT INTO Subjects (SubjectID, SubjectName, Current_row, Start_Date, End_Date) SELECT SubjectID,'Бази от данни','True',GetDate(),NULL FROM Subjects WHERE SubjectName = 'Проектиране на бази от данни' AND Current_row = 'True' AND End_Date IS NULL UPDATE Subjects SET Current_row = 'False', End_Date = GetDate() WHERE SubjectName = 'Проектиране на бази от данни' AND Current_row = 'True' 1616Цветанка Георгиева Информационни системи
  17. 17. БАВНО ПРОМЕНЯЩИ СЕ РАЗМЕРНОСТИ ТИП 3 – ПРИМЕР UPDATE Subjects SET CurrentSubjectName = 'Бази от данни' WHERE SubjectName = 'Проектиране на бази от данни' 1717Цветанка Георгиева Информационни системи
  18. 18. ИЗВЛИЧАНЕ, ТРАНСФОРМИРАНЕ И ЗАРЕЖДАНЕ НА ДАННИ  Обработка на таблиците-размерности  Попълване на новите данни в таблиците-размерности на базата от данни на склада за данни INSERT INTO StudentsDW..Subjects (SubjectID, SubjectName) SELECT d.SubjectID, d.SubjectName FROM StudentsDB..Subjects d LEFT JOIN StudentsDW..Subjects w ON d.SubjectID = w.SubjectID WHERE w.SubjectID IS NULL 1818Цветанка Георгиева Информационни системи
  19. 19. ИЗВЛИЧАНЕ, ТРАНСФОРМИРАНЕ И ЗАРЕЖДАНЕ НА ДАННИ (2)  Попълване на новите редове в таблицата-размерност за време периодично INSERT INTO Dates (Date, Semester, SchoolYear) VALUES ('2009/01/01', 'зимен', '2009/2010') INSERT INTO Dates (Date, Semester, SchoolYear) VALUES ('2009/01/01', 'летен', '2009/2010') 1919Цветанка Георгиева Информационни системи
  20. 20. ИЗВЛИЧАНЕ, ТРАНСФОРМИРАНЕ И ЗАРЕЖДАНЕ НА ДАННИ (3)  Управляване на Тип 1 бавно променящи се размерности  Пример – поддържане на атрибута TeacherName на таблицата-размерност Teachers: CREATE PROCEDURE Refresh_TeacherName_DW AS UPDATE StudentsDW..Teachers SET TeacherName = t.TeacherName FROM StudentsDB..Teachers t INNER JOIN StudentsDW..Teachers w ON t.TeacherID = w.TeacherID WHERE t.TeacherName <> w.TeacherName 2020Цветанка Георгиева Информационни системи
  21. 21.  Управляване на Тип 2 бавно променящи се размерности  Пример – поддържане на атрибута учебен предмет SubjectName на таблицата-размерност Subjects. CREATE PROCEDURE Refresh_SubjectName_DW AS INSERT INTO Subjects (SubjectID, SubjectName, Current_row, Start_Date, End_Date) SELECT s.SubjectID,s.SubjectName,'True',GetDate(),NULL FROM StudentsDB..Subjects s INNER JOIN StudentsDW..Subjects w ON s.SubjectID = w.SubjectID WHERE s.SubjectName <> w.SubjectName AND w.Current_row = 'True' AND End_Date IS NULL ... 2121Цветанка Георгиева Информационни системи
  22. 22.  Управляване на Тип 2 бавно променящи се размерности  Пример – поддържане на атрибута учебен предмет SubjectName на таблицата-размерност Subjects. ... UPDATE Subjects SET Current_row = 'False', End_Date = GetDate() FROM StudentsDB..Subjects s INNER JOIN StudentsDW..Subjects w ON s.SubjectID = w.SubjectID WHERE s.SubjectName <> w.SubjectName AND w.Current_row = 'True' 2222Цветанка Георгиева Информационни системи
  23. 23. ИЗВЛИЧАНЕ, ТРАНСФОРМИРАНЕ И ЗАРЕЖДАНЕ НА ДАННИ (4)  Управляване на Тип 3 бавно променящи се размерности  Пример – поддържане на атрибута SubjectName на таблицата-размерност Subjects: CREATE PROCEDURE Refresh_SubjectName_DW_Type3 AS UPDATE Subjects SET CurrentSubjectName = s.SubjectName FROM StudentsDB..Subjects s INNER JOIN StudentsDW..Subjects w ON s.SubjectID = w.SubjectID WHERE s.SubjectName <> w.CurrentSubjectName OR w.CurrentSubjectName IS NULL 2323Цветанка Георгиева Информационни системи
  24. 24. ИЗВЛИЧАНЕ, ТРАНСФОРМИРАНЕ И ЗАРЕЖДАНЕ НА ДАННИ (5)  Обработка на факт-таблиците  За да бъдат получени стойностите на ключовете- заместители за факт-таблицата, се налага поддържане на допълнителна таблица за обработка (staging table).  Пример 2424Цветанка Георгиева Информационни системи
  25. 25. ИЗВЛИЧАНЕ, ТРАНСФОРМИРАНЕ И ЗАРЕЖДАНЕ НА ДАННИ (6)  Попълване на новите данни във факт-таблицата в базата от данни на склада за данни:  Първият етап включва:  въвеждане на новите данни в допълнителната таблица за обработка;  получаването на стойностите на ключовете- заместители с помощта на стойностите на първичните ключове на таблиците от OLTP базата от данни, които се съхраняват в съответните таблици-размерности.  На втория етап е необходимо всички нови редове в таблицата за обработка (въведени след първия етап) да се добавят във факт-таблицата. 2525Цветанка Георгиева Информационни системи
  26. 26. CREATE PROCEDURE InsertIntoTeach_fact_Staging AS INSERT INTO Teach_fact_Staging (SpecialityID, TeacherID, SubjectID, Date, LecturesTotal, ExercisesTotal) SELECT t.SpecialityID, t.TeacherID, t.SubjectID, CONVERT(char(14), GetDate(), 120) + '0:00', SUM(t.Lectures), SUM(t.Exercises) FROM StudentsDB..Teach t LEFT JOIN Teach_fact_Staging ts ON t.SpecialityID = ts.SpecialityID AND t.TeacherID = ts.TeacherID AND t.SubjectID = ts.SubjectID AND DATEDIFF(day, GetDate(), ts.Date) = 0 WHERE ts.SpecialityID IS NULL GROUP BY t.SpecialityID, t.TeacherID, t.SubjectID UPDATE Teach_fact_Staging SET SpecialityKey = s.SpecialityKey FROM Teach_fact_Staging t INNER JOIN Specialities s ON t.SpecialityID = s.SpecialityID WHERE t.SpecialityKey = 0 ... Първи етап Аналогично за останалите размерности
  27. 27.  Попълване на новите данни във факт-таблицата в базата от данни на склада за данни – втори етап CREATE PROCEDURE InsertInto_Teach_fact AS INSERT INTO Teach_fact (SpecialityKey, TeacherKey, SubjectKey, DateKey, LecturesTotal, ExercisesTotal) SELECT ts.SpecialityKey, ts.TeacherKey, ts.SubjectKey, ts.DateKey, ts.LecturesTotal, ts.ExercisesTotal FROM Teach_fact_Staging ts LEFT JOIN Teach_fact tw ON ts.SpecialityKey = tw.SpecialityKey AND ts.TeacherKey = tw.TeacherKey AND ts.SubjectKey = tw.SubjectKey AND ts.DateKey = tw.DateKey WHERE tw.SpecialityKey IS NULL 2727Цветанка Георгиева Информационни системи
  28. 28. ЛИТЕРАТУРА  Connolly T., C. Begg, Database Systems: A Practical Approach to Design, Implementation and Management, Fourth edition, Addison-Wesley, 2004  Inmon W. H., Building the Data Warehouse, Wiley Publishing, Inc., 2005  Kimball R., The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling, Wiley, 3rd edition, 2013  Mundy J., W. Thornthwaite, R. Kimball, The Microsoft Data Warehouse Toolkit: With SQL Server 2005 and the Microsoft Business Intelligence Toolset, John Wiley & Sons, 2006  Rainardi V., Building a Data Warehouse: With Examples in SQL Server, Apress, 2007 2828Цветанка Георгиева Информационни системи
  29. 29. 2929Цветанка Георгиева Информационни системи Цветанка Георгиева-Трифонова, 2017 Някои права запазени. Презентацията е достъпна под лиценз Creative Commons, Признание-Некомерсиално-Без производни, https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode

×