【发布时间】:2019-11-04 03:01:13
【问题描述】:
我们在 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 运行的 Athena 中运行相同的查询时,它会返回包含正确数据的数组。
我应该在这里做什么?
【问题讨论】:
-
请提供源数据样本。
-
你说的编码是什么意思?
标签: database amazon-redshift data-warehouse amazon-redshift-spectrum