尝试访问某些表时遇到以下错误,但某些表工作正常,这可能是什么原因。
查询:
SELECT * FROM icbs_cup00901_d LIMIT 1
相同的查询适用于其他表,所以我很困惑可能是什么原因,并且查询中提到的表有 8 列字符串数据类型。
错误:您的查询有以下错误:
SYNTAX_ERROR:第 1:8 行:不允许从没有列的关系中选择 *
此查询针对“bpd_ds_db”数据库运行,除非查询限定。请在我们的论坛上发布错误消息或联系客户支持并提供查询 ID:a462d56e-952b-4a6f-a275-b0c9db0301b0。
我已经检查过,同一个表中有 8 个字符串数据类型的列,并且完全相同的查询适用于某些表,所以我很困惑可能是什么问题
CREATE EXTERNAL TABLE icbs_cup00901_d(
cux1ac_acct_surr_id string,
cux1ap string,
cux1cs_cust_surr_id string,
cux1ty string,
cuxbk string,
cuxnot string,
cuxrec string,
cuxrel string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS
INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION 's3://bpd-datalake/00Raw/datasets/parquet/DWH/ICBS_CUP00901_D'
TBLPROPERTIES (
'lastUpdateDate'='2021-09-30 03:02:04.780351',
'last_modified_by'='hadoop',
'last_modified_time'='1632970985',
'parquet.compress'='GZIP', 'transient_lastDdlTime'='1632970985'
)
我也遇到了同样的问题,发现是因为我的用户没有足够的权限。该错误不是很有帮助,但我认为它看不到列,因此给出了该错误。
通过在 AWS Lake Formation 中添加权限来解决该问题。在数据湖权限下,确保您的用户至少对数据库和表拥有“描述”和“选择”权限。
谢谢大家分享信息!就我而言,我不确定它是否与权限有关,但是是的,当我替换为所需的列名称时,问题出现在“*”中,然后它就可以正常工作了
对于此问题,您需要授予 Lake Formation 中的选择访问权限。 选择您正在使用的角色并至少授予选择的访问权限,
在我的用例中,在数据湖权限中添加“描述”和“选择”是不够的,我还必须转到管理>数据湖位置,并注册适当的S3 URI。 请注意,如果您只注册一个存储桶名称,您仍然可以访问使用该存储桶名称斜线文件夹的数据库...