Если вы не использовали Redshift, я бы сказал: «Используйте PL/Perlu, PL/Python или один из других процедурных языков для получения регулярного парсера URL». Поскольку у вас есть запатентованная вилка Pg 8.1, вам придется согласиться на хакерское регулярное выражение, которое я подозреваю.
Невозможно получить доступ к полнотекстовому поисковому поисковому парсеру с уровня SQL. Вы могли бы написать расширение C, чтобы легко вывести функцию на SQL, но, конечно, вы не можете установить расширение в Redshift, так что вам это не поможет.
Время злоупотреблять регулярными выражениями.
(кстати, спасибо за фактически сказать, что вы на красном смещении; слишком много людей говорят «PostgreSQL», когда они означают «неопределенно PostgreSQL на основе размещенного версии ParAccel»)
FYI, кто-то также предложил применить функцию Hive для импорта в Redshift, чтобы предварительно вычислить его в другое поле. – dfrankow
@dfrankow Конечно, но вы хотели что-то сделать * в * БД. Если стоимость пространства не вызывает беспокойства, то предварительное разбиение URL на отдельные поля было бы идеальным. –
Функции регулярного выражения PostgreSQL не поддерживаются в Redshift, но в строковых операциях достаточно включить синтаксический анализ хоста. См. Мой ответ. – Sim