Я пытаюсь создать внешнюю таблицу с различными столбцами разделов.
Это работает, например, для выполнения следующих действий:
create or replace external table mytable(
myday date as to_date(substr(metadata$filename, 35, 10), 'YYYY-MM-DD'))
partition by (myday)
location = @mys3stage
file_format = (type = parquet);
Однако я бы хотел использовать regex_substr вместо индексации символов, поскольку у меня не всегда будут одинаковые индексы символов для всех разделение столбцов. Я хотел бы сделать это:
create or replace external table mytable(
myday date as to_date(regexp_substr(metadata$filename, 'day=[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]'), 'day=YYYY-MM-DD'))
partition by (myday)
location = @mys3stage
file_format = (type = parquet);
Это дает мне ошибку Defining expression for partition column MYDAY is invalid.
Я могу успешно выполнить предложение regexp_substr
в операторе выбора вне создания внешней таблицы, получая те же результаты, что и substr
подход.
Как я могу использовать сопоставление строк регулярных выражений в своем определении столбца раздела внешней таблицы?