S3-Select 定价 JSON
S3-Select Pricing on JSON
我对 S3 select 关于返回数据和扫描数据的定价感到困惑。如果我想访问 json 文件中索引处的某些内容,它是否仍会扫描整个文件并且扫描的数据是否占整个文件大小?假设我在此示例文件上使用以下查询:
select * from S3Object[*].place1[*].Houses[*]
{
"place1": [
"Houses": [
{
"date": "1777-06-30",
"price": "445000.0"
},
{
"date": "2014-10-31",
"price": "495000.0"
}
],
"Apartments": [
{
"date": "1777-06-30",
"price": "445000.0"
},
{
"date": "2014-10-31",
"price": "495000.0"
}
]
]
}
它会对扫描整个文件的数据收费还是会因为我直接访问 Houses 数组而减少收费?
JSON 数据需要完整扫描以提供输出。这是因为 JSON 文件没有索引或块范围的概念。 (索引指向存储数据的位置,块范围跟踪存储块中数据的min/max值。)
JSON 适用于数据交换,但并非为高效存储而设计。
但是,您可以压缩 文件以降低存储成本。 可能 这也会降低扫描成本(就像 Amazon Athena 的情况一样),但我找不到任何信息来证实 S3 Select。
我对 S3 select 关于返回数据和扫描数据的定价感到困惑。如果我想访问 json 文件中索引处的某些内容,它是否仍会扫描整个文件并且扫描的数据是否占整个文件大小?假设我在此示例文件上使用以下查询:
select * from S3Object[*].place1[*].Houses[*]
{
"place1": [
"Houses": [
{
"date": "1777-06-30",
"price": "445000.0"
},
{
"date": "2014-10-31",
"price": "495000.0"
}
],
"Apartments": [
{
"date": "1777-06-30",
"price": "445000.0"
},
{
"date": "2014-10-31",
"price": "495000.0"
}
]
]
}
它会对扫描整个文件的数据收费还是会因为我直接访问 Houses 数组而减少收费?
JSON 数据需要完整扫描以提供输出。这是因为 JSON 文件没有索引或块范围的概念。 (索引指向存储数据的位置,块范围跟踪存储块中数据的min/max值。)
JSON 适用于数据交换,但并非为高效存储而设计。
但是,您可以压缩 文件以降低存储成本。 可能 这也会降低扫描成本(就像 Amazon Athena 的情况一样),但我找不到任何信息来证实 S3 Select。