Bigquery 表元数据:类型 2 表为空但可查询

Bigquery tables meta data: type 2 tables are empty but queryable

我想知道为什么在 crypto_bitcoin 数据集 returns 上对 table 之类的空 inputs 进行查询会得到想要的结果!

让我们检查一下 table 的元数据:

#              project_id      dataset_id                          table_id  creation_time  last_modified_time  row_count     size_bytes  type
# 0  bigquery-public-data  crypto_bitcoin                            blocks  1547490497012       1637478718029     710664      231483216     1
# 1  bigquery-public-data  crypto_bitcoin                            inputs  1547524356605       1637411737414          0              0     2
# 2  bigquery-public-data  crypto_bitcoin                           outputs  1547524350726       1637411717125          0              0     2
# 3  bigquery-public-data  crypto_bitcoin                      transactions  1547491686807       1637478717455  688583399  1532618029551     1
# 4  bigquery-public-data  crypto_bitcoin  transactions-2021-10-28T23_18_45  1635477564574       1635477564574  682200389  1520464709331     6

这些查询似乎为 inputsoutputs 报告了 0 个字节,因此它们是免费的。

但是下面查询returns一个结果:

query = """
SELECT inputs.value as value
FROM `bigquery-public-data.crypto_bitcoin.inputs` as inputs
LIMIT 10
"""
transactions = crypto_bitcoin.query_to_pandas_safe(query, max_gb_scanned=27)
print(transactions)


                   value
0      1121913.000000000
1      2530000.000000000
2     43852957.000000000
3      6064813.000000000
4       200000.000000000
5    921665002.000000000
6       159497.000000000
7       266185.000000000
8  37268226789.000000000
9      9493833.000000000

inputsoutputs 都是视图,因此它们本身不存储任何数据,这就是行和字节大小均为 0 的原因。它们都引用 transactions 数据集,因此适用的尺码。