Задание 2 Модульное тестирование Хранилищ Данных
Задания для отборочного тура За каждое задание, выполненное даже частично начисляются баллы. Необязательно решить все приведенные задания. Отбор будет осуществляться по набранным баллам. Задание «Подготовка к Хакатону» обязательно для выполнения, чтобы участвовать в Хакатоне. Формат решения: По каждому пункту 1. Работающая программа/скрипт 2. Исходный код и все линкующиеся библиотеки, a. Инструкции по сборке; сборка должна осуществляться успешно. 3. Эксплуатационная документация a. С описанием допущений и ограничений 4. Тестовые данные и/или скрипты создающие тестовые данные (таблицы, данные, …) Задание 0 Разминка по Базам Данных
Задание 0.1 Дубли 2 балла. В таблице две колонки с натуральными числами – на SQL найти дубли. Задание 0.2 Выборка клиентов без счетов 3-6 баллов. Есть таблица с клиентами с id_client и таблица со счетами, связанная с таблицей клиентов по id_client. 1. Предложить три варианта запроса на SQL для поиска и удаления счетов, у которых нет клиентов. 3 балла 2. В таблице клиентов 100 млн. записей, в таблице счетов 1 млрд. a. Выбрать и оптимизировать самый производительный запрос. 3 балла Задание 0.3 3. Колодцы на планете до 10 баллов. 1. Спроектировать БД для хранения карты планеты, разбитой на сектора (заданного размера, например, 1км*1км) 1 балл 2. Сектор с колодцем помечается признаком – подготовить тестовые данные 2 балла 3. Разработать несколько вариантов поиска ближайшего колодца (расстояние по прямой) (на вход: сектор текущего местоположения) 2 балла a. Выбрать самый оптимальный из вариантов – обосновать 1 балл b. Оптимизировать выбранный алгоритм 2 балла c. Оптимизировать структуру хранения 2 балла
Задание 1 Разработка Хранилищ Данных
Задание 1.1 Версионный контроль вообще 10 баллов. Написать программу, которая для определенной ветки Git (любой системы контроля версий): определяет и выдает, в виде отчета, список всех удаленных, измененных и добавленных файлов. (если файл был сначала добавлен, потом удален – его выдавать не надо). Придумать: как отображать переименованные файлы. Можно сделать два варианта – либо за всю историю ветки, либо за какой-то интервал дат.
Задание 1.2 Версионный контроль Баз Данных 20 баллов. Есть таблица TAB в схеме PROM, содержит миллион записей. Есть таблица TAB в схеме DEV, с более новой структурой, с данными, которые переносить на PROM не следует.
Необходимо написать программу или скрипт, которая по системному словарю СУБД будет находить различия между таблицами и генерировать скрипт преобразования структуры из старой в новую.
В скрипте должны быть команды: - ALETER TABLE TAB CHANGE COLUMN… - ALETER TABLE TAB ADD COLUMN… - команды (пере)создания индексов и ключей; - команды переноса данных; - ALETER TABLE TAB DROP COLUMN - … Данными командами не обязательно ограничиваться, и можно предложить альтернативные.
Обязательно учесть следующий случай: Расщепляется поле FULL_PHONE на PHONE_PREFIX и PHONE_NUMBER: ALTER TABLE TAB ADD COLUMN PHONE_PREFIX VARCHAR(10); ALTER TABLE TAB ADD COLUMN PHONE_NUMBER VARCHAR(20); UPDATE TAB SET PHONE_PREFIX = SUBSTR(FULL_PHONE, 1, 10), PHONE_NUMBER = SUBSTR(FULL_PHONE, 11) WHERE FULL_PHONE is not null; ALTER TABLE TAB DROP COLUMN FULL_PHONE;
Дополнительные баллы (10): написать скрипт переноса данных с PROM на DEV. На DEV потенциально изменённая структура БД. Учесть изменение типа поля и расщепление полей (в ту и обратную сторону). Дополнительные баллы (5): написать скрипт проверки переноса данных.
Задание 1.3 Версионный контроль Баз Данных – сложная от 63 баллов Есть несколько команд, разрабатывающих одновременно, как DDL, так и DML, хранимые процедуры, … Предложить процесс организации стендов разработки и версионного контроля кода.
И реализовать скрипты (за каждый скрипт и его функциональность – дополнительные баллы): - merge DDL и прочего кода (10); - поиска конфликтов (3); - автоматического решения конфликтов (20); - генерации alter скриптов с безопасной миграцией данных на новую версию БД (20); - контроль корректности перехода и переноса данных на новую версию БД (10); - какие еще скрипты для автоматизации рутинных задач, ускорения разработки и повышения качества можете предложить (решает жюри). Описать допущения и требования к организации процесса и функционирования скриптов.
Задание 1.4 Версионный контроль Хранилищ Данных макс 115 В дополнение к контролю версий Базы данных, разработать подход и необходимые скрипты для проверок, переноса, merge, … кода для компонент: · ETL типа Informatica Power Center, формат файлов: xml; (10) o ETL/ELT на хранимых процедурах; (5) · скрипты на Python; (5) · jar, разработанные на Java; (5) · отчеты на SAP Business Object (можно использовать его API); (15) o предложить реализацию сравнения/выявления изменений между biar и между universe разных версий (15) · отчеты на Qlik View и Sense. (15) Скрипты для создания инкрементальных патчей (дистрибутивов). (20) Скрипты для создания кумулятивных патчей (дистрибутивов). (25) Описать допущения и требования к организации процесса и функционирования скриптов.
Задание 2 Модульное тестирование Хранилищ Данных Задание 2.1 Организация модульного тестирования Хранилищ Данных (100) · Предложить подходы к тестированию хранилища данных, а именно: · Какие виды тестов можно реализовать для основных сущностей хранилища: таблиц, представлений, процедур? · Какие виды тестов для загрузки данных (ETL), расчёта витрин и построения отчетов? · По какому принципу разделять хранилище данных на модули? · Осуществить разделение на модули: o Над какими модулями, их интерфейсами, и на каком этапе, проводить модульное тестирование? o Упорядочить по убыванию приоритета необходимости тестирования. · Организация стендов и контроля версий для разработки хранилища данных несколькими командами; для модульного тестирования, интеграционного тестирования, …
· С чем (какими данными, эталонами, прототипами и т.д.) проводить сравнение полученных результатов при проведении модульных тестов? o Будут ли различия при тестировании нового функционала или изменении старого? · Как можно протестировать датафикс (только изменение данных) в хранилище данных?
Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|