У нас есть внешняя таблица, созданная в Redshift, например:
CREATE EXTERNAL TABLE spectrum.my_table(
insert_id varchar(128),
attribution_ids array<varchar(100)>
PARTITIONED BY (
event_date varchar(128))
STORED AS PARQUET
LOCATION
's3://my_bucket/my_path'
Мы делаем все отлично, но когда мы запрашиваем поле array<varchar>
, как описано в документации:
SELECT c.insert_id, a FROM
spectrum.my_table c, c.attribution_ids a LIMIT 10
Redshift возвращает insert_id
правильно, но массив, который он возвращает, закодирован, см. Ниже:
"insert_id", "o"
"0baed794-df11-4032-b13c-aac5d0deced7" "0b8ad4fd9af12804ffaea83f4886672b"
Исходные данные должны быть такими:
"0baed794-df11-4032-b13c-aac5d0deced7", [0baed794-df11-4032-b13c-aac5d0deced7, 0baed794-df11-4032-b13c-aac5d0deced7]
Когда мы выполняем тот же запрос вАфина, работающая как SELECT * FROM my_table
, возвращает массив с правильными данными.
Что мне здесь делать?