Домашнее задание
1 (уровень 1/3). Создать макрос bookref_to_bigint, который принимает один строковый параметр bookref и преобразует его к типу bigint следующим образом:
('0x' || book_ref)::bigint
Использовать данный макрос в модели stg_flights__bookings_append или другой модели с данными о бронированиях.
Приложить ссылки на github с кодом макроса и вызовом макроса.
2 (уровень 2/3) Написать макрос безопасного запроса данных из таблицы.
Под безопасностью подразумевается, что сначала происходит проверка существования таблицы, название которой передано в макрос. Если таблица существует, то макрос возвращает код SQL запроса, возвращающего все строки и столбцы из нее:
SELECT * FROM [название таблицы]
Если таблица не существует, то макрос возвращает запрос:
SELECT NULL
Название макроса - safe_select.
На вход принимает один параметр под названием table_name с названием таблицы, из которой нужно запросить все колонки и все строки.
Приложить ссылки на github с кодом макроса и вызовом макроса.3 (уровень 2/3). Перечисление всех колонок из другой модели.
Часто при создании кода модели нам требуется взять все поля из предыдущей модели. Чтобы не перечислять список всех полей предыдущей модели, сделайте макрос, который перечислит через запятую названия всех колонок из модели, название, которой будет передано в аргументе.
Назовите макрос show_columns_relation и поместите в macros/utils.sql.
В модели models/intermediate/fligths/fct_bookings.sql используйте вызов макроса show_columns_relation вместо перечисления всех колонок stg_flights__bookings.
Приложить ссылки на github с кодом макроса и вызовом макроса.