2015 Теормин (1185421), страница 2
Текст из файла (страница 2)
Например, элементы Q1 CY 2004, Q2 CY 2004, Q3 CY 2004 и Q4 CY 2004 являются членами уровня Calendar Quarter (Календарный квартал)
В MDX каждый член иерархии представлен уникальным именем
уникальные имена помогают идентифицировать определенные члены
Уникальное имя члена определяется свойствами (property) измерения внутри куба, такими как MemberUniqueNameStyle и HierarchyUniqueNameStyle
Можно получить доступ к члену измерения, используя путь по имени
с использованием имени члена
или путь по ключу
с использованием ключа члена
Используя для создания кубов и измерений задаваемые по умолчанию свойства, можно получить доступ к члену измерения с помощью имени этого измерения, имени иерархии и имени уровня
Например, следующая строка представляет член Q1 CY 2004 в иерархии Calendar [Date].[Calendar].[Calendar Quarter].[Q1 CY 2004]
Имена измерений, иерархий, уровней и членов заключены в квадратные скобки. В принципе не всегда нужно заключать эти имена в квадратные скобки, но если в имени встречается пробел, цифра, или имя представляет собой ключевое слово MDX, то квадратные скобки необходимо использовать
Второй вариант [Date].[Calendar].[CY 2004].[H1 CY 2004].[Q1 CY 2004]
Позволяет вам ясно видеть навигационный путь к члену иерархии, поскольку в нем представлены все элементы пути
Все рассмотренные форматы доступа к членам иерархии использовали в своем составе полное имя члена
[Date].[Calendar].[Calendar Quarter].&[2004]&[1]
В этом варианте представления члена иерархии используется путь по ключу, в котором вы можете видеть ключевые составляющие имени члена, представленные в форме &[ЧастьИмени]
При использовании пути по ключу всегда используется символ & перед ключевыми частями имени члена
Ячейка представляет собой элемент, из которого можно извлечь данные, соответствующие пересечению членов измерения
Число ячеек внутри куба данных определяется числом иерархий в каждом из измерений куба данных и числом членов каждой иерархии
Можно считать, что ячейки хранят значения всех размерностей в кубе
Если для какой-нибудь размерности недоступно значение данных в ячейке, считается, что соответствующим значением размерности является значение Null (пустое значение)
16. MDX. Понятие кортежа.
Все, что требуется, – это извлечь из куба данных величину “Internet Sales Amount” (“Объемы продаж”), основываясь на условие, которое уникально идентифицирует ячейку, содержащую значение 966 SELECT Measures.[Internet Sales Amount] on COLUMNS FROM [Adventure Works] WHERE ( [Date].[Calendar].[Calendar Quarter].&[2003]&[2], [Product].[Product Line].[Mountain], [Customer].[Country].[Australia])
Выражение на языке MDX, которое уникально идентифицирует ячейку, называется кортежем (tuple)
Кортеж необязательно должен явно содержать члены всех измерений куба данных
Вот три примера кортежей, основанных на кубе данных Adventure Works ([Customer].[Country].[Australia]) ([Date].[Calendar].[2004].[H1 CY 2004].[Q1 CY 2004], [Customer].[Country].[Australia]) ([Date].[Calendar].[2004].[H1 CY 2004].[Q1 CY 2004], [Product].[Product Line].[Mountain], [Customer].[Country].[Australia])
Кортежи 1 и 2 содержат члены не всех измерений рассматриваемого куба данных
они представляют разделы куба
раздел куба, идентифицируемый кортежем, называют слоем (slice), или срезом данных
Набор (set) – это совокупность кортежей, которые определены с использованием одинакового количества одних и тех же измерений
Набор обычно заключается в фигурные скобки ({})
Кортежи (Customer.Country.Australia) и (Customer.Country.Canada) ссылаются на одно и то же измерение
Совокупность этих двух кортежей является корректным набором, для определения которого используется следующая запись {(Customer.Country.Australia), (Customer.Country.Canada)}
17. MDX. Примеры MDX-запросов.
Общий синтаксис: [WITH <formula_expression> [, <formula_expression> ...]] SELECT [<axis_expression>, [<axis_expression>...]] FROM [<cube_expression>] [WHERE [slicer_expression]]
Разделы WITH и WHERE являются необязательными
Простейший запрос над нашим кубом выглядит следующим образом: SELECT FROM [Adventure Works]
Используется заданный по умолчанию член Measures, являющийся одной из размерностей куба
Результатом запроса является значение, полученное путем агрегации значений всех относящихся к этой размерности ячеек куба для заданных по умолчанию значений каждого измерения куба
SELECT [<axis_expression>, [<axis_expression>...]]
Выражение axis_expression ссылается на измерение, представляющее извлекаемые данные
Эти измерения называют осевыми измерениями (axis dimensions), поскольку представленные ими данные проецируются на соответствующие оси
<axis_expression> := <набор> ON Axis (номер оси)
SELECT Measures.[Internet Sales Amount] ON COLUMNS, [Customers].[Country].MEMBERS on ROWS, [Product].[Product Line].MEMBERS on PAGES
FROM <cube_expression>
Выражение cube_expression обозначает имя куба или подраздела куба, из которого нужно извлечь данные
Куб, указанный в разделе FROM, называется контекстом куба (cube context), и запрос MDX выполняется внутри этого контекста
SELECT [Measures].[Internet Sales Amount] ON COLUMNS FROM [Adventure Works]
WHERE [slicer_expression]
Раздел WHERE ограничивает набор результатов запроса с помощью некоторого критерия
SELECT Measures.[Sales] ON COLUMS, [Product].[Product Line].MEMBERS on ROWS FROM ProductsCube WHERE ([Product].[Color].[Silver])
Раздел WHERE определяет срез куба, содержащий информацию о товарах серебристого цвета
WITH – пользовательские вычисления
WITH SET [EUROPE] AS '{[Customer].[Country].[Country].&[France], [Customer].[Country].[Country].&[Germany], [Customer].[Country].[Country].&[United Kingdom]} ‘ SELECT Measures.[Internet Sales Amount] on COLUMNS, [EUROPE] ON ROWS FROM [Adventure Works]
WITH MEMBER [MEASURES].[Profit] AS '([Measures].[Internet Sales Amount] - [Measures].[Total Product Cost])‘ SELECT [MEASURES].[Profit] ON COLUMNS, [Customer].[Country].MEMBERS ON ROWS FROM [Adventure Works]
WITH SET [ProductOrder] AS 'Order([Product].[Product Line].members, [Internet Sales Amount], BDESC)‘ MEMBER [Measures].[ProductRank] AS 'Rank([Product].[ProductLine].CURRENTMEMBER, [ProductOrder])‘ SELECT {[ProductRank],[Sales Amount]} on COLUMNS, [ProductOrder] on ROWS FROM [Adventure Works]
Лекция 4.
18. ETL. Основные понятия и принципы.
ETL – extraction, transformation, loading
Extract, Transform, Load - извлечение, преобразование и загрузка (данных). Чаще всего применяется в контексте построения и поддержки хранилищ данных (datawarehouse)
Архитектуру хранилища данных можно представлять в виде совокупности трёх областей:
источники данных (совокупность таблиц базы данных OLTP, нормативных данных и т.д.), позволяющие создать многомерную модель данных с требуемыми измерениями – source
промежуточная область (совокупность таблиц, использующихся исключительно как промежуточные таблицы при загрузке хранилища данных) – staging area
приёмник данных – target
Движение данных от источника к приёмнику называют потоком данных
Требуемые потоки данных формирует и описывает аналитик
Процесс перегрузки данных – это реализация потока данных от единственного набора данных источника до одного или нескольких наборов данных хранилища данных
19. ETL. Работа с данными. Основные стадии процесса загрузки данных. Преобразование данных.
Извлечение данных - Результатом работы на этой стадии является перегрузка данных из источника в реляционную СУБД, в промежуточную область
-
Первый этап перегрузки данных – выгрузка информации из источника данных к программе-обработчику, аналитику или на сервер перегрузки данных (download)
-
Структурирование данных (Structuring) -Источники данных, поступающие на вход ETL-процессов, потенциально имеют произвольную внутреннюю структуру, в общем случае далёкую от табличной. В связи с этим данные, находящиеся в источнике, требуется сначала упорядочить и привести к виду, пригодному к загрузке в таблицу SQL по принципу «один к одному»
-
Повышение качества данных (refinement) - Структурированные данные могут потребовать дополнительной обработки (очистки, фильтрации, согласования, и т.д.) с целью повышения их качества
-
Пересылка данных (Transfer) - При проектировании процедур извлечения данных нужно учитывать местонахождение источников данных и условия обеспечения безопасности при пересылке и обработке данных
-
Импорт данных в СУБД (Upload)
Преобразование данных (transform)
Физическая модель хранилища данных часто не совпадает со структурой оперативных источников данных
Это вызвано повышенными требованиями к качеству структурирования информации и особенностями моделирования хранилищ данных
Поэтому возникает потребность в преобразовании данных, которые поступают из оперативных источников, в структуры, соответствующие таблицам хранилища данных
Преобразование данных сводится к нескольким элементарным операциям:
Вычисление – это операция, результат которой функционально зависит от её параметров, и сама операция может быть реализована на уровне скалярных функций
Агрегация – это операция уровня агрегатных функций (функции над множествами)
Статистика – операция получения данных на основе количественной и/или исторической информации; результат статистической функции напрямую не зависит от конкретных значений полей в таблице
Согласование ключей – операция приведения идентификаторов набора данных источника к виду, согласованному с идентификаторами хранилища данных
Генерация суррогатных ключей – операция сопоставления естественному ключу (чаще всего – составному) уникального суррогатного ключа - идентификатора набора данных хранилища данных
20. SSIS. Основные понятия и принципы.
SQL Server Integration Services (SSIS) входит в состав программного обеспечения Microsoft SQL Server и предназначен для выполнения различных задач категории миграции данных
SSIS – это платформа разработки и поддержки выполнения приложений интеграции данных и потоков задач (workflow)
SSIS используется как быстрое и гибкое средство поддержки хранилищ данных, используемое для извлечения, преобразования и загрузки данных
К числу других важных понятий SSIS относятся следующие понятия:
-
Подключение (connection) - Подключение содержит информацию, требуемую для того, чтобы можно было подключиться к конкретному источнику данных. Из задач можно ссылаться на подключение по имени, что позволяет изменять или конфигурировать детали подключений во время выполнения
-
Обработчики событий (event handlers) - Поток работ можно проектировать в расчете на наличие ряда событий, которые могут произойти в разных ситуациях. Поэтому задачи могут выполняться в контексте того, что случается в пакете, примером чего служит очистка данных после проявления ошибки
-
Параметры (parameters) (начиная с SQL Server 2012 Integration Services) - Наличие параметров позволяет присваивать значения свойствам внутри пакетов во время выполнения пакетов. Могут иметься параметры уровня проектов и уровня пакетов. Если пакет внедряется с использованием модели внедрения пакетов, вместо параметров можно использовать конфигурации
-
Ограничения предшествования - Задачи связываются ограничениями предшествования. Ограничение предшествования определяет порядок выполнения задач. Задачи могут выполняться в параллель, если ограничения это не запрещают. Совместно с задачами ограничения предшествования определяют поток работ в пакете
-
Задача – атомарная единица работы, выполняющая некоторое действие. Имеется несколько готовых для использования задач от задачи копирования файлов до задачи преобразования данных. Задача преобразования данных копирует данные, именно она поддерживает основные функции ETL
-
Переменные - В задачах могут использоваться переменные для сохранения результатов и т.д.
21. SSIS. Виды преобразований.
В последних релизах MS SQL Server BIDS сменил название на SQL Server Data Tools - Business Intelligence (SSDT-BI)
Преобразования – элементы потока работ пакета, агрегирующие, сливающие, распределяющие и модифицирующие данные
-
Преобразования уровня BI
-
Преобразования уровня строк
-
Преобразования уровня наборов строк
-
Преобразования расщепления и соединения
-
Преобразования аудита
Лекция 5.
22. Что такое большие данные. Правило четырёх «V».
См. первый вопрос.