如何解决雅典娜返回“返回零记录”
我已将数据加载到 S3(Json 格式)中。我已经执行了“MSCK REPAIR TABLE dqme_violations_v1”我已经创建了我的表,它似乎指向了正确的位置。什么给?
- 文件是否需要以 .json 为后缀?
- 还有其他建议吗?我不知所措。
我的表(通过:show create table dqme_violations_v1):
CREATE EXTERNAL TABLE `dqme_violations_v1`(
`asset_id` string COMMENT 'from deserializer',`make` string COMMENT 'from deserializer',`serial_number` string COMMENT 'from deserializer',`message_format` string COMMENT 'from deserializer',`content_type` string COMMENT 'from deserializer',`content` string COMMENT 'from deserializer',`rule_id` string COMMENT 'from deserializer',`ruleset` string COMMENT 'from deserializer',`rule_type` string COMMENT 'from deserializer',`error_type` string COMMENT 'from deserializer',`error_name` string COMMENT 'from deserializer',`error_criteria` string COMMENT 'from deserializer')
COMMENT 'The DQME OG Grief violation table'
PARTITIONED BY (
`dt` string)
ROW FORMAT SERDE
'org.apache.hive.hcatalog.data.JsonSerDe'
WITH SERDEPROPERTIES (
'paths'='make,serialNumber')
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeytextoutputFormat'
LOCATION
's3://pfm-og-blah-store-use2-s3-prod/violations'
TBLPROPERTIES (
'transient_lastDdlTime'='1610571957')
我的 s3 :
s3://pfm-og-blah-store-use2-s3-prod/violations/dt=2021-01-12-16/
pfm-og-barrel_grief_use2-kfh-prod-2-2021-01-12-16-06-07-0abdaa4f-92db-46ee-8c0c-2001e8b5512a
解决方法
TLDR - 我无权运行 MSCK REPAIR TABLE dqme_violations_v1
瘦子:
因此运行 MSCK 命令没有显示任何错误迹象。它似乎运行并实际列出了它发现的不在 Metastore 中的分区。 “不”应该告诉我它没有添加它们,因为它每次都显示)。 Athena 确实需要更好的错误处理。
如果你去 AWSGlue -> Tables -> View partitions,它会列出它找到的分区。我的是空的。
我在一家大公司工作,它锁定了很多东西。所以我不得不通过 Lambda 运行一些 sql 来添加分区。我们每小时运行一次批处理作业,将 NEXT hours 分区添加到表中(是的,文件尚未创建。Athena 不在乎。)
,在这种情况下,您有一个看起来像 yyyy-MM-dd-HH
的分区。使用 partition projection 处理分区有更巧妙的方法。设置好后,无需做任何修表或手动ADD PARTITION
,直接通过DDL添加:
...
TBLPROPERTIES (
'transient_lastDdlTime'='1610571957',projection.enabled='true',projection.dt.type='date',projection.dt.format='yyyy-MM-dd-HH',projection.dt.range='NOW-30DAYS,NOW'
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。