Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 带有分区投影的雅典娜不返回任何结果_Amazon Web Services_Hadoop_Hive_Amazon Athena_Amazon Kinesis Firehose - Fatal编程技术网

Amazon web services 带有分区投影的雅典娜不返回任何结果

Amazon web services 带有分区投影的雅典娜不返回任何结果,amazon-web-services,hadoop,hive,amazon-athena,amazon-kinesis-firehose,Amazon Web Services,Hadoop,Hive,Amazon Athena,Amazon Kinesis Firehose,在为新的ETL管道进行概念验证时,我使用AWS Athena中的分区投影解决了一些问题。 在glue中创建了下表: 创建外部表“测试”`( `id`string, `在“时间戳”处创建了_, `由'string'创建的_, `键入`字符串, `实体(字符串) 被( `dt`字符串) 行格式SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 与serdeproperty( 'projection.dt.format

在为新的ETL管道进行概念验证时,我使用AWS Athena中的分区投影解决了一些问题。 在glue中创建了下表:

创建外部表“测试”`(
`id`string,
`在“时间戳”处创建了_,
`由'string'创建的_,
`键入`字符串,
`实体(字符串)
被(
`dt`字符串)
行格式SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
与serdeproperty(
'projection.dt.format'='yyyy-MM-dd-HH',
'投影.dt.间隔'='1',
'投影.dt.间隔.unit'='小时',
'投影dt范围'='2020-12-01-00,现在',
'projection.dt.type'='日期',
'projection.enabled'='true',
'storage.location.template'='s3://test aggs/test interactions/dt=${dt}')
以输入格式存储
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
输出格式
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
位置
“s3://test aggs/test interactions/”
TBLProperty(
“分类”=“拼花地板”)
在S3上,有来自Kinesis数据Firehose的匹配.parquet文件:

test-aggs/test-interactions/dt=2020-12-03-22/file1.parquet
test-aggs/test-interactions/dt=2020-12-03-22/file2.parquet
正在尝试通过以下方式查询数据:

test\u aggs.“test\u交互”中选择*
其中dt>='2020-12-02-00'
和dt<'2020-12-04-01'
或者

test\u aggs.“test\u交互”中选择*
式中,dt='2020-12-03-22'
返回零结果

运行

MSCK修复表;
使数据可查询,但对于使用此慢速命令,我不必启用分区投影

你知道为什么这不起作用吗

干杯

解决了这个问题。 问题是我在
SERDE属性下添加了投影配置,而不是在
tblproperty下添加了投影配置

创建外部表“测试”`(
`id`string,
`在“时间戳”处创建了_,
`由'string'创建的_,
`键入`字符串,
`实体(字符串)
被(
`dt`字符串)
行格式SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
以输入格式存储
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
输出格式
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
位置
“s3://test aggs/test interactions/”
TBLProperty(
“分类”=“拼花地板”,
'projection.dt.format'='yyyy-MM-dd-HH',
'投影.dt.间隔'='1',
'投影.dt.间隔.unit'='小时',
'投影dt范围'='2020-12-01-00,现在',
'projection.dt.type'='日期',
'projection.enabled'='true',
'storage.location.template'='s3://test aggs/test interactions/dt=${dt}')
解决了这个问题。 问题是我在
SERDE属性下添加了投影配置,而不是在
tblproperty下添加了投影配置

创建外部表“测试”`(
`id`string,
`在“时间戳”处创建了_,
`由'string'创建的_,
`键入`字符串,
`实体(字符串)
被(
`dt`字符串)
行格式SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
以输入格式存储
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
输出格式
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
位置
“s3://test aggs/test interactions/”
TBLProperty(
“分类”=“拼花地板”,
'projection.dt.format'='yyyy-MM-dd-HH',
'投影.dt.间隔'='1',
'投影.dt.间隔.unit'='小时',
'投影dt范围'='2020-12-01-00,现在',
'projection.dt.type'='日期',
'projection.enabled'='true',
'storage.location.template'='s3://test aggs/test interactions/dt=${dt}')

Athena无法自行检测新分区。您可以使用计划的粘合爬虫添加新分区。@grnc它可以。在AWS文档中查看分区投影您是否设法解决了问题@maxgr?@grnc现在还没有。就此问题联系了AWS业务支持,我将在解决此问题后尽快提供更新✌️雅典娜无法自行检测新分区。您可以使用计划的粘合爬虫添加新分区。@grnc它可以。在AWS文档中查看分区投影您是否设法解决了问题@maxgr?@grnc现在还没有。就此问题联系了AWS业务支持,我将在解决此问题后尽快提供更新✌️