Как изменить тип поля в BI системе Analytic Workspace

Как изменить тип поля в BI системе Analytic Workspace?

Часто возникает ситуация, когда данные, полученные из источника наших данных, не соответствуют нужному формату или типу поля. Это может затруднить дальнейшую работу с данными в BI-системах. В Analytic Workspace есть несколько способов преобразовать тип поля, и в этой статье мы рассмотрим некоторые из них.

В нашем случае изначально источником данных будет база данных PostgreSQL под названием AW_SampleDB. Тут сразу можно обратить внимание, что два поля (date_create и date_modify) соответствуют типу поля varchar, а мы хотим, чтобы это оказались поля с датой, давайте попробуем решить эту проблему.

1. Запрос к базе данных

Самый первый способ изменить тип поля — это выполнить запрос к базе данных (источнику данных). В SQL-запросе можно преобразовать данные в нужный формат, даже если изначально они представлены в неподходящем типе.

Пример: если наше поле date_create хранится в виде строки (VARCHAR), но нам нужно преобразовать его в тип DATE, мы можем использовать функцию TO_DATE в запросе:

SELECT

id,

state_region_code,

position_name,

TO_DATE(date_create, 'YYYY-MM-DD') AS date_create_date

FROM public.cv;

Здесь мы преобразуем строковое поле date_create, извлекая только дату в формате YYYY-MM-DD. Такой запрос легко выполняется на уровне источника, и преобразование данных происходит до того, как они попадут в нашу модель.

Важно! Для написания SQL-запроса используем диалект подключенной базы.

2. Использование ETL блоков в “Моделях”

Другое необходимое нам поле (date_modify) попробуем изменить весьма похожим способом, но с использованием ETL блока в моделях.

Для этого на этапе работы с моделью добавляем новый ETL-блок “SQL-блок” , перетаскиваем в него наш источник и пишем необходимый запрос. При выполнении этого блока используется Spark SQL со всеми доступными в нем функциями.

Пример: если нужно преобразовать поле date_modify, представленное как строка (VARCHAR), в тип DATE, это можно сделать с помощью следующего SQL-блока в модели, попутно захватив нужные нам поля:

SELECT

id,

state_region_code,

position_name,

DATE(date_modify) AS date_modify

FROM child;

:warning: Кстати говоря, это может быть применимо не только к базе данных, но и к файловым источникам.

Пример: у вас несколько одинаковых по структуре таблиц в документах, вы объединяете их блоком UNION и пишите к ним SQL-запрос, который преобразует сразу везде тип поля:

SELECT id, state_region_code, position_name, DATE(date_create) AS create_date

FROM junion

3. Изменение через параметры

Существует еще один способ изменить тип поля в файловом источнике. Это можно сделать еще на этапе загрузки файла, используя параметры (нам пригодится параметр “Тип”). Более подробно с остальными параметрами можно ознакомиться здесь:

https://webhelp.analyticworkspace.ru/sect3_ewk_fd1_nqb.html#sect5_gbg_qjl_xvb

Пример: изменили тип поля с числового представления на строковое

4. Использование вычисляемого поля

Ещё один способ изменить тип поля — создать новое вычисляемое поле в модели, где будет выполнено преобразование значений. При написании также используем SparkSQL

Пример: в случае с полем date_create можно создать новое вычисляемое поле с нужным типом. Например:

DATE(date_create)

В этом случае преобразование происходит прямо на уровне модели, и данные загружаются в нужном нам формате. В дальнейшем можно скрыть поле date_create и оставить только новое вычисляемое “Дата создания”.

Заключение

Как видите, в Analytic Workspace есть несколько способов для изменения типа поля. Независимо от того, на каком этапе обработки данных вы хотите выполнить преобразование (на уровне источника данных или на уровне модели), система предоставляет гибкие инструменты для решения этой задачи, и, конечно, каждый выбирает способ реализации, исходя из поставленной задачи и возможностей.