UDF в запросах ETL (задания фида данных)
CREATE OR REPLACE FUNCTION f_stop_distance (Float, Float, Float, Float) /* This calculates distance in meters between two sets of lat and long */
RETURNS FLOAT
IMMUTABLE
AS $$
SELECT
2 * 6373000 * ASIN( SQRT( ( SIN( RADIANS(($3 - $1) / 2) ) ) ^ 2 + COS(RADIANS($1)) * COS(RADIANS($3)) * (SIN(RADIANS(($4 - $2) / 2))) ^ 2))
$$ LANGUAGE sql
;
Выше приведен фрагмент кода, который я использовал для вычисления расстояния между двумя парами длинных лат. Мой вопрос: могу ли я использовать вышесказанное и в запросах ETL?
Примечание. Я не являюсь суперпользователем, и мне не будут предоставлены права суперпользователя.
Обновление: я уже пытался выполнить в ETL. Вот ошибка, которую я получил:
2019-02-20 03:19:56,594 ERROR ExtractAdapterForRedshiftWithUnload prepareS3Dataset():609 - Error Code from SQL state 42501
org.postgresql.util.PSQLException: ERROR: must be owner of function f_stop_distance
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2270)