Тестовое задание
по направлению
Data Engineering
Ниже вы найдёте текст тестового задания.
После выполнения вам необходимо загрузить результат в облако и отправить ответ, заполнив форму на этом сайте.
Подписывайтесь, чтобы быть в курсе всех обновлений, а также иметь возможность задавать вопросы.
Telegram-канал ASPEX EDU
Задание
Дано:
Сервер БД – MS SQL. Три таблицы, созданные следующими командами:

create table [Bicycle] 
( 
   [ID] int IDENTITY(1,1) not null, 
   [Brand] varchar(20) not null, 
   [RentPrice] int not null, -- цена аренды 
   primary key(ID) 
) 
 
create table [Client] 
( 
   [ID] int IDENTITY(1,1) not null, 
   [Name] varchar(10) not null, 
   [Passport] varchar(50) not null, 
   [Country] varchar(50) not null, 
   primary key(ID) 
) 
 
create table [RentBook] -- аренда велосипеда клиентом 
( 
   [ID] int IDENTITY(1,1) not null, 
   [Date] date not null, -- дата аренды 
   [Time] int not null, -- время на сколько взята аренда в часах 
   [Paid] bit not null, -- 1 оплатил; 0 не оплатил  
   [BicycleID] int not null, 
   [ClientID] int not null, 
   FOREIGN KEY ([BicycleID]) REFERENCES [Bicycle] ([ID]), 
   FOREIGN KEY ([ClientID]) REFERENCES [Client] ([ID]) 
) 

Задание
1. Собрать БД из кода выше. Написать запросы на изменение структуры таблиц для предотвращения возможных ограничений и оптимизации изначальных таблиц.
В комментариях укажите почему такие изменения нужны. Т.е. обязательно сначала создать базу данных основываясь на дано и только ПОСЛЕ ЭТОГО менять структуру.
2. Написать скрипт генерации 10000 значений из словаря.
Пример: генерируем значения для таблицы “Client”:
  • Для паспорта генерируем два значения типа int в диапазоне 1000-9999 и 100000-999999 соответственно, затем объединяем путем приведения к типу varchar(11) и конкатенируем строки, не забывая о пробеле(или изменяем структуру таблицы для более удобного хранения данных);
  • Для ФИО клиента создадим таблицу из трех колонок, заполним вручную/найдем в интернете. 25 уникальных значений по каждому атрибуту достаточно. Во время генерации берем случайные значения из столбцов. Проверяем, что картежи значений действительно случайные, не повторяются при повторной генерации малой длины;
  • Для страны аналогично ФИО, только таблица из одного столбца;
  • Используя цикл получаем псевдослучайные значения в таблицах.
3. Написать 5 запросов для вывода статистических показателей, 3 из которых обязаны быть вложенными.
Пример: В БД можно найти топ 5 часто арендуемых брендов велосипедов жителей страны “А” на квартал текущего года. Код запроса для вывода: <ваш код>.
4. Используя Visual Studio собрать куб основываясь на ваших таблицах. Можно модифицировать структуру для выделения новых мер(к примеру, дат). Продемонстрировать процесс необходимо скриншотами соответствующих этапов.
Пример: https://www.youtube.com/watch?v=7VJ4onYFbCU
5. Адаптировать 5 запросов из задания №3 для вывода данных из куба.
6. Нарисовать ER-диаграмму.
Разрешено менять структуру таблиц по своему усмотрению.
Необходимо:
Заполните личные данные, прикрепите ссылку на ваше решение и отправляйте результат.
POWER BI / AZURE / MICROSOFT / POWER BI /
Форма для отправки ответа


Наша почта:
По всем вопросам можете писать сюда hr@aspex.kz