首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用红移频谱查询蜂窝视图

使用红移频谱查询蜂窝视图
EN

Stack Overflow用户
提问于 2020-03-31 00:20:44
回答 1查看 276关注 0票数 3

我正在尝试使用红移频谱查询配置单元视图,但它给出了以下错误:

代码语言:javascript
复制
SQL Error [500310] [XX000]: [Amazon](500310) Invalid operation: Assert
Details: 
 -----------------------------------------------
  error:  Assert
  code:      1000
  context:   loc->length() > 5 && loc->substr(0, 5) == "s3://" - 
  query:     12103470
  location:  scan_range_manager.cpp:272
  process:   padbmaster [pid=1769]
  -----------------------------------------------;

可以从红移频谱中查询配置单元视图吗?我使用的是Hive Metastore (不是Glue Data Catalog)。

我希望有一个视图来限制对原始表的访问,只有一组有限的列和分区。另外,因为我的原始表(拼图数据)有一些Map字段,所以我想做一些类似的操作,以便于在Redshift中查询Map字段,因为在Redshift中处理Map字段有点复杂:

代码语言:javascript
复制
CREATE view my_view AS
SELECT event_time, event_properties['user-id'] as user_id, event_properties['product-id'] as product_id, year, month, day
FROM my_events
WHERE event_type = 'my-event'  -- partition

我可以从频谱查询表my_events,但它是混乱的,因为属性是一个映射字段,而不是结构,所以我需要在Redshift中将其分解成几行。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-14 15:44:38

从错误中看,当查询外部表和视图时,频谱似乎总是查找S3路径。这对于外部表是有效的,因为这些表总是有一个位置,但是视图永远不会有一个显式的S3位置。

代码语言:javascript
复制
Error type    -> Assert
Error context -> context: loc->length() > 5 && loc->substr(0, 5) == "s3://"

如果是配置单元视图,loc->length()将返回0,整个语句将返回False并导致断言错误。

对此的确认可以是第二个子句:

代码语言:javascript
复制
loc->substr(0, 5) == "s3://"

它期望位置是一个S3路径,如果我们计算"s3://"中的字符数,它就是5,这也证实了第一个子句:

代码语言:javascript
复制
loc->length() > 5

看起来频谱不支持配置单元视图(或者一般没有显式S3路径的任何对象)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60934904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档